summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEamon Walsh <ewalsh@tycho.nsa.gov>2009-09-17 19:05:06 -0400
committerEamon Walsh <ewalsh@tycho.nsa.gov>2009-09-17 19:05:06 -0400
commit72d98f6a2088ccacbe913d0523b08cd868f16470 (patch)
treec083e0fce6ee0f49ed4f0d313415563da8c26754
Initial commit.
-rw-r--r--AUTHORS29
-rw-r--r--COPYING6
-rw-r--r--COPYING.GPL340
-rw-r--r--COPYING.LGPL510
-rw-r--r--COPYING.MIT21
-rw-r--r--ChangeLog1795
-rw-r--r--INSTALL12
-rw-r--r--Makefile.am126
-rw-r--r--Makefile.in905
-rw-r--r--NEWS365
-rw-r--r--README8
-rw-r--r--TODO22
-rw-r--r--aclocal.m48379
-rw-r--r--compiz-cube.pc.in13
-rw-r--r--compiz-gconf.pc.in6
-rw-r--r--compiz-kconfig.pc.in7
-rw-r--r--compiz-scale.pc.in12
-rw-r--r--compiz.pc.in12
-rwxr-xr-xconfig.guess1526
-rw-r--r--config.h.in169
-rwxr-xr-xconfig.sub1658
-rwxr-xr-xconfigure28345
-rw-r--r--configure.ac654
-rwxr-xr-xdepcomp589
-rw-r--r--gtk/Makefile.am1
-rw-r--r--gtk/Makefile.in591
-rw-r--r--gtk/gnome/50-compiz-desktop-key.xml.in16
-rw-r--r--gtk/gnome/50-compiz-key.xml.in36
-rw-r--r--gtk/gnome/Makefile.am97
-rw-r--r--gtk/gnome/Makefile.in638
-rw-r--r--gtk/gnome/compiz-window-manager.c559
-rw-r--r--gtk/gnome/compiz-window-manager.h39
-rw-r--r--gtk/gnome/compiz-wm.desktop.in17
-rw-r--r--gtk/gnome/compiz.desktop.in15
-rw-r--r--gtk/window-decorator/Makefile.am50
-rw-r--r--gtk/window-decorator/Makefile.in639
-rw-r--r--gtk/window-decorator/TODO6
-rw-r--r--gtk/window-decorator/gtk-window-decorator.c7123
-rw-r--r--gtk/window-decorator/gwd.schemas.in81
-rw-r--r--images/Makefile.am8
-rw-r--r--images/Makefile.in472
-rw-r--r--images/freedesktop.pngbin0 -> 30453 bytes
-rw-r--r--images/icon.pngbin0 -> 529 bytes
-rw-r--r--include/Makefile.am13
-rw-r--r--include/Makefile.in545
-rw-r--r--include/compiz-core.h3483
-rw-r--r--include/compiz-cube.h230
-rw-r--r--include/compiz-plugin.h71
-rw-r--r--include/compiz-scale.h211
-rw-r--r--include/compiz.h180
-rw-r--r--include/decoration.h399
-rwxr-xr-xinstall-sh519
-rw-r--r--intltool-extract.in0
-rw-r--r--intltool-merge.in0
-rw-r--r--intltool-update.in0
-rw-r--r--kde/Makefile.am1
-rw-r--r--kde/Makefile.in591
-rw-r--r--kde/window-decorator-kde4/Makefile.am55
-rw-r--r--kde/window-decorator-kde4/Makefile.in649
-rw-r--r--kde/window-decorator-kde4/decorator.cpp1004
-rw-r--r--kde/window-decorator-kde4/decorator.h185
-rw-r--r--kde/window-decorator-kde4/kdecoration_plugins.cpp212
-rw-r--r--kde/window-decorator-kde4/kdecoration_plugins.h90
-rw-r--r--kde/window-decorator-kde4/main.cpp199
-rw-r--r--kde/window-decorator-kde4/options.cpp186
-rw-r--r--kde/window-decorator-kde4/options.h140
-rw-r--r--kde/window-decorator-kde4/org.kde.KWin.xml10
-rw-r--r--kde/window-decorator-kde4/switcher.cpp286
-rw-r--r--kde/window-decorator-kde4/switcher.h84
-rw-r--r--kde/window-decorator-kde4/utils.cpp207
-rw-r--r--kde/window-decorator-kde4/utils.h64
-rw-r--r--kde/window-decorator-kde4/window.cpp2225
-rw-r--r--kde/window-decorator-kde4/window.h277
-rw-r--r--kde/window-decorator/KWinInterface.h17
-rw-r--r--kde/window-decorator/Makefile.am44
-rw-r--r--kde/window-decorator/Makefile.in631
-rw-r--r--kde/window-decorator/decorator.cpp1055
-rw-r--r--kde/window-decorator/decorator.h183
-rw-r--r--kde/window-decorator/main.cpp143
-rw-r--r--kde/window-decorator/options.cpp187
-rw-r--r--kde/window-decorator/options.h140
-rw-r--r--kde/window-decorator/utils.cpp205
-rw-r--r--kde/window-decorator/utils.h63
-rw-r--r--kde/window-decorator/window.cpp2091
-rw-r--r--kde/window-decorator/window.h243
-rw-r--r--libdecoration/Makefile.am12
-rw-r--r--libdecoration/Makefile.in605
-rw-r--r--libdecoration/decoration.c2829
-rw-r--r--libdecoration/libdecoration.pc.in12
-rw-r--r--ltmain.sh6956
-rw-r--r--metadata/Makefile.am135
-rw-r--r--metadata/Makefile.in621
-rw-r--r--metadata/annotate.xml.in63
-rw-r--r--metadata/blur.xml.in111
-rw-r--r--metadata/clone.xml.in14
-rw-r--r--metadata/commands.xml.in225
-rw-r--r--metadata/core.xml.in335
-rw-r--r--metadata/core.xml.in.in335
-rw-r--r--metadata/cube.xml.in185
-rw-r--r--metadata/dbus.xml.in7
-rw-r--r--metadata/decoration.xml.in71
-rw-r--r--metadata/fade.xml.in92
-rw-r--r--metadata/fs.xml.in14
-rw-r--r--metadata/gconf.xml.in18
-rw-r--r--metadata/glib.xml.in7
-rw-r--r--metadata/gnomecompat.xml.in52
-rw-r--r--metadata/ini.xml.in6
-rw-r--r--metadata/inotify.xml.in7
-rw-r--r--metadata/kcfg.xslt322
-rw-r--r--metadata/kconfig.xml.in6
-rw-r--r--metadata/kconfig.xslt59
-rw-r--r--metadata/minimize.xml.in44
-rw-r--r--metadata/move.xml.in41
-rw-r--r--metadata/obs.xml.in169
-rw-r--r--metadata/place.xml.in117
-rw-r--r--metadata/png.xml.in9
-rw-r--r--metadata/regex.xml.in7
-rw-r--r--metadata/resize.xml.in105
-rw-r--r--metadata/rotate.xml.in276
-rw-r--r--metadata/scale.xml.in183
-rw-r--r--metadata/schemas.xslt419
-rw-r--r--metadata/screenshot.xml.in24
-rw-r--r--metadata/svg.xml.in9
-rw-r--r--metadata/switcher.xml.in157
-rw-r--r--metadata/video.xml.in15
-rw-r--r--metadata/water.xml.in58
-rw-r--r--metadata/wobbly.xml.in119
-rw-r--r--metadata/zoom.xml.in60
-rwxr-xr-xmissing367
-rwxr-xr-xmkinstalldirs111
-rw-r--r--plugins/Makefile.am188
-rw-r--r--plugins/Makefile.in1057
-rw-r--r--plugins/annotate.c963
-rw-r--r--plugins/blur.c3250
-rw-r--r--plugins/clone.c937
-rw-r--r--plugins/commands.c352
-rw-r--r--plugins/cube.c2233
-rw-r--r--plugins/dbus.c2596
-rw-r--r--plugins/decoration.c1759
-rw-r--r--plugins/fade.c1049
-rw-r--r--plugins/fuse.c1442
-rw-r--r--plugins/gconf.c849
-rw-r--r--plugins/glib.c306
-rw-r--r--plugins/gnomecompat.c344
-rw-r--r--plugins/ini.c1152
-rw-r--r--plugins/inotify.c316
-rw-r--r--plugins/kconfig.cpp752
-rw-r--r--plugins/minimize.c1059
-rw-r--r--plugins/move.c1048
-rw-r--r--plugins/obs.c746
-rw-r--r--plugins/place.c1762
-rw-r--r--plugins/png.c575
-rw-r--r--plugins/regex.c558
-rw-r--r--plugins/resize.c1499
-rw-r--r--plugins/rotate.c2018
-rw-r--r--plugins/scale.c2290
-rw-r--r--plugins/screenshot.c627
-rw-r--r--plugins/svg.c1053
-rw-r--r--plugins/switcher.c2134
-rw-r--r--plugins/video.c1329
-rw-r--r--plugins/water.c1824
-rw-r--r--plugins/wobbly.c2967
-rw-r--r--plugins/zoom.c1203
-rw-r--r--po/ChangeLog25
-rw-r--r--po/Makefile.in.in217
-rw-r--r--po/POTFILES.in39
-rw-r--r--po/af.po3163
-rw-r--r--po/ar.po3052
-rw-r--r--po/bg.po3816
-rw-r--r--po/bn.po3587
-rw-r--r--po/bn_IN.po3577
-rw-r--r--po/bs.po3285
-rw-r--r--po/ca.po4159
-rw-r--r--po/cs.po4717
-rw-r--r--po/cy.po3303
-rw-r--r--po/da.po4146
-rw-r--r--po/de.po4841
-rw-r--r--po/el.po3399
-rw-r--r--po/en_GB.po3731
-rw-r--r--po/en_US.po3171
-rw-r--r--po/es.po4806
-rw-r--r--po/et.po3744
-rw-r--r--po/eu.po3292
-rw-r--r--po/fi.po4782
-rw-r--r--po/fr.po3419
-rw-r--r--po/gl.po3386
-rw-r--r--po/gu.po3356
-rw-r--r--po/he.po3600
-rw-r--r--po/hi.po3810
-rw-r--r--po/hr.po3686
-rw-r--r--po/hu.po3277
-rw-r--r--po/id.po3214
-rw-r--r--po/it.po3479
-rw-r--r--po/ja.po3196
-rw-r--r--po/ka.po3043
-rw-r--r--po/km.po3769
-rw-r--r--po/ko.po3246
-rw-r--r--po/lo.po3041
-rw-r--r--po/lt.po3776
-rw-r--r--po/mk.po3062
-rw-r--r--po/mr.po3195
-rw-r--r--po/nb.po3369
-rw-r--r--po/nl.po3468
-rw-r--r--po/or.po3450
-rw-r--r--po/pa.po3872
-rw-r--r--po/pl.po3829
-rw-r--r--po/pt.po3369
-rw-r--r--po/pt_BR.po3374
-rw-r--r--po/ro.po3639
-rw-r--r--po/ru.po3317
-rw-r--r--po/sk.po3306
-rw-r--r--po/sl.po3790
-rw-r--r--po/sr.po3985
-rw-r--r--po/sv.po3400
-rw-r--r--po/ta.po3111
-rw-r--r--po/tr.po3569
-rw-r--r--po/uk.po3800
-rw-r--r--po/vi.po3044
-rw-r--r--po/xh.po3159
-rw-r--r--po/zh_CN.po4434
-rw-r--r--po/zh_TW.po4587
-rw-r--r--po/zu.po3159
-rw-r--r--src/Makefile.am32
-rw-r--r--src/Makefile.in622
-rw-r--r--src/core.c305
-rw-r--r--src/cursor.c196
-rw-r--r--src/display.c2809
-rw-r--r--src/event.c2374
-rw-r--r--src/fragment.c1402
-rw-r--r--src/main.c472
-rw-r--r--src/match.c782
-rw-r--r--src/matrix.c369
-rw-r--r--src/metadata.c1467
-rw-r--r--src/object.c147
-rw-r--r--src/option.c965
-rw-r--r--src/paint.c1267
-rw-r--r--src/plugin.c793
-rw-r--r--src/privates.c68
-rw-r--r--src/screen.c4328
-rw-r--r--src/session.c439
-rw-r--r--src/texture.c504
-rw-r--r--src/window.c5445
242 files changed, 356865 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1500f90
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,29 @@
+compiz and the standard set of plugins are designed and written by
+
+David Reveman <davidr@novell.com>
+
+with additional functionality by
+
+Radek Doulik <rodo@novell.com> IO multiplexing
+Mirco Müller <macslow@bangang.de> Skydome support in cube plugin
+Søren Sandmann <sandmann@redhat.com> plane plugin
+Dan Winship <danw@novell.com> gconf-dump plugin
+Brian Paul <brian.paul@tungstengraphics.com> Matrix functions
+
+and other contributions by
+
+Mike Cook <mcook@novell.com>
+Mike Dransfield <mike@blueroot.co.uk>
+Diogo Ferreira <diogo@underdev.org>
+gandalfn <gandalfn@club-internet.fr>
+Guillaume <ixcemix@gmail.com>
+Kristian Høgsberg <krh@redhat.com>
+Dennis Kasprzyk <onestone@beryl-project.org>
+Gerd Kohlberger <lowfi@chello.at>
+Volker Krause <vkrause@kde.org>
+moppsy <moppsy@comcast.net>
+Jeremy C. Reed <reed@reedmedia.net>
+Thierry Reding <thierry@gilfi.de>
+Julian Sikorski <lordzanon@poczta.onet.pl>
+Quinn Storm <livinglatexkali@gmail.com>
+Erkin Bahceci <erkinbah@gmail.com>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..988ebf2
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,6 @@
+Most of the code is MIT licensed, some code is instead licensed
+under the LGPL and some under the GPL. Each source code file
+contain a header that describes the license for the code in that
+specific file.
+
+For More information see COPYING.GPL, COPYING.LGPL and COPYING.MIT.
diff --git a/COPYING.GPL b/COPYING.GPL
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/COPYING.GPL
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/COPYING.LGPL b/COPYING.LGPL
new file mode 100644
index 0000000..b124cf5
--- /dev/null
+++ b/COPYING.LGPL
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/COPYING.MIT b/COPYING.MIT
new file mode 100644
index 0000000..69ef1bf
--- /dev/null
+++ b/COPYING.MIT
@@ -0,0 +1,21 @@
+
+Copyright © 2005 Novell, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of
+Novell, Inc. not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+Novell, Inc. makes no representations about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
+NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..bbfa473
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,1795 @@
+2006-06-21 David Reveman <davidr@novell.com>
+
+ * src/window.c: Add updateTransientHint to protect against circular
+ transient dependencies. (bnc 186825)
+
+2006-06-20 David Reveman <davidr@novell.com>
+
+ * src/window.c (addWindowSizeChanges): Constrain window
+ dimensions if they are too large.
+
+ * gnome/window-decorator/gnome-window-decorator.c (get_mwm_prop):
+ Trap X errors.
+
+2006-06-20 Dan Winship <danw@novell.com>
+
+ * configure.ac (ALL_LINGUAS): Add pl
+
+2006-06-16 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/switcher.c:
+ * plugins/scale.c: Add modal dialogs and fullscreen windows
+ to default window types. (bnc 185749)
+
+ * gnome/window-decorator/gnome-window-decorator.c: Track motif
+ WM hints and disable decorations when application wants no
+ titlebar. (bnc 185852)
+
+2006-06-15 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c (cubePaintTransformedScreen): Remove
+ PAINT_SCREEN_CLEAR_MASK from mask.
+
+ * plugins/switcher.c (switchPaintScreen): Add PAINT_SCREEN_CLEAR_MASK
+ when zooming. (bnc 183676)
+
+ * src/paint.c (paintTransformedScreen): Clear color buffer if
+ PAINT_SCREEN_CLEAR_MASK is present.
+
+ * include/compiz.h: Add PAINT_SCREEN_CLEAR_MASK.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Add DM selection
+ support and --repalce option so it's possible to replace an
+ existing window decorator in the same way as it's possible to replace
+ a window manager. (bnc 185296)
+ (close_button_event):
+ (max_button_event):
+ (min_button_event): De-highlight on NotifyGrab. (bnc 185293)
+
+2006-06-12 Dan Winship <danw@novell.com>
+
+ * plugins/cube.c:
+ * plugins/switcher.c: Mark cube as needing to load before switcher
+ rather than marking switcher as requiring cube. bnc #183676.
+
+ * plugins/gconf-dump.c (dumpPluginOptions): Output load_before and
+ requires for all plugins, even if the list is empty, to ensure
+ that an empty value in a new release overrides a non-empty value
+ in an older release.
+
+ * plugins/compiz.schemas.in.in: regen
+
+2006-06-09 Dan Winship <danw@novell.com>
+
+ * configure.ac: add translations
+
+2006-06-09 David Reveman <davidr@novell.com>
+
+ * plugins/move.c (moveHandleMotionEvent): Handle shaded windows
+ better.
+
+ * src/window.c (maximizeWindow):
+ * src/event.c (handleEvent): Allow windows to be both maximized
+ and shaded.
+
+ * src/window.c: Update addWindowSizeChanges so it can be used by
+ moveResizeWindow.
+ (updateWindowAttributes): Add missing sendSyncRequest call.
+ (addWindowSizeChanges): Make maximized window placement a bit better.
+ (moveResizeWindow): Adjust window geometry using
+ addWindowSizeChanges. (bnc 183121)
+
+ * src/window.c: Only allow shading on windows with top decoration.
+
+ * src/event.c (handleEvent): Check that shade action is allowed
+ before shading a window.
+
+2006-06-08 David Reveman <davidr@novell.com>
+
+ * plugins/decoration.c (decorInitWindow):
+ * plugins/minimize.c (minInitWindow):
+ * src/window.c (addWindow): Handle initially shaded windows
+ correctly.
+
+ * plugins/switcher.c (switchTerminate): Only use hideWindow
+ if switcher window is managed and mapped.
+ (switchInitiate): Only use showWindow if switcher window is
+ hidden. (bnc 182519)
+
+ * plugins/minimize.c (minHandleEvent): Make sure we adjust the window
+ region correctly when it's being unshaded.
+
+2006-06-07 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.13.
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * src/window.c: Add window shading support.
+
+ * src/screen.c:
+ * src/paint.c:
+ * src/event.c: Adjust for window shading support.
+ (handleEvent): Handle RESTACK client messages with sibling None
+ correctly.
+
+ * src/event.c:
+ * src/display.c: Add toggle window shade binding.
+
+ * plugins/minimize.c: Add window shading animation support.
+
+ * plugins/fade.c:
+ * plugins/place.c:
+ * plugins/resize.c:
+ * plugins/scale.c:
+ * plugins/switcher.c:
+ * plugins/decoration.c: Adjust for window shading support.
+
+ * include/compiz.h: Add window shading support.
+
+ * gnome/window-decorator/gnome-window-decorator.c: lower_window ->
+ restack_window and change it so it can be used for both
+ raising and lowering a window.
+ Add support for double_click_titlebar setting.
+ (title_event): Don't activate window on titlebar click only
+ raise it. Use double_click_action to determine what should be
+ done when titlebar is double clicked.
+ (update_event_windows): Remove vertical resize event windows
+ when top level window is shaded.
+ (window_state_changed): Update event windows when window state
+ changed.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ * gnome/compiz-window-manager.c: Add support for shade double click
+ setting.
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/cube.c (cubePaintTransformedScreen):
+ * plugins/wobbly.c (wobblyDrawWindowGeometry):
+ * plugins/switcher.c (switchPaintWindow):
+ * src/paint.c (drawWindowGeometry): Disable client-side texture
+ coordinate arrays that are not used. (bnc #182430)
+
+ * plugins/compiz.schemas.in.in:
+ * plugins/resize.c:
+ * plugins/move.c: Add initiate_keyboard binding which is more
+ appropriate for key-binding as it moves the cursor to middle of
+ window.
+
+2006-06-06 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Track thumbnail damage correctly.
+ (switchPaintScreen): Only intercept paintScreen when screen is
+ grabbed or we're zooming and ss->translate > 0.001.
+ (switchPaintScreen): Paint switcher window correctly when we're
+ not zooming.
+ Add cube as a dependency to make sure background is rendered
+ correctly when zooming.
+ (bnc #181909)
+
+ * src/window.c (moveResizeWindow, ensureWindowVisibility):
+ Don't make sure fullscreen windows are in workarea.
+ (fdo #7115) (bnc #181907)
+
+ * src/event.c (handleEvent): Track XA_WM_CLASS property changes.
+
+ * src/window.c:
+ * include/compiz.h: remove updateWindowClass and update
+ updateWindowClassHints.
+
+2006-06-02 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.12.
+
+ * src/event.c (handleEvent): Fix typo.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ Hide tooltips on NotifyGrab. (bnc #180692)
+
+2006-06-01 Dan Winship <danw@novell.com>
+
+ * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP
+ request with no window set, set the flag on all screens. (Fixes
+ the KDE "show desktop" applet.) Also, don't allow a client to
+ change its _NET_WM_DESKTOP.
+
+ * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to
+ 0; KDE's pager and tasklist require this to be set. (bnc 178320)
+
+2006-06-01 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/window.c: Add updateWindowClass.
+
+2006-05-31 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/screen.c:
+ * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055)
+
+ * include/compiz.h:
+ * src/window.c: Add getStartupId.
+
+ * src/screen.c: Save initial viewport when startup notification
+ is received. Fix implementation of applyStartupProperties.
+ (bnc 180224)
+
+ * src/event.c (handleEvent): Handle startup ID property changes.
+
+ * plugins/place.c: Adjust work area to initial viewport.
+
+ * plugins/cube.c (cubePaintTransformedScreen): Disable skydome
+ animation while cube is unfolded. (bnc 179833)
+
+ * plugins/switcher.c (switchPaintWindow): Make sure selected window is
+ not clipped incorrectly when some window is transformed. (bnc 179828)
+
+ * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot.
+ (bnc 179902)
+
+ * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work)
+
+2006-05-30 Dan Winship <danw@novell.com>
+
+ * configure.ac: Check libwnck for wnck_window_has_name (new in
+ HEAD).
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME,
+ redefine wnck_window_get_name to return NULL if the window only
+ has a fallback name. bnc 173059.
+
+ * src/event.c (handleEvent): call moveInputFocusToOtherWindow()
+ before destroyWindow() when processing a DestroyNotify, or else
+ the input focus can get stranded.
+
+2006-05-26 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE.
+
+ * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration
+ on windows with below state.
+
+ * src/window.c (recalcWindowType): Treat dock windows with below state
+ as normal windows. (bnc #178316)
+
+ * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case
+ when more than 4 cube sides.
+
+2006-05-25 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * src/window.c (moveResizeWindow): Don't adjust position for NorthWest
+ gravity. (bnc 178765) (fdo #6992)
+
+ * plugins/compiz.schemas.in.in:
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/display.c: Add maximize_window_horizontally,
+ maximize_window_vertically, toggle_window_maximized,
+ toggle_window_maximized_horizontally,
+ toggle_window_maximized_vertically.
+
+ * src/event.c (handleEvent): Track changes to maximizeWindow function.
+
+ * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved
+ width before we use it. Track changes to maximizeWindow function.
+
+ * plugins/wobbly.c (wobblyHandleEvent): Handle the case where
+ window is not both vertically and horizontally maximized better.
+
+ * include/compiz.h: Add MAXIMIZE_STATE macro.
+
+ * include/compiz.h:
+ * src/window.c: Remove unmaximizeWindow and make maximizeWindow
+ take a state mask so it can be used for both maximizing and
+ unmaximizing.
+
+ * plugins/switcher.c: Don't add windows that appear after the switcher
+ is popped up. (bnc 178350)
+ (switchWindowRemove): Don't create a new list. Instead remove
+ window from the existing list and make sure we're positioned
+ correctly.
+
+2006-05-24 David Reveman <davidr@novell.com>
+
+ * plugins/scale.c (scaleMoveFocusWindow): When moving to window on
+ left, make sure the window we're moving to is completely left of
+ currently selected window. And same thing when moving to window on
+ right, top, bottom.
+ (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216)
+
+2006-05-23 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on
+ MSBFirst machines.
+
+ * src/texture.c: Include config.h before compiz.h so that
+ IMAGE_BYTE_ORDER is defined correctly. (bnc 178171)
+
+ * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER,
+ BITMAP_BIT_ORDER. (bnc 178171)
+
+2006-05-23 Dan Winship <danw@novell.com>
+
+ * plugins/switcher.c (switchToWindow): use ss->windows here as
+ well so that multiple activeNum==0 windows don't get skipped.
+ (switchTerminate): Remove the screen grab right away so that
+ keystrokes don't get dropped. bnc 177650
+ (switchPreparePaintScreen, switchPaintScreen,
+ switchDonePaintScreen): update for that
+
+2006-05-22 Dan Winship <danw@novell.com>
+
+ * src/window.c (moveResizeWindow): deal with both vertical and
+ horizontal struts; but not when moving a dock window
+
+ * plugins/switcher.c (switchHandleEvent): Check init_all binding
+ before init, so you can bind "<Alt>" to init_all and so end up
+ with "<Alt>Tab" being init_all rather than init (but with no way
+ to get "init"...). bnc 173376
+
+2006-05-21 David Reveman <davidr@novell.com>
+
+ * src/display.c (addDisplay): Select for button events on root windows.
+
+ * configure.ac: Bump version to 0.0.11.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Fix shadow
+ performance by separating the convolution filter into one vertical and
+ one horizontal pass.
+
+ * src/window.c (mapWindow): Give sync request on map another try, it
+ seems to be working now.
+
+ * src/window.c (addWindow): Allow XGetWindowAttributes to fail.
+ (bnc 173416).
+
+ * src/window.c (addWindow): Initialize managed to false. Set managed
+ to true if widows is viewable.
+
+ * src/event.c (handleEvent): Set managed to false when window
+ transitions to withdrawn state.
+ (handleEvent): Set managed to true when we get MapRequest.
+ (handleEvent): Constrain configure request if window is managed.
+
+ * include/compiz.h: Add "managed" variable that is true while
+ windows is managed.
+
+2006-05-19 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (ICON_SIZE): Allow use of larger window icons.
+
+2006-05-18 Dan Winship <danw@novell.com>
+
+ * plugins/wobbly.c (WOBBLY_FOCUS_DEFAULT): Set this to "None" to
+ match wobblyInitScreen() so that it actually works right.
+
+ * plugins/compiz.schemas.in.in: regen
+
+2006-05-18 Dan Winship <danw@novell.com>
+
+ * src/session.c (saveYourselfCallback): if we have a
+ RestartCommand registered with the session manager, update the
+ --sm-client-id in it to match the id we were assigned. bnc 176746
+
+ * src/main.c (main, usage): remove unused --sm-save-file arg and
+ fix documentation of --sm-client-id.
+
+2006-05-17 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen (Overlay Icon).
+
+ * plugins/switcher.c (switchPaintScreen): Don't remove switcher
+ from window list, just temporarily mark it as destroyed. This fixes
+ issue with switcher decorations disappearing when some window is
+ unmapped.
+
+ * src/screen.c (updateDefaultIcon): width and height should be
+ unsigned.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Add minimal
+ option that can be used to run g-w-d with drop-shadows but without full
+ window decorations.
+
+ * plugins/minimize.c (minHandleEvent): Restore window position
+ when transitioning to withdrawn state.
+
+ * plugins/scale.c: Remove next_window binding and fix so that arrow
+ keys can be used to select window.
+ Focus new window when pointer enter window decorations and sloppy focus
+ is used.
+ Remove scaleSelectWindow.
+
+ * plugins/scale.c: Icon support (Nat Friedman).
+
+2006-05-17 Dan Winship <danw@novell.com>
+
+ * src/display.c (handleSelectionClear, eventLoop): don't process
+ exit-on-selection-clear until the event queue is empty, or else
+ MapRequest and ConfigureRequest events could get lost. bnc 175558
+
+2006-05-14 David Reveman <davidr@novell.com>
+
+ * src/event.c (handleEvent): mapNum might be 0 if we found the window
+ unmapped when trying to bind it to a texture.
+
+2006-05-12 David Reveman <davidr@novell.com>
+
+ * src/screen.c (enterShowDesktopMode): Only go into show desktop mode
+ when some window is being hidden.
+
+ * src/event.c (handleWindowDamageRect): Make sure placed is set to true
+ when no plugin is doing placement.
+ (handleEvent): Don't set WM_STATE on override redirect windows.
+
+ * plugins/switcher.c (isSwitchWin): Don't show windows that ask not to
+ be in tasklists.
+
+ * plugins/rotate.c (rotateHandleEvent): Only adjust viewport if window
+ has been placed.
+
+ * plugins/minimize.c (minHandleEvent): Reset everything when going
+ into withdrawn state.
+
+ * src/window.c (moveResizeWindow): Handle west and north gravity
+ correctly.
+
+2006-05-11 David Reveman <davidr@novell.com>
+
+ * src/display.c (addDisplay):
+ * src/screen.c (addScreen): Move server grab to addDisplay to make
+ sure that no windows are created between XSelectInput and XQueryTree
+ as that would result in them being added two times.
+
+ * src/window.c (moveResizeWindow): Fix typo, CWY should be CWX.
+ (moveResizeWindow): Constrain Y position so that window titlebar is
+ visible.
+ (restoreWindowGeometry): Fix issue with going from maximized state
+ to non-maximized state without changing the window size.
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (max_window_name_width): Make sure title text fit in titlebar.
+
+2006-05-11 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as
+ meaning "disabled"
+
+2006-05-11 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c (action_menu_map):
+ Don't show window action menu on desktop and dock windows.
+
+ * src/event.c (handleEvent): Allow click on window decorations
+ to trigger window action menu.
+
+ * plugins/place.c (placeWindow): Place fullscreen and maximized
+ windows correctly.
+ (placeWindow): Only clip dialog position to screen if parent is
+ visible in current viewport.
+
+2006-05-09 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (switchPaintThumb): Rearrange code so we handle
+ the case when bindWindow fails.
+
+ * src/paint.c (paintWindow): Bail out if window is not mapped.
+
+ * src/window.c (bindWindow): Make sure window is mapped when
+ getting the window pixmap. (bnc 173248)
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/cube.c (CUBE_MIPMAP_DEFAULT): Enable by default as
+ performance seem to be OK now when new mipmaps are only generated
+ when necessary.
+
+ * src/texture.c (enableTexture): Don't generate new mipmaps
+ every time the texture is used.
+
+2006-05-08 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Allow switcher to be initiated with prev
+ bindings. (Quinn Storm)
+
+2006-05-07 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/switcher.c: Add icon support, minimized windows support
+ and allow switcher to show up when only one selectable window exist.
+
+ * images/Makefile.am: Add default icon image.
+
+ * include/compiz.h:
+ * src/texture.c:
+ * src/event.c (handleEvent):
+ * src/screen.c:
+ * src/display.c:
+ * src/window.c: Add WM icon interface.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Compute
+ switcher title text width correctly.
+
+ * src/event.c (handleEvent): Insert windows correctly when
+ reparenting.
+
+2006-05-07 Dan Winship <danw@novell.com>
+
+ * configure.ac: Add --with-scale-corner option and make
+ compiz.schemas reflect it; the best corner to use depends on where
+ the panels are and what's on them, so distros will want to
+ override this to match their default panel layout.
+
+ * src/event.c (eventMatches): Fix the the "water plugin gets
+ mysteriously activated when activating some other keybinding" bug.
+
+2006-05-05 Dan Winship <danw@novell.com>
+
+ * Makefile.am:
+ * autogen.sh:
+ * configure.ac: require intltool for option-description
+ translation
+
+ * plugins/Makefile.am: translate compiz.schemas.in into
+ compiz.schemas
+
+2006-05-05 Dan Winship <danw@novell.com>
+
+ * src/display.c (COMMAND_OPTION): Put numbers into the shortDescs
+ of the command and run_command options
+
+ * plugins/wobbly.c (WOBBLY_SNAP_MODIFIERS_DEFAULT): Use Shift
+ rather than Control, for consistency with Metacity, and to remove
+ the ambiguity about whether Ctrl+Alt+Button1 should be "grab cube"
+ or "move with snapping". (bnc 169402)
+
+ * plugins/compiz.schemas: regen
+
+2006-05-05 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas: Regen.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Forward
+ metacity's bell settings to compiz.
+
+ * plugins/water.c:
+ * plugins/wobbly.c:
+ * plugins/fade.c: Add visual bell.
+
+ * include/compiz.h:
+ * src/display.c: Add audible bell option.
+
+2006-05-04 David Reveman <davidr@novell.com>
+
+ * src/window.c (getModalTransient): Avoid infinite recursion when more
+ than one group transient got modal state.
+
+2006-05-03 David Reveman <davidr@novell.com>
+
+ * plugins/move.c:
+ * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the
+ cursor.
+
+ * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow
+ to figure out which viewport we should move to. (bnc 152677)
+
+ * src/window.c (addWindowSizeChanges): Offset x coordinate with
+ default viewport coordinate. (bnc 171465)
+ (updateWindowAttributes): Always add windows size changes. (bnc 171465)
+
+ * include/compiz.h:
+ * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow
+ function that computes the default viewport for a window.
+
+2006-05-02 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more
+ to make sure the cube unfolds completely.
+
+ * src/event.c (handleEvent): Not constraints should be applied to
+ ConfigureRequests for withdrawn windows. (bnc 171143)
+
+ * src/window.c (syncWindowPosition): We never need to send synthetic
+ ConfigureNotify events as we're not reparenting windows.
+
+2006-05-02 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-dump.c: rewrite to make compiz.schema regeneration
+ a little easier, and to make it possible to generate schema files
+ for third-party plugins. Include plugin descriptions and
+ dependency information in the schema.
+
+ * plugins/Makefile.am: add a rule to generate compiz.schemas
+
+ * plugins/compiz.schemas: regen
+
+ * plugins/cube.c, plugins/decoration.c, plugins/fade.c,
+ plugins/gconf.c, plugins/minimize.c, plugins/wobbly.c:
+ s/expose/scale/ in dependencies
+
+2006-05-02 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * configure.ac: Don't require glproto, include necessary enums in
+ compiz.h.
+
+ * src/texture.c:
+ * include/compiz.h: Update to latest EXT_tfp spec. Requires an
+ X server that has also been updated.
+
+ * configure.ac: Require glproto >= 1.4.7 with final EXT_tfp tokens.
+
+2006-05-01 David Reveman <davidr@novell.com>
+
+ * src/window.c (circulateWindow):
+ * src/event.c (handleEvent): Use getTopWindow instead of
+ reverseWindows->id as reverseWindows might be a destroyed window.
+
+ * include/compiz.h:
+ * src/screen.c: Add getTopWindow function that returns top window.
+
+2006-04-30 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas: Regen.
+
+ * plugins/decoration.c (decorWindowUpdate): Don't decorate fullscreen
+ windows.
+
+ * plugins/cube.c: Add initial support for unfolding the cube. Default
+ key-binding is <Control><Alt>Down.
+
+ * plugins/rotate.c (rotateHandleEvent): Fix absolute rotation.
+
+ * plugins/switcher.c: Fix so that bring-to-front doesn't change
+ the actual stacking order.
+ Add zoom option, enable it by default so it gets some testing.
+ Made bring-to-front enabled by default as it makes zoom functionality
+ more useful.
+ Made switcher window always rendered above all other windows and
+ not affected by screen transformations.
+
+ * src/event.c (handleEvent): Send configure notify before mapping
+ window if PPosition or USPosition is set.
+
+ * src/screen.c (insertWindowIntoScreen): Sibling above doesn't have to
+ be mapped. This change seem to currently by causing the
+ stacking order of some override-redirect windows to be incorrect.
+ Don't insert window when aboveId doesn't match an existing window.
+ (removeScreenGrab): ifdef DEBUG around abort.
+
+ * src/event.c (handleEvent): Only update active window property
+ when it's changing.
+
+ * src/window.c (sendConfigureNotify): Make sure the latest
+ window attributes are put in the ConfigureNotify.
+ (moveResizeWindow): Only send sync request if window is mapped.
+
+ * plugins/rotate.c: Add support for edge-flipping when using
+ drag-and-drop. Remove edge_flip and flip_move options and add
+ edge_flip_pointer, edge_flip_move, edge_flip_dnd.
+
+ * src/screen.c:
+ * src/display.c:
+ * include/compiz.h:
+ Make screen edges drag-and-drop aware.
+
+ * plugins/zoom.c:
+ * plugins/water.c:
+ * plugins/switcher.c:
+ * plugins/scale.c:
+ * plugins/rotate.c:
+ * plugins/resize.c:
+ * plugins/move.c:
+ * src/scren.c:
+ * include/compiz.h:
+ Variable argument list to otherScreenGrabExist, last argument must
+ be 0.
+
+ * src/event.c:
+ * src/display.c:
+ * include/compiz.h: Add raise-on-click option.
+
+ * gnome/window-decorator/gnome-window-decorator.c (title_event):
+ Activate window when clicking titlebar.
+
+2006-04-28 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c: Back out last change
+ as it clearly didn't fix anything. XFixed being defined as "int"
+ is perfectly fine of course. libXrender is currently broken on 64bit.
+ See Bug #6774 for a fix.
+ (XRenderSetPictureFilter_wrapper): Add workaround for 64bit
+ issue in libXrender. (Dan Winship)
+
+ * src/event.c (handleEvent):
+ * src/display.c:
+ * include/compiz.h:
+ Add show desktop binding. (Martin Szulecki)
+
+ * plugins/rotate.c: Reset timout handle correctly.
+
+ * plugins/move.c:
+ * plugins/resize.c:
+ * plugins/rotate.c:
+ * plugins/scale.c:
+ * plugins/switcher.c:
+ * plugins/water.c:
+ * plugins/zoom.c: Track screen grab changes changes.
+
+ * src/screen.c:
+ * include/compiz.h: Associate all screen grabs with a name. Add
+ otherScreenGrabExist function which can be used to check if screen
+ is grabbed by other plugins.
+
+2006-04-28 Dan Winship <danw@novell.com>
+
+ * src/event.c (eventMatches): new method that replaces EV_KEY and
+ EV_BUTTON. Tests if an event matches a binding, being more precise
+ about modifier state than EV_KEY and EV_BUTTON were.
+ (eventTerminates): Tests if an event is "the opposite" of a
+ binding. (Eg, button or modifier key release.) Replaces
+ CompReleaseMask and "terminate" bindings.
+ (handleEvent): Use eventMatches
+
+ * src/screen.c (addPassiveKeyGrab, removePassiveKeyGrab,
+ updatePassiveKeyGrabs): When passed a keybinding containing just
+ modifiers, grab/ungrab every keypress event that would result in
+ that modifier state (eg, both left and right modifier keys, and
+ allow them to be pressed in any order).
+
+ * src/display.c: Remove CompPressMask from default bindings.
+ (eventLoop): don't add virtual modifiers to event state.
+ (updateModifierMappings): store the XModifierKeymap for later
+ use.
+
+ * plugins/*.c: Use eventMatches and eventTerminates. Remove
+ CompPressMask and "terminate" bindings (except from scale, which
+ is different from the others).
+
+ * plugins/switcher.c: Make initiate_all be just the modifier key
+ used in addition to the initiate binding ("<Control>"). Remove
+ next_window since it doesn't make a lot of sense to have it be
+ different from initiate_all, and make prev_window be just a
+ modifier key as well. ("<Shift>").
+ (SwitchScreen): add extra options to store the fully-composed
+ initiate_all, prev, and prev_all bindings.
+ (switchScreenInitOptions, switchSetScreenOption): Generate and
+ regenerate initiate_all, prev, and prev_all bindings as needed.
+ (switchHandleEvent): update
+
+ * plugins/gconf-compiz-utils.c: Remove "<Release>" handling.
+
+ * plugins/compiz.schemas: regen, dropping the terminate bindings
+ and updating a few others.
+
+ * include/compiz.h: remove CompPressMask, CompReleaseMask,
+ EV_BUTTON, and EV_KEY. Add eventMatches, eventTerminates, and
+ keycodeToModifiers. Add modMap field to CompDisplay.
+
+2006-04-28 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: Handle enter/leave notify events.
+
+ * plugins/decoration.c (decorInitWindow): Check for window specific
+ decoration on both mapped and unmapped windows so that initially
+ minimized windows get properly decorated. (Dan Winship)
+
+ * gnome/window-decorator/gnome-window-decorator.c: Use xfixed_16_16_t
+ instead of XFixed to avoid 64bit issue with XFixed being defined as
+ "int".
+
+ * configure.ac: xrender 0.8.4 is good enough.
+
+2006-04-27 Dan Winship <danw@novell.com>
+
+ * plugins/rotate.c (rotateHandleEvent): for the
+ rotate-to-specific-face keys, rotate counterclockwise when that's
+ faster. (bnc 169427)
+
+ * plugins/scale.c (scaleHandleEvent): Make the corners toggle
+ scale mode rather than only activating it. (bnc 169408)
+
+2006-04-27 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.10.
+
+ * plugins/decoration.c: Remove debug variable.
+
+ * src/window.c (addWindow): Check if window is minimized. (Dan Winship)
+
+ * plugins/compiz.schemas: Regen (snapoff and maximize_effect).
+
+ * plugins/wobbly.c: Add maximize effect.
+
+ * plugins/zoom.c:
+ * plugins/water.c:
+ * plugins/rotate.c:
+ * plugins/resize.c:
+ * plugins/move.c:
+ * src/event.c:
+ * src/screen.c:
+ * src/display.c:
+ * include/compiz.h: Add proper warp pointer interface and update
+ all plugins to use it.
+
+2006-04-26 Dan Winship <danw@novell.com>
+
+ * src/event.c (handleEvent): activate window on Button2 click in
+ addition to Button1 and Button3.
+
+ * plugins/gconf.c (gconfSetOption): gconf_value_compare against
+ the old value for list-type options too.
+ (gconfInitOption): Change the call to gconf_client_get_entry to
+ request the default value again; the fix to gconfSetOption will
+ prevent the infinite loops that happened before.
+
+2006-04-26 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c (update_shadow):
+ Remove comment that is no longer valid.
+
+ * plugins/move.c: Support for maximized windows snap-off. Based on
+ patch by Colin Guthrie.
+
+ * plugins/rotate.c (rotateHandleEvent): Don't do edge flipping
+ when a horizontally maximized or fullscreen window is grabbed.
+
+ * plugins/zoom.c:
+ * plugins/rotate.c:
+ * plugins/resize.c:
+ * plugins/move.c:
+ * src/screen.c:
+ * include/compiz.h: Add warpPointerToScreenPos and use it everywhere
+ we want to invisibly warp the pointer.
+
+2006-04-25 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ * plugins/decoration.c: Add clamp and min size.
+
+ * plugins/decoration.c (decorReleaseDecoration): Fix memory leak.
+
+ * plugins/scale.c: Click on background leaves scale mode and enters
+ show desktop mode. (Dan Winship)
+
+ * plugins/minimize.c (minHandleEvent): Initialize scale and
+ translate properly.
+
+ * src/window.c (activateWindow):
+ * src/event.c (handleEvent):
+ * src/screen.c: Add window parameter to leaveShowDesktopMode and
+ use this function for making one window leave show desktop mode.
+ Fixes so that we're leaving show desktop mode when no windows
+ are longer hidden.
+
+ * plugins/scale.c (scaleSetScreenOption): Add missing break statement.
+
+ * plugins/rotate.c (rotateInitScreen): Initialize rotateHandle.
+
+ * src/paint.c (paintScreen): Only paint windows that have been
+ damaged.
+
+2006-04-24 Dan Winship <danw@novell.com>
+
+ * plugins/scale.c:
+ * plugins/switcher.c: clarify the "initiate" descriptions
+
+ * plugins/compiz.schemas: regen
+
+2006-04-24 David Reveman <davidr@novell.com>
+
+ * src/paint.c (paintScreen): Always call paintWindow when window
+ is visible. Fixes so that window animations (fade, minimize...) aren't
+ paused when if window becomes invisible.
+ (paintWindow): Return early if region is empty.
+
+ * plugins/switcher.c: Use hideWindow and showWindow so that the
+ decoration doesn't have to be redrawn every time the switcher window
+ is mapped.
+
+ * src/window.c:
+ * include/compiz.h: Add hidden flag, that can be used to hide windows
+ without minimizing them.
+
+ * plugins/compiz.schemas: Regen (drop-shadow options).
+
+ * configure.ac: xrender 0.9, required for g-w-d.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ * plugins/decoration.c: Add configurable drop-shadows. A minor issue is
+ that shadows around "tiny" windows are not rendered correctly when
+ large shadow offsets are used. Solution is to have the decorator set
+ a minimum size for which a decoration can be used so that no shadows
+ are rendered around "tiny" windows.
+
+2006-04-20 Dan Winship <danw@novell.com>
+
+ * plugins/rotate.c: add 12 go-directly-to-cube-face and 12
+ go-directly-to-cube-face-with-window bindings.
+
+ * src/display.c (compDisplayInitOptions): fix the binding type on
+ WINDOW_MENU.
+
+ * plugins/compiz.schemas: Regen. (lower_window, window_menu,
+ scale_image, images, resize, flip_move, move_window_types, and the
+ new rotate bindings)
+
+2006-04-20 David Reveman <davidr@novell.com>
+
+ * src/window.c:
+ * src/event.c (handleEvent):
+ * src/display.c:
+ * include/compiz.h:
+ * gnome/window-decorator/gnome-window-decorator.c: Add force quit
+ dialog.
+
+ * plugins/resize.c: Changed default binding to Button2.
+
+ * src/display.c (LOWER_WINDOW_BUTTON_DEFAULT): Button2 -> 6.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/display.c: Add window menu binding.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Pick up toolkit
+ actions from compiz and send gnome panel actions for "main menu" and
+ "run dialog" actions.
+
+ * src/event.c (handleEvent):
+ * src/screen.c:
+ * include/compiz.h:
+ * src/display.c (addDisplay): panel action -> toolkit action.
+
+ * src/window.c (getModalTransient): Group transient must not be an
+ ancestor to the window we've currently found as the window to focus.
+ (getModalTransient): Check for child modal transient.
+
+2006-04-19 David Reveman <davidr@novell.com>
+
+ * gnome/compiz-window-manager.c: Be nice to gnome-theme-manager
+ and return a theme even though we currently don't support it.
+
+ * include/compiz.h:
+ * src/main.c: Remove window-image option.
+
+ * include/compiz.h:
+ * plugins/water.c:
+ * plugins/cube.c:
+ * src/texture.c:
+ * src/paint.c:
+ * src/main.c: Add strict-binding option.
+
+2006-04-18 Dan Winship <danw@novell.com>
+
+ * src/event.c (handleEvent): Fix a crasher in the screenshot
+ binding code (and rename some of the #defines to make them not so
+ ridiculously long). Also temporarily hack around a bug in EV_KEY
+ by putting the check for WINDOW_SCREENSHOT before the check for
+ SCREENSHOT.
+
+ * plugins/scale.c: Change the keybinding again, now to "Pause".
+ (F11 is the "fullscreen mode" binding for many apps.)
+
+ * plugins/compiz.schemas: update
+
+ * plugins/gconf.c:
+ * plugins/gconf-compiz-utils.c:
+ * plugins/gconf-dump.c: Rearrange #includes to prevent warning
+ about TRUE and FALSE being redefined
+
+2006-04-18 David Reveman <davidr@novell.com>
+
+ * plugins/rotate.c (ROTATE_FLIPMOVE_DEFAULT): Changed to TRUE.
+
+ * src/window.c (recalcWindowActions): Remove maximize and fullscreen
+ actions when resizing isn't allowed.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Dynamic positioning
+ of window buttons.
+
+ * plugins/cube.c (readSvgToTexture): Fix typo.
+
+ * plugins/resize.c: Constrain cursor movement to min/max window size.
+
+ * src/window.c (constrainNewWindowSize): Fix aspect ratio calculations.
+
+2006-04-17 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c: Put PNG on top face by default.
+
+ * images/Makefile.am: Remove window.png.
+ Add novell.png.
+
+ * include/compiz.h:
+ * src/readpng.c: Add openImageFile.
+
+ * plugins/cube.c: Support for PNGs on top face.
+ Add scale image option which is used to determine if top face
+ image should be scaled or not.
+
+2006-04-15 David Reveman <davidr@novell.com>
+
+ * plugins/wobbly.c: Add modal dialog type to default list of windows
+ that should be wobbly when moved.
+
+ * plugins/water.c (SET): +1 for border.
+
+2006-04-14 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-dump.c: add "water" to gconfDeps
+
+ * plugins/compiz.schemas: regen including the water options
+
+2006-04-14 David Reveman <davidr@novell.com>
+
+ * src/event.c (handleWindowDamageRect): Ignore damage from windows
+ that aren't redirected.
+
+ * include/compiz.h:
+ * src/window.c:
+ * src/display.c (eventLoop):
+ * src/screen.c: Add support for automatic unredirecting of fullscreen
+ windows.
+
+ * plugins/scale.c (scaleInitiate): Layout thumbnails before we
+ grab the screen to make sure some window exist.
+
+ * plugins/resize.c: Allow 4-way resize. (Mike Hearn)
+
+2006-04-13 Dan Winship <danw@novell.com>
+
+ * src/screen.c (panelAction): take a timestamp and pass that to
+ the panel rather than using CurrentTime
+
+ * src/event.c (handleEvent): update for that
+
+ * src/window.c (moveResizeWindow): fix the gravity handling so
+ self-resizing windows don't dance (although I'm pretty sure this
+ is a symptom of mishandling gravity somewhere else).
+
+ * plugins/gconf.c (gconfInitOption): Request the default value of
+ the key from gconf, rather than initializing the key to the
+ internal default value if it hasn't yet been set by the user.
+ Notably, this makes it so that "compiz gconf" on a new account
+ will use the default value of active_plugins rather than the
+ (effectively empty) list of plugins on the command line. (It also
+ makes it so that the sysadmin can override defaults via sabayon or
+ whatever.)
+
+2006-04-13 David Reveman <davidr@novell.com>
+
+ * src/window.c (mapWindow): Maybe not, disable it again. :(
+
+ * src/window.c (mapWindow): Enable draw synchronization on map
+ again. Should be working correctly with CVS version of X server.
+
+2006-04-12 Dan Winship <danw@novell.com>
+
+ * src/window.c (moveResizeWindow): move duplicated code from
+ _NET_MOVERESIZE_WINDOW and ConfigureRequest handlers in event.c to
+ here, and handle gravity as well. (Fixes bnc 163058.)
+ (updateWindowAttributes): Do nothing if the window is
+ override_redirect (and remove a few now-redundant checks of that
+ elsewhere). Previously we were forgetting to check
+ !override_redirect in the case where the motif hints changed. (bnc
+ 163931)
+ (getWindowUserTime): fix a cut-and-paste-o that caused a crash on
+ 64bit machines.
+
+ * src/event.c (handleEvent): fix the _NET_MOVERESIZE_WINDOW bit
+ manipulation to correspond to what the EWMH means rather than what
+ it says, and use moveResizeWindow for that and for
+ ConfigureRequest.
+
+ * plugins/gconf-compiz-utils.c (gconfBindingToString): DTRT with
+ "None" bindings.
+
+ * gnome/window-decorator/gnome-window-decorator.c (title_event):
+ if the user right-clicks on the titlebar while the context menu is
+ popped up, just pop it down and eat the click, like all other
+ GNOME context menus do.
+ (style_changed, value_changed): Don't add decorations to
+ previously-undecorated windows. (bnc 165393)
+
+2006-04-11 David Reveman <davidr@novell.com>
+
+ * src/screen.c (addScreen): Fix typo.
+
+2006-04-10 Dan Winship <danw@novell.com>
+
+ * src/window.c (focusWindowOnMap): new function to decide whether
+ or not to focus a newly-mapped window. In addition to the old
+ checks, this also checks that _NET_WM_USER_TIME isn't 0, to allow
+ a window to explicitly request to not get focus.
+
+ * src/event.c (handleEvent): use focusWindowOnMap when processing
+ MapRequest.
+
+ * plugins/rotate.c (rotateHandleEvent): fix _NET_ACTIVE_WINDOW
+ handling so this doesn't interfere with focusable panel applets.
+
+ * plugins/compiz.schemas: regen (fixing cube top/bottom color)
+
+ * plugins/gconf-dump.c: Handle CompOptionTypeColor.
+
+ * configure.ac: Add --enable-gconf-dump so that the gconf-dump
+ plugin doesn't get built in normal builds
+
+ * plugins/Makefile.am: make gconf-dump optional.
+
+2006-04-09 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-dump.c: add plugin options, and add information
+ about restrictions (numeric ranges, specific string values) to the
+ long description. Make gconf-dump refuse to run if gconf is
+ running (since you want the defaults it writes out to be coming
+ from the defaults in the source code, not from any gconf
+ overrides).
+
+ * plugins/compiz.schemas: regen
+
+ * plugins/gconf.c (gconfGetOptionValue): don't call gconfSetOption
+ from here, or we'll get an infinite loop when anything changes
+
+2006-04-09 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/display.c:
+ * src/main.c:
+ * src/screen.c:
+ * src/texture.c:
+ * src/window.c: Remove test mode.
+
+ * plugins/Makefile.am: Remove schema from CLEANFILES.
+
+ * plugins/compiz.schemas:
+ * src/display.c:
+ Improve documentation for runcommand keys slightly. (Mike Hearn)
+
+ * include/compiz.h:
+ * src/texture.c:
+ * src/screen.c (addScreen): Switch to using GLX 1.3 functions.
+ (James Jones)
+
+ * src/main.c: Indirect rendering option. (James Jones)
+
+2006-04-08 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: Add rain delay option. (Emilie Roberts)
+
+2006-04-07 David Reveman <davidr@novell.com>
+
+ * plugins/gconf-dump.c: Dump list options correctly.
+
+ * plugins/rotate.c: Add flip_move option, edge flipping is only
+ used when moving windows if this option is enabled.
+ (rotateHandleEvent): Make we don't rotate when some other plugin
+ has grabbed the screen.
+
+ * plugins/scale.c: Change default key-binding to F11.
+ (scaleInitiate): Make sure screen isn't grabbed by some other plugin.
+ (scaleInitScreen): Initialize darkenBack properly.
+
+ * configure.ac: Bump version to 0.0.9.
+
+ * plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix.
+
+ * plugins/rotate.c (ROTATE_SPEED_DEFAULT): 1.5.
+
+2006-04-07 Dan Winship <danw@novell.com>
+
+ (Much of this patch was written by Radek Doulik
+ <rodo@novell.com>.)
+
+ * src/display.c:
+ * src/event.c:
+ * src/screen.c: Move keybinding stuff to CompDisplay, making it no
+ longer settable per-screen. Add bindings for screenshots (for
+ compatibility with metacity, which handles that keybinding in
+ GNOME for historical reasons).
+
+ * include/compiz.h: add an explicit CompBindingTypeNone rather
+ than relying on modifiers==0 to mean none. Update bindings stuff.
+
+ * src/screen.c (removePassiveKeyGrab, removePassiveButtonGrab):
+ Fix these to remove the right grab rather than always removing the
+ most-recently-added one.
+ (addScreenBinding): deal with CompBindingTypeNone
+
+ * plugins/gconf-dump.c: hacky plugin to dump information about the
+ other plugins to a gconf schemas file (used to regenerate
+ compiz.schemas)
+
+ * plugins/gconf-compiz-utils.c: shared code between gconf.c and
+ gconf-dump.c
+
+ * plugins/Makefile.am: add gconf-dump plugin and compiz.schemas,
+ and code to install compiz.schemas.
+
+ * configure.ac: Update gconf test to set macros needed for schema
+ install.
+
+2006-04-07 David Reveman <davidr@novell.com>
+
+ * plugins/rotate.c: Add edge flipping support.
+
+ * plugins/scale.c: Allow corner screen edges to be used for
+ initiating scale mode.
+
+ * src/option.c (compSetBoolOption): Only return TRUE if value changed.
+
+ * src/screen.c:
+ * src/window.c:
+ * plugins/minimize.c:
+ * plugins/decoration.c:
+ * include/compiz.h: Add immediate argument to MoveNotify, immediate
+ means that any animations should be avoided.
+
+ * src/screen.c:
+ * plugins/water.c:
+ * plugins/resize.c:
+ * plugins/place.c:
+ * plugins/move.c:
+ * plugins/zoom.c:
+ * plugins/rotate.c:
+ * plugins/scale.c:
+ * src/event.c:
+ * include/compiz.h:
+ Add previous pointer position that can be shared between multiple
+ plugins.
+
+2006-04-06 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/screen.c: Add screen edges and simple interface for enabling
+ and disabling them.
+
+ * plugins/switcher.c (switchDamageWindowRect)
+ (switchWindowRemove): Update switcher list even when screen isn't
+ grabbed.
+
+ * plugins/switcher.c (switchDamageWindowRect):
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/window.c: Made it possible to select if window should be
+ stacked above fullscreen windows or not.
+
+ * src/window.c (findSiblingBelow): Only find a fullscreen sibling
+ if aboveFs is TRUE.
+ (activateWindow): Allow stacking of window above fullscreen windows
+ when being activated.
+
+2006-04-05 David Reveman <davidr@novell.com>
+
+ * plugins/water.c (fboEpilogue): Reset raster position. Avoids
+ an FBO/raster-position issue found in newer nvidia drivers.
+
+ * plugins/move.c: Add constrain_y option that constrains window
+ movement so that top of window is always visible (on by default).
+
+ * src/event.c (handleEvent): Change active window property even though
+ it's not different than the window we currently have as active.
+
+ * src/window.c (moveInputFocusToWindow): Set focus even though
+ the window is considered the active window.
+
+2006-04-03 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: Use char everywhere instead.
+ Fix offset direction (P-a Bäckström).
+ Add offset scale option.
+
+ * plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte.
+ (loadWaterProgram): char -> GLbyte.
+ (loadBumpMapProgram): char -> GLbyte.
+ Use char everywhere.
+
+ * configure.ac: Bump version to 0.0.8.
+
+ * plugins/water.c: Add simple rain effect.
+ (loadFragmentProgram): Clear any previous error.
+
+ * src/display.c: Change so that timeouts are not only triggered
+ when we're idle.
+
+2006-04-02 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: Add scale and bias to normal so that light can be
+ computed correclty. Offset texture coordinates for nice refraction
+ effect. (P-a Bäckström)
+ (waterDrawWindowTexture): Add scaling after setting up texture
+ coordinate generation.
+ Fix up loading of bump map programs.
+ (softwareUpdate): Improve performance of software fall-back code a bit.
+ (waterDrawWindowTexture): Always use filter for when window is
+ transformed.
+
+ * plugins/gconf.c (gconfGetValue): Fix typo that caused color
+ parsing to be incomplete (Quinn Storm).
+
+2006-04-01 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Add "initiate all" binding which brings up the
+ switcher window with all mapped windows and "initiate" binding will
+ now bring up the switcher window with only the visible windows.
+
+2006-03-31 David Reveman <davidr@novell.com>
+
+ * plugins/minimize.c (minDamageWindowRect): Never leave windows
+ in scaled state.
+
+ * src/screen.c (moveScreenViewport): Move hidden windows as well.
+
+ * src/window.c (addWindow, activateWindow, hideWindow)
+ (showWindow):
+ * src/screen.c (enterShowDesktopMode, leaveShowDesktopMode):
+ * src/event.c (handleEvent):
+ * include/compiz.h: Fix up show desktop mode.
+
+ * plugins/water.c (fboVertices): return 1.
+
+2006-03-30 David Reveman <davidr@novell.com>
+
+ * src/texture.c (enableTexture): Always make sure mipmaps are up to
+ date when using GL_LINEAR_MIPMAP_LINEAR filter.
+
+2006-03-29 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c: Draw outline around
+ window title text and buttons instead of small shadow.
+
+ * src/event.c (handleEvent):
+ * include/compiz.h:
+ * src/window.c: Set allowed window actions more correctly.
+
+ * plugins/move.c: Add opacity option.
+
+ * plugins/Makefile.am: Add water plugin. It's not very useful yet
+ and it needs more work but it's a good example of how to use
+ GL_ARB_fragment_program and GL_EXT_framebuffer_object for visual
+ effects.
+
+ * src/screen.c (addScreen): Fix light position.
+
+ * src/paint.c (paintWindow):
+ * plugins/switcher.c (switchPaintThumb):
+ * plugins/decoration.c (decorPaintWindow):
+ * include/compiz.h: Make drawWindowTexture a screen function so that
+ plugins can wrap it.
+
+ * src/texture.c (enableTexture):
+ * src/screen.c (addScreen):
+ * include/compiz.h: GL_EXT_framebuffer_object and
+ GL_ARB_fragment_program support.
+
+2006-03-21 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c (lower_window): Don't
+ try to lower a window below hidden windows or desktop windows.
+
+2006-03-20 David Reveman <davidr@novell.com>
+
+ * plugins/wobbly.c (wobblyHandleEvent):
+ xunmap -> xmap (François Ingelrest).
+
+ * src/screen.c (isClientListWindow): All type of windows should go into
+ the client lists (Thanks to Quinn Storm).
+
+ * src/window.c (freeWindow): Destroy frame window.
+ (mapWindow): Fix so the sync requests are sent correctly when a window
+ is mapped but disable it for now as it seems to be causing problems
+ with some applications.
+ (recalcWindowActions): Allow dialog window actions on util and
+ toolbar windows.
+
+ * src/event.c (handleEvent): Remove event mask and button grabs
+ when window is reparented.
+ (handleEvent): Update client list when window type changes.
+ (handleEvent): Use constrainNewWindowSize on move/resize client
+ messages and configure requests.
+
+ * gnome/window-decorator/gnome-window-decorator.c (window_closed):
+ Delete decor property when window is closed.
+
+2006-03-17 Jeremy C. Reed <reed@reedmedia.net>
+
+ reviewed by: David Reveman
+
+ * autogen.sh:
+ Be consistent with rest of modular xorg by using same
+ autogen.sh. This allows it to be run using a different
+ work directory.
+
+2006-03-17 Jeremy C. Reed <reed@reedmedia.net>
+
+ reviewed by: David Reveman
+
+ * INSTALL:
+ Mention startup-notification requirement.
+
+2006-03-17 David Reveman <davidr@novell.com>
+
+ * plugins/scale.c: Add opacity option.
+
+ * configure.ac: Bump version to 0.0.7.
+
+2006-03-17 Radek Doulik <rodo@novell.com>
+
+ * src/session.c: added all mandatory SM client callbacks, handle
+ ICE connection and process ICE messages
+
+ * src/display.c (compAddWatchFd): new function, adds new fd watch
+ - for poll io multiplexing
+ (compRemoveWatchFd): new function, remove fd watch added by
+ compAddWatchFd
+ (doPoll): new helper function, does call poll and calls callbacks
+ for watch fd's. returns the value of poll call
+ (eventLoop): use doPoll, we use NULL for display fd watch so that
+ it doesn't call anything and just use return value from poll as
+ before
+
+2006-03-17 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (switchDamageWindowRect): Update window
+ attributes for popup window. We never get a MapRequest for this
+ window so it most be done here.
+ Add "bring to front" option. (Greg)
+
+ * src/window.c (stackAncestors): Never raise desktop windows.
+ Made restackWindowAbove and restackWindowBelow smarter.
+
+2006-03-16 David Reveman <davidr@novell.com>
+
+ * plugins/minimize.c:
+ * src/event.c (handleEvent):
+ * src/window.c:
+ Handle window state changes correctly.
+ (maximizeWindow): Use actions to determine if we're allowed maximize
+ window.
+
+ * src/event.c (handleEvent):
+ * src/window.c: Send configure notifies correctly.
+
+2006-03-15 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (switchPaintWindow): Fix paint attribute
+ calculations.
+
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/window.c: Add restackWindowBelow.
+
+2006-03-14 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Opacity, brightness and saturation as adjustable
+ options. (Greg)
+
+ * src/window.c (syncWindowPosition): Move frame window now instead of
+ waiting for client window to change before moving it.
+
+ * plugins/move.c (moveTerminate): Sync window position before
+ releasing pointer grab so that the EnterNotify event from the release
+ go to the correct window.
+
+ * src/window.c (unmapWindow): Put window in withdrawn state when
+ being unmapped. Should make it work better with KDE. (Tim Northover)
+
+ * src/screen.c (addScreen): Fix ambient and diffuse light.
+
+ * src/main.c (main): Add --version command line option.
+
+ * src/event.c:
+ * src/screen.c:
+ * include/compiz.h: Add bindings for changing window opacity.
+
+2006-03-14 Radek Doulik <rodo@novell.com>
+
+ * src/event.c (handleEvent): handle minimize/maximize/unmaximize
+ window keybindings
+
+ * src/screen.c: added minimize/maximize/unmaximize window
+ options/keybindings
+
+ * src/window.c (maximizeWindow): new helper function
+ (unmaximizeWindow): ditto
+
+2006-03-14 David Reveman <davidr@novell.com>
+
+ * plugins/scale.c: Add darken background option (Daniel G. Taylor).
+
+2006-03-13 David Reveman <davidr@novell.com>
+
+ * src/display.c (eventLoop):
+ * include/compiz.h:
+ * src/screen.c (addScreen): CopySubBufferMESA support.
+
+2006-03-07 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c (lower_window):
+ Remove unused variable tmp.
+
+ * src/event.c:
+ * src/display.c:
+ * src/window.c:
+ * src/screen.c:
+ * include/compiz.h: Better window stacking support.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Lower window
+ when clicking button 2 on titlebar.
+
+ * src/window.c (ensureWindowVisibility): Only ensure that window is
+ visible if it isn't a override redirect window, dock window or
+ window with struts.
+
+2006-03-06 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.6.
+
+ * plugins/cube.c: Skydome update. (MacSlow)
+
+ * src/window.c: Ensure window visibility when activating window.
+
+2006-03-05 David Reveman <davidr@novell.com>
+
+ * src/window.c (closeWindow): Use protocol mask to determine if
+ Client Message should be send or if we should kill the client.
+
+ * plugins/decoration.c: Don't draw shadow only decorations around
+ windows with alpha channel.
+
+2006-03-03 David Reveman <davidr@novell.com>
+
+ * src/texture.c (readImageBufferToTexture):
+ (readImageToTexture): Check that returnWidth and returnHeight are
+ not NULL.
+
+ * plugins/cube.c: Skydome support. Thanks to MacSlow.
+
+ * plugins/fade.c (fadeHandleEvent): Make sure opacity isn't opaque
+ when fading out.
+ Stop fading if window is resized.
+
+ * src/window.c (resizeWindow): Only verify pixmap size if window is
+ mapped.
+ (resizeWindow): Check XGetGeometry result.
+
+ * plugins/switcher.c: Make sure switcher is correctly updated
+ even though the previously selected window isn't selectable by
+ switcher.
+
+ * src/event.c (handleEvent): Avoid panel actions when screen is
+ grabbed.
+
+2006-03-03 Radek Doulik <rodo@novell.com>
+
+ * src/main.c (main): init and close session when sm is not
+ disabled. Enable sm by default.
+
+ * src/session.c: added minimal session support so that compiz at
+ least register with session manager to avoid registering timeouts
+
+2006-03-03 David Reveman <davidr@novell.com>
+
+ * src/screen.c (removeScreenGrab): Use correct cursor when changing
+ actvie pointer grab.
+
+2006-03-02 David Reveman <davidr@novell.com>
+
+ * plugins/rotate.c (rotateHandleEvent):
+ * plugins/zoom.c (zoomHandleEvent): Make sure no pending motion
+ notify events exists when warping the pointer.
+
+ * plugins/rotate.c (rotateHandleEvent): Reset movement.
+
+ * plugins/switcher.c: Always send activate request when selecting a
+ window.
+
+ * plugins/cube.c (cubePaintTransformedScreen): Reset color.
+
+ * plugins/switcher.c (switchPaintThumb): PAINT_WINDOW_TRANSLUCENT_MASK
+ if opacity isn't opaque.
+ (switchPaintWindow): Reset color.
+
+2006-03-01 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.5.
+
+ * plugins/fade.c (fadeAddDisplayModal): Higher brightness when showing
+ display modal dialogs.
+
+ * plugins/switcher.c (switchPreparePaintScreen): Continue adjusting
+ window selection even though we're not grabbing the screen.
+ (switchPaintWindow): Use last used paint attributes for thumbnails.
+ (switchPaintWindow): Use blending when drawing selection rectangle.
+
+ * plugins/fade.c (fadeHandleEvent): unmap. -> map.
+ (fadeDamageWindowRect): Only zero opacity if we're not already
+ fading the window.
+
+ * src/window.c (unmapWindow): 'placed' variable should be reset on
+ first call to unmapWindow.
+
+ * src/screen.c:
+ * src/event.c (handleEvent):
+ * src/display.c (eventLoop):
+ * include/compiz.h: Add slow animation option.
+
+ * src/window.c (recalcNormalHints): Constrain window dimensions to
+ max texture size.
+
+ * src/screen.c (addScreen): Get max texture size.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Nicer drop shadow
+ on windows without decorations.
+
+ * src/window.c (addWindow): Move initialization of sync alarm.
+
+ * plugins/cube.c:
+ * plugins/decoration.c:
+ (decorCreateDecoration): Fix minimum size check.
+
+ * src/main.c:
+ * include/compiz.h:
+ * src/paint.c:
+ * src/screen.c: Ligthing support.
+
+ * compiz.pc.in: Fix.
+
+2006-02-23 David Reveman <davidr@novell.com>
+
+ * src/window.c (unmapWindow): Not minimized and not part of showing
+ desktop mode.
+
+ * plugins/wobbly.c: Fix handling of scaled windows.
+ Update options so that user gets more control over which windows
+ that should wobble and when.
+
+ * configure.ac: Bump version to 0.0.4.
+
+ * gnome/window-decorator/gnome-window-decorator.c (window_opened): Make
+ sure decoration property for switcher window is set.
+
+ * plugins/decoration.c (decorHandleEvent):
+ * src/event.c (handleEvent):
+ * plugins/switcher.c:
+ * src/screen.c (addScreen, setScreenOption)
+ (compScreenInitOptions):
+ * src/texture.c:
+ * include/compiz.h: Mipmap support. Add more RUN_COMMAND options.
+
+2006-02-22 David Reveman <davidr@novell.com>
+
+ * src/display.c (realToVirtualModMask): Remove modifiers that should
+ be ignored.
+ (addDisplay): Select ButtonPress and ButtonRelease events on root
+ window.
+
+ * include/compiz.h (EV_KEY):
+ (EV_BUTTON): Modifiers should match exactly.
+
+ * plugins/switcher.c: Add binding for selecting previous window.
+
+ * plugins/decoration.c: Remove sync hack.
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (draw_shadow_background): Fix drawing of bottom and bottom right
+ shadow rectangle.
+ Add switcher window decorations.
+ Remove sync hack.
+ Always use double buffering.
+
+ * plugins/switcher.c: Remove background color option.
+ Use property instead of client message to indicate change of selected
+ window.
+
+2006-02-21 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c (cubeHandleEvent): Only load new SVG when available.
+
+2006-02-20 David Reveman <davidr@novell.com>
+
+ * plugins/decoration.c (decorWindowUpdate): Decorate window
+ MwmDecorTitle is present.
+
+ * src/window.c (focusWindow):
+ (moveInputFocusToWindow):
+ Allow focusing windows with input hint set to false.
+ (activateWindow): Fix so that dock windows can be active.
+
+ * src/screen.c (isClientListWindow): Don't put destroyed windows in
+ client lists.
+
+ * src/event.c (handleEvent): Fix so that dock windows can be active.
+ (handleEvent): Avoid focusing windows with input hint set to false
+ when mapped.
+
+2006-02-18 David Reveman <davidr@novell.com>
+
+ * src/window.c (unmapWindow): Windows not being minimized should be
+ placed again at next map.
+
+ * plugins/wobbly.c (wobblyDonePaintScreen): Also add pending damage
+ if any window is in initial wobbly state.
+
+2006-02-17 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.3.
+
+ * plugins/zoom.c (zoomIn): Translate less.
+ (zoomPaintScreen): Use selected filter.
+ (adjustZoomVelocity): Made zoom animation nicer.
+ (zoomPreparePaintScreen): Don't zoom to much.
+ ADd filter selection option.
+
+ * plugins/decoration.c (decorPaintWindow):
+ * src/paint.c (drawWindowTexture): Use screen filters.
+
+ * include/compiz.h: Add support for adjusting filters.
+
+ * plugins/scale.c (scaleHandleEvent): Only button 1.
+
+ * plugins/cube.c (cubePaintTransformedScreen): Fix drawing with size
+ greater than 4.
+
+2006-02-16 David Reveman <davidr@novell.com>
+
+ * configure.ac: Remove menu.
+
+ * plugins/switcher.c (switchNextWindow): Damage new and previously
+ selected window.
+ (switchInitiate): Damage screen initiating switching.
+ (switchTerminate): Damage screen terminating switching.
+ (switchPaintThumb): Draw thumbnail without calling any function that
+ can be wrapped.
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (update_window_decoration_size): Make sure title isn't rendered
+ when it doesn't fit.
+
+2006-02-14 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (draw_window_decoration): Make sure complete icon is visible.
+
+ * src/display.c (eventLoop):
+ (getTimeToNextRedraw): Handle clock rollback.
+
+2006-02-13 David Reveman <davidr@novell.com>
+
+ * configure.ac: Remove menu plugin check.
+ Require version 2.8.0 or greater of gtk+.
+
+2006-02-11 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.2.
+
+ * src/window.c:
+ * src/event.c:
+ * plugins/fade.c:
+ * src/display.c:
+ * include/compiz.h: Lower brightness of windows that are not responding
+ and all windows when showing logout dialog.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Use metacity
+ titlebar font settings.
+
+ * gnome/compiz-window-manager.c: Add titlebar font setting.
+
+ * plugins/Makefile.am:
+ * plugins/switcher.c: Add switcher plugin.
+
+ * plugins/gconf.c: Add alpha to color options.
+
+2006-02-10 David Reveman <davidr@novell.com>
+
+ * src/screen.c:
+ * src/display.c: Do not include X11/extensions/Xevie.h.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..fe1619a
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,12 @@
+compiz uses libstartup-notification which is available at
+ftp://ftp.gnome.org/pub/GNOME/sources/startup-notification/
+
+compiz uses automake, in order to generate the Makefiles for compiz use:
+
+ $ autogen.sh
+
+After that, standard build procedures apply:
+
+ $ make
+ # make install
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..95abd30
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,126 @@
+SUBDIRS = include src libdecoration plugins images gtk kde po metadata
+
+EXTRA_DIST = \
+ COPYING \
+ COPYING.GPL \
+ COPYING.LGPL \
+ COPYING.MIT \
+ compiz.pc.in \
+ compiz-cube.pc.in \
+ compiz-scale.pc.in \
+ compiz-gconf.pc.in \
+ intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in
+
+DISTCLEANFILES = \
+ intltool-extract \
+ intltool-merge \
+ intltool-update \
+ po/stamp-it \
+ po/.intltool-merge-cache
+
+if USE_GCONF
+gconfdata = compiz-gconf.pc
+endif
+
+if USE_KCONFIG
+kconfigdata = compiz-kconfig.pc
+endif
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = \
+ compiz.pc \
+ compiz-cube.pc \
+ compiz-scale.pc \
+ $(gconfdata) \
+ $(kconfigdata)
+
+# Some custom targets to make it easier to release things.
+# Use either:
+# make release-check
+# or make release-publish
+
+RELEASE_UPLOAD_HOST = releases.compiz.org
+RELEASE_UPLOAD_BASE = /home/releases/core
+RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)
+RELEASE_URL_BASE = http://releases.compiz.org/core
+RELEASE_ANNOUNCE_LIST = compiz@list.freedesktop.org
+
+tar_file = $(PACKAGE)-$(VERSION).tar.gz
+sha1_file = $(tar_file).sha1
+gpg_file = $(sha1_file).asc
+
+$(sha1_file): $(tar_file)
+ sha1sum $^ > $@
+
+$(gpg_file): $(sha1_file)
+ @echo "Please enter your GPG password to sign the checksum."
+ gpg --armor --sign $^
+
+release-verify-even-micro:
+ @echo -n "Checking that $(VERSION) has an even micro component..."
+ @test "$(COMPIZ_VERSION_MICRO)" = "`echo $(COMPIZ_VERSION_MICRO)/2*2 | bc`" \
+ || (echo "Ouch." && echo "The version micro component '$(COMPIZ_VERSION_MICRO)' is not an even number." \
+ && echo "The version in configure.in must be incremented before a new release." \
+ && false)
+ @echo "Good."
+
+release-verify-newer:
+ @echo -n "Checking that no $(VERSION) release already exists..."
+ @ssh $(RELEASE_UPLOAD_HOST) test ! -e $(RELEASE_UPLOAD_DIR)/$(tar_file) \
+ || (echo "Ouch." && echo "Found: $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)/$(tar_file)" \
+ && echo "Are you sure you have an updated checkout?" \
+ && echo "This should never happen." \
+ && false)
+ @echo "Good."
+
+release-remove-old:
+ $(RM) $(tar_file) $(sha1_file) $(gpg_file)
+
+release-check: release-verify-even-micro release-verify-newer release-remove-old dist
+
+release-upload: release-check $(tar_file) $(sha1_file) $(gpg_file)
+ mkdir -p releases
+ scp $(tar_file) $(sha1_file) $(gpg_file) $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)
+ mv $(tar_file) $(sha1_file) $(gpg_file) releases
+ git-tag -s -m "compiz $(COMPIZ_VERSION_MAJOR).$(COMPIZ_VERSION_MINOR).$(COMPIZ_VERSION_MICRO) release" compiz-$(COMPIZ_VERSION_MAJOR).$(COMPIZ_VERSION_MINOR).$(COMPIZ_VERSION_MICRO)
+
+release-publish-message: releases/$(sha1_file)
+ @echo "Please follow the instructions in RELEASING to push stuff out and"
+ @echo "send out the announcement mails. Here is the excerpt you need:"
+ @echo ""
+ @echo "Subject: [ANNOUNCE] $(PACKAGE)-$(VERSION)"
+ @echo ""
+ @echo "============================== CUT HERE =============================="
+ @echo "A new $(PACKAGE) release $(VERSION) is now available from:"
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(tar_file)"
+ @echo ""
+ @echo " which can be verified with:"
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(sha1_file)"
+ @echo -n " "
+ @cat releases/$(sha1_file)
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(gpg_file)"
+ @echo " (signed by `getent passwd "$$USER" | cut -d: -f 5 | cut -d, -f 1`)"
+ @echo ""
+ @echo " Additionally, a git clone of the source tree:"
+ @echo ""
+ @echo " git clone git://git.compiz.org/compiz/core"
+ @echo ""
+ @echo " will include a signed compiz-$(VERSION) tag which points to a commit named:"
+ @echo " `git cat-file tag compiz-$(VERSION) | grep ^object | sed -e 's,object ,,'`"
+ @echo ""
+ @echo " which can be verified with:"
+ @echo " git verify-tag compiz-$(VERSION)"
+ @echo ""
+ @echo " and can be checked out with a command such as:"
+ @echo " git checkout -b build compiz-$(VERSION)"
+ @echo ""
+ @echo "============================== CUT HERE =============================="
+
+release-publish: release-upload release-publish-message
+
+.PHONY: release-verify-even-micro release-verify-newer release-remove-old release-check release-upload release-publish docs-publish
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..056a5be
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,905 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/compiz-cube.pc.in \
+ $(srcdir)/compiz-gconf.pc.in $(srcdir)/compiz-kconfig.pc.in \
+ $(srcdir)/compiz-scale.pc.in $(srcdir)/compiz.pc.in \
+ $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \
+ ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \
+ install-sh ltmain.sh missing mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = compiz.pc compiz-cube.pc compiz-scale.pc \
+ compiz-gconf.pc compiz-kconfig.pc
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
+pkgconfigDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+SUBDIRS = include src libdecoration plugins images gtk kde po metadata
+EXTRA_DIST = \
+ COPYING \
+ COPYING.GPL \
+ COPYING.LGPL \
+ COPYING.MIT \
+ compiz.pc.in \
+ compiz-cube.pc.in \
+ compiz-scale.pc.in \
+ compiz-gconf.pc.in \
+ intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in
+
+DISTCLEANFILES = \
+ intltool-extract \
+ intltool-merge \
+ intltool-update \
+ po/stamp-it \
+ po/.intltool-merge-cache
+
+@USE_GCONF_TRUE@gconfdata = compiz-gconf.pc
+@USE_KCONFIG_TRUE@kconfigdata = compiz-kconfig.pc
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = \
+ compiz.pc \
+ compiz-cube.pc \
+ compiz-scale.pc \
+ $(gconfdata) \
+ $(kconfigdata)
+
+
+# Some custom targets to make it easier to release things.
+# Use either:
+# make release-check
+# or make release-publish
+RELEASE_UPLOAD_HOST = releases.compiz.org
+RELEASE_UPLOAD_BASE = /home/releases/core
+RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)
+RELEASE_URL_BASE = http://releases.compiz.org/core
+RELEASE_ANNOUNCE_LIST = compiz@list.freedesktop.org
+tar_file = $(PACKAGE)-$(VERSION).tar.gz
+sha1_file = $(tar_file).sha1
+gpg_file = $(sha1_file).asc
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_srcdir) && $(AUTOHEADER)
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+compiz.pc: $(top_builddir)/config.status $(srcdir)/compiz.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+compiz-cube.pc: $(top_builddir)/config.status $(srcdir)/compiz-cube.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+compiz-scale.pc: $(top_builddir)/config.status $(srcdir)/compiz-scale.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+compiz-gconf.pc: $(top_builddir)/config.status $(srcdir)/compiz-gconf.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+compiz-kconfig.pc: $(top_builddir)/config.status $(srcdir)/compiz-kconfig.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d $(distdir) || mkdir $(distdir)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pkgconfigDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am am--refresh check check-am clean clean-generic \
+ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
+ dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \
+ distclean distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-pkgconfigDATA
+
+
+$(sha1_file): $(tar_file)
+ sha1sum $^ > $@
+
+$(gpg_file): $(sha1_file)
+ @echo "Please enter your GPG password to sign the checksum."
+ gpg --armor --sign $^
+
+release-verify-even-micro:
+ @echo -n "Checking that $(VERSION) has an even micro component..."
+ @test "$(COMPIZ_VERSION_MICRO)" = "`echo $(COMPIZ_VERSION_MICRO)/2*2 | bc`" \
+ || (echo "Ouch." && echo "The version micro component '$(COMPIZ_VERSION_MICRO)' is not an even number." \
+ && echo "The version in configure.in must be incremented before a new release." \
+ && false)
+ @echo "Good."
+
+release-verify-newer:
+ @echo -n "Checking that no $(VERSION) release already exists..."
+ @ssh $(RELEASE_UPLOAD_HOST) test ! -e $(RELEASE_UPLOAD_DIR)/$(tar_file) \
+ || (echo "Ouch." && echo "Found: $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)/$(tar_file)" \
+ && echo "Are you sure you have an updated checkout?" \
+ && echo "This should never happen." \
+ && false)
+ @echo "Good."
+
+release-remove-old:
+ $(RM) $(tar_file) $(sha1_file) $(gpg_file)
+
+release-check: release-verify-even-micro release-verify-newer release-remove-old dist
+
+release-upload: release-check $(tar_file) $(sha1_file) $(gpg_file)
+ mkdir -p releases
+ scp $(tar_file) $(sha1_file) $(gpg_file) $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)
+ mv $(tar_file) $(sha1_file) $(gpg_file) releases
+ git-tag -s -m "compiz $(COMPIZ_VERSION_MAJOR).$(COMPIZ_VERSION_MINOR).$(COMPIZ_VERSION_MICRO) release" compiz-$(COMPIZ_VERSION_MAJOR).$(COMPIZ_VERSION_MINOR).$(COMPIZ_VERSION_MICRO)
+
+release-publish-message: releases/$(sha1_file)
+ @echo "Please follow the instructions in RELEASING to push stuff out and"
+ @echo "send out the announcement mails. Here is the excerpt you need:"
+ @echo ""
+ @echo "Subject: [ANNOUNCE] $(PACKAGE)-$(VERSION)"
+ @echo ""
+ @echo "============================== CUT HERE =============================="
+ @echo "A new $(PACKAGE) release $(VERSION) is now available from:"
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(tar_file)"
+ @echo ""
+ @echo " which can be verified with:"
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(sha1_file)"
+ @echo -n " "
+ @cat releases/$(sha1_file)
+ @echo ""
+ @echo " $(RELEASE_URL_BASE)/$(gpg_file)"
+ @echo " (signed by `getent passwd "$$USER" | cut -d: -f 5 | cut -d, -f 1`)"
+ @echo ""
+ @echo " Additionally, a git clone of the source tree:"
+ @echo ""
+ @echo " git clone git://git.compiz.org/compiz/core"
+ @echo ""
+ @echo " will include a signed compiz-$(VERSION) tag which points to a commit named:"
+ @echo " `git cat-file tag compiz-$(VERSION) | grep ^object | sed -e 's,object ,,'`"
+ @echo ""
+ @echo " which can be verified with:"
+ @echo " git verify-tag compiz-$(VERSION)"
+ @echo ""
+ @echo " and can be checked out with a command such as:"
+ @echo " git checkout -b build compiz-$(VERSION)"
+ @echo ""
+ @echo "============================== CUT HERE =============================="
+
+release-publish: release-upload release-publish-message
+
+.PHONY: release-verify-even-micro release-verify-newer release-remove-old release-check release-upload release-publish docs-publish
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..1c53d55
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,365 @@
+Release 0.8.2 (2009-03-01 Danny Baumann <dannybaumann@web.de>)
+==============================================================
+Maintenance release.
+
+Fixed issue in strut handling that could lead to struts being ignored
+for certain monitor configurations.
+
+Fixed window position constraining logic.
+
+Fixed kconfig xslt files missing from 0.8.0 tarball.
+
+Release 0.8.0 (2009-02-20 Danny Baumann <dannybaumann@web.de>)
+==============================================================
+Fourth stable release of compiz.
+
+New plugin "commands" that handles the bindings for arbitrary commands that
+previously were handled in core. In addition to the previously present key
+bindings button and edge bindings were added as well.
+
+New plugin "gnomecompat" which handles bindings that are exclusively used
+in the Gnome desktop environment and removed the corresponding bindings
+from core. This change fixes main menu and run dialog bindings for KDE users
+as those previously were conflicting between compiz and KDE. Gnome users
+upgrading should make sure to enable this plugin.
+
+Added support for _NET_WM_FULLSCREEN_MONITORS EWMH hint.
+
+Added support for reading the icon hint from the WM_HINTS property if
+_NET_WM_ICON is not available.
+
+Update Gnome support for Gnome 2.24.
+
+Added options to scale plugin that allow "toggle type" behaviour for
+key and button bindings.
+
+Several memory leak fixes.
+
+Adjusted gtk-window-decorator for newer libmetacity-private versions.
+
+Fixed gtk-window-decorator display for RTL languages.
+
+Adjusted kde4-window-decorator for KDE 4.2 API.
+
+Large number of minor bug fixes, especially in resize handling and
+stacking code.
+
+Translation updates
+
+Release 0.7.8 (2008-09-17 Danny Baumann <dannybaumann@web.de>)
+==============================================================
+Development release.
+
+New plugin "obs" that handles opacity, brightness and saturation bindings
+and matches.
+
+Put unresponsive window greyout, including options to configure it, to
+fade plugin.
+
+Add "constant fade time" fade mode to fade plugin.
+
+Removed opacity bindings and matches from core. Users that entered opacity
+matches should enable the obs plugin and enter the matches there.
+
+Enhanced timer infrastructure to allow synchronization of execution of
+multiple timer callbacks.
+
+Added matching for window's alpha channel (match type rgba=[0|1]).
+
+Reflect new Metacity "spacer" button type in gtk-window-decorator.
+
+Various bugfixes.
+
+Translation updates.
+
+Release 0.7.6 (2008-05-29 Dennis Kasprzyk <onestone@opencompositing.org>)
+=========================================================================
+Development release.
+
+Rewrite of place plugin, which significantly improves multi-output
+behaviour.
+
+Configurable multi-output behaviour in place.
+
+Removed plane plugin. Former plane plugin users are encouraged to use
+the wall plugin of Compiz Fusion.
+
+Removed cube wallpaper painting. Users are encouraged to use the Compiz
+Fusion wallpaper plugin instead.
+
+Place plugin viewport placement viewport numbers are now 1-based.
+
+Panel and desktop selection mode in switcher plugin.
+
+Improved painting behaviour when using overlapping outputs.
+
+Gtk-window-decorator now emits accessibility events when switching.
+
+Gtk-window-decorator behaviour when using Metacity themes has been
+improved to match Metacity better.
+
+KDE4-window-decorator has been adapted to current KDE4 API.
+
+Various bugfixes.
+
+Release 0.7.4 (2008-03-04 Dennis Kasprzyk <onestone@opencompositing.org>)
+=========================================================================
+Development release.
+
+Configurable handling of overlapping output devices.
+
+Enhanced focus stealing prevention with configurable amount of focus
+stealing prevention.
+
+Added configurable, optional delay for edge actions to prevent
+accidential invocation.
+
+Generalized vertex system to improve plugin compatibility.
+
+Optimized gaussian blur shaders to support more hardware.
+
+Improved unredirection of fullscreen windows.
+
+Several bugfixes.
+
+Translation updates.
+
+Release 0.7.2 (2008-03-06 Dennis Kasprzyk <onestone@opencompositing.org>)
+=========================================================================
+Development release.
+
+Several bugfixes
+
+Translation support in gtk-window-decorator.
+
+Updated translations.
+
+Added wrapable session functions to core. This allows to provide a full session save/restore in a plugin.
+
+Release 0.7.0 (2008-02-07 Dennis Kasprzyk <onestone@opencompositing.org>)
+=========================================================================
+Development release.
+
+A core plugin has been added that allows handling certain core APIs, such as
+querying the ABI version, similarly to plugin APIs, allowing sharing more
+code.
+
+Added a simple object system, which generalize the privates mechanism and the plugin system. It allows to share more code between display, screen and window objects. It also makes it possible to properly introduce new object types without changing the plugin interface or breaking the API.
+
+Multi-display support.
+
+Various fixes in ICCCM compliance, window stacking and focus handling.
+
+Validity checking of ConfigureRequest events.
+
+Fixes to transient children placement in place plugin.
+
+Hooks have been added to the cube plugin which allow better control of
+viewport drawing.
+
+Middle and right click actions have been made configurable in
+gtk-window-decorator.
+
+Gtk-window-decorator now optionally allows mouse wheel title bar actions, such
+as shading.
+
+A KDE4 port of the kde-window-decorator has been added.
+
+Frequent crashes of kde-window-decorator for some people have been fixed.
+
+
+Release 0.5.4 (2007-08-20 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+XCB is now required.
+
+Major improvements to option system that makes
+configuration backend integration much less complex.
+
+Kconfig plugin that provides proper KDE configuration
+support.
+
+Kcfg files are generated from the meta-data and they can
+be used to generate C++ source code that will provide an
+API for applications to access all compiz configuration
+data used by the kconfig plugin.
+
+
+Release 0.5.2 (2007-08-03 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+Better support for multiple X-screens.
+
+XML-based meta-data system for handling of various kinds
+for meta-data like plugin descriptions, default option
+values, etc.
+
+Major improvements to option initialization based on the
+new meta-data system.
+
+Logging framework.
+
+Support for configurable button layout in metacity themes
+has been added to gtk-window-decorator.
+
+Glib plugin that allows plugins that use the glib main
+loop to integrate properly with the compiz main loop
+without waking up periodically to check for pending
+events.
+
+Plugin plugins that make it possible to adjust and extend
+the behavior of existing plugins through new plugins.
+
+More dynamic handling of output devices, which allows the
+output device configuration used when rendering to be
+changed between frames.
+
+Transparency support in cube plugin.
+
+Introspection support in dbus plugin.
+
+
+Release 0.5.0 (2007-04-02 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+Remove stencil buffer requirement.
+
+Focus stealing prevention support.
+
+Blur plugin that provide support for blurring windows and
+contents behind translucent windows.
+
+Fragment attribute interface that allow plugins
+to perform more advanced fragment shading effects and
+integrate properly with other plugins.
+
+Extensible window matching interface and new option type
+that provide advanced window selection functionality.
+
+Plugin that provide a composited video interface for
+efficient video playback.
+
+FUSE plugin that maps compiz options to a file-system and
+allow efficient manipulation of options by reading and
+writing files.
+
+Better occlusion detection and more efficient rendering.
+
+Flat file configuration backend.
+
+
+Release 0.3.6 (2006-12-31 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+Add support for unredirect of fullscreen windows when using
+the composite overlay window and make usage of the
+composite overlay window for output default.
+
+Add file notification API.
+
+Add inotify plugin that implements file notification API.
+
+A "GetPlugins" method has been added to dbus plugin
+and it can be used to retrieve a list of available plugins.
+
+A 'GetPluginMetadata' method has been added to dbus plugin
+and it returns metadata for available plugins.
+
+Add support for switching between windows without having
+the thumbnail window show up.
+
+Switcher thumbnails now include decorations and shadows.
+
+Basic drag and drop support has been added to scale plugin.
+
+It's now possible to initiate scale plugin for specific window
+groups.
+
+Window menu icon support has been added to gtk window decorator.
+
+Improved support for metacity themes.
+
+Add KDE window decorator with support for shadows and opacity
+has been added.
+
+
+Release 0.3.4 (2006-11-21 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+Edge button, which can be used to require a button press
+for edge actions to be triggered.
+
+Basic compiz event support.
+
+Zoom plugin now works without "largedesktop" feature.
+
+Cube plugin now handles desktop width less than 4 times
+the screen better.
+
+Support for multiple desktops (workspaces).
+
+Handling of _NET_DESKTOP_GEOMETRY client messages has
+been fixed.
+
+Much better multi-head support.
+
+Annotate plugin has been added.
+
+Clone plugin which can be used to clone outputs in a
+convenient way has been added. Currently more of a
+prototype as we need randr++ and input transformation
+in the server to do this properly.
+
+Shadow color option has been added.
+
+initiate_all option has been added to scale plugin.
+
+Zoom factor option has been added to zoom plugin.
+
+Support for new metacity theme version and support for
+metacity versions < 2.15.21.
+
+Event window placement when using some metacity
+themes has been fixed.
+
+Fix a number of issues related to minimizing windows
+with transients.
+
+
+Release 0.3.2 (2006-10-20 David Reveman <davidr@novell.com>)
+============================================================
+Development release.
+
+snap_inverted option has been added to wobbly plugin.
+
+Configuration support has been added to dbus plugin.
+
+Add 'command' option has been added to decoration plugin,
+which can be used to automatically launch a decorator
+when one isn't already running.
+
+Opacity support for metacity themes.
+
+A raise_window option has been added.
+
+Decorations on maximized windows are now rendered
+correctly when using metacity themes.
+
+An ignore_hints_when_maximized option, which makes compiz
+ignore size increment and aspect hints for maximized
+windows has been added and made default.
+
+Better default option values for rotate plugin.
+
+and much more...
+
+
+Release 0.2.0 (2006-10-02 David Reveman <davidr@novell.com>)
+============================================================
+First official release of compiz.
+
diff --git a/README b/README
new file mode 100644
index 0000000..d57217e
--- /dev/null
+++ b/README
@@ -0,0 +1,8 @@
+compiz - OpenGL window and compositing manager
+
+Compiz is an OpenGL compositing manager that use GLX_EXT_texture_from_pixmap
+for binding redirected top-level windows to texture objects. It has a flexible
+plug-in system and it is designed to run well on most graphics hardware.
+
+David Reveman
+davidr@novell.com
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..ac6bbc9
--- /dev/null
+++ b/TODO
@@ -0,0 +1,22 @@
+
+General:
+
+* Session management
+
+* Various window management improvements
+
+* Window shade mode
+
+* Support for multiple desktops
+
+* Multi-screen support
+
+
+KDE:
+
+* Remove glib dependency from place plugin
+
+* QT/KDE configuration plugin similar to the gconf plugin
+
+* QT/KDE decoration program
+
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..653ed77
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,8379 @@
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(AC_AUTOCONF_VERSION, [2.63],,
+[m4_warning([this file was generated for autoconf 2.63.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+dnl AM_GCONF_SOURCE_2
+dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
+dnl (i.e. pass to gconftool-2
+dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
+dnl you should install foo.schemas files
+dnl
+
+AC_DEFUN([AM_GCONF_SOURCE_2],
+[
+ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+ else
+ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+ AC_ARG_WITH([gconf-source],
+ AC_HELP_STRING([--with-gconf-source=sourceaddress],
+ [Config database for installing schema files.]),
+ [GCONF_SCHEMA_CONFIG_SOURCE="$withval"],)
+
+ AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
+ AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
+
+ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+ fi
+
+ AC_ARG_WITH([gconf-schema-file-dir],
+ AC_HELP_STRING([--with-gconf-schema-file-dir=dir],
+ [Directory for installing schema files.]),
+ [GCONF_SCHEMA_FILE_DIR="$withval"],)
+
+ AC_SUBST(GCONF_SCHEMA_FILE_DIR)
+ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
+
+ AC_ARG_ENABLE(schemas-install,
+ [ --disable-schemas-install Disable the schemas installation],
+ [case ${enableval} in
+ yes|no) ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-schemas-install) ;;
+ esac])
+ AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no])
+])
+
+# Copyright (C) 1995-2002 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003,2004 Red Hat, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License. As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+#
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
+#
+# Modified to never use included libintl.
+# Owen Taylor <otaylor@redhat.com>, 12/15/1998
+#
+# Major rework to remove unused code
+# Owen Taylor <otaylor@redhat.com>, 12/11/2002
+#
+# Added better handling of ALL_LINGUAS from GNU gettext version
+# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
+#
+# Modified to require ngettext
+# Matthias Clasen <mclasen@redhat.com> 08/06/2004
+#
+# We need this here as well, since someone might use autoconf-2.5x
+# to configure GLib then an older version to configure a package
+# using AM_GLIB_GNU_GETTEXT
+AC_PREREQ(2.53)
+
+dnl
+dnl We go to great lengths to make sure that aclocal won't
+dnl try to pull in the installed version of these macros
+dnl when running aclocal in the glib directory.
+dnl
+m4_copy([AC_DEFUN],[glib_DEFUN])
+m4_copy([AC_REQUIRE],[glib_REQUIRE])
+dnl
+dnl At the end, if we're not within glib, we'll define the public
+dnl definitions in terms of our private definitions.
+dnl
+
+# GLIB_LC_MESSAGES
+#--------------------
+glib_DEFUN([GLIB_LC_MESSAGES],
+ [AC_CHECK_HEADERS([locale.h])
+ if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+ fi])
+
+# GLIB_PATH_PROG_WITH_TEST
+#----------------------------
+dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# GLIB_WITH_NLS
+#-----------------
+glib_DEFUN([GLIB_WITH_NLS],
+ dnl NLS is obligatory
+ [USE_NLS=yes
+ AC_SUBST(USE_NLS)
+
+ gt_cv_have_gettext=no
+
+ CATOBJEXT=NONE
+ XGETTEXT=:
+ INTLLIBS=
+
+ AC_CHECK_HEADER(libintl.h,
+ [gt_cv_func_dgettext_libintl="no"
+ libintl_extra_libs=""
+
+ #
+ # First check in libc
+ #
+ AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
+ [AC_TRY_LINK([
+#include <libintl.h>
+],
+ [return !ngettext ("","", 1)],
+ gt_cv_func_ngettext_libc=yes,
+ gt_cv_func_ngettext_libc=no)
+ ])
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+ [AC_TRY_LINK([
+#include <libintl.h>
+],
+ [return !dgettext ("","")],
+ gt_cv_func_dgettext_libc=yes,
+ gt_cv_func_dgettext_libc=no)
+ ])
+ fi
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ AC_CHECK_FUNCS(bind_textdomain_codeset)
+ fi
+
+ #
+ # If we don't have everything we want, check in libintl
+ #
+ if test "$gt_cv_func_dgettext_libc" != "yes" \
+ || test "$gt_cv_func_ngettext_libc" != "yes" \
+ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+
+ AC_CHECK_LIB(intl, bindtextdomain,
+ [AC_CHECK_LIB(intl, ngettext,
+ [AC_CHECK_LIB(intl, dgettext,
+ gt_cv_func_dgettext_libintl=yes)])])
+
+ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+ AC_MSG_CHECKING([if -liconv is needed to use gettext])
+ AC_MSG_RESULT([])
+ AC_CHECK_LIB(intl, ngettext,
+ [AC_CHECK_LIB(intl, dcgettext,
+ [gt_cv_func_dgettext_libintl=yes
+ libintl_extra_libs=-liconv],
+ :,-liconv)],
+ :,-liconv)
+ fi
+
+ #
+ # If we found libintl, then check in it for bind_textdomain_codeset();
+ # we'll prefer libc if neither have bind_textdomain_codeset(),
+ # and both have dgettext and ngettext
+ #
+ if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $libintl_extra_libs"
+ unset ac_cv_func_bind_textdomain_codeset
+ AC_CHECK_FUNCS(bind_textdomain_codeset)
+ LIBS="$glib_save_LIBS"
+
+ if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+ gt_cv_func_dgettext_libc=no
+ else
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ && test "$gt_cv_func_ngettext_libc" = "yes"; then
+ gt_cv_func_dgettext_libintl=no
+ fi
+ fi
+ fi
+ fi
+
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ gt_cv_have_gettext=yes
+ fi
+
+ if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ INTLLIBS="-lintl $libintl_extra_libs"
+ fi
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+ AC_DEFINE(HAVE_GETTEXT,1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+ if test "$MSGFMT" != "no"; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+ AC_CHECK_FUNCS(dcgettext)
+ MSGFMT_OPTS=
+ AC_MSG_CHECKING([if msgfmt accepts -c])
+ GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <foo@bar.xx>\n"
+"Language-Team: C <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
+ AC_SUBST(MSGFMT_OPTS)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr],
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share and
+ dnl and CATOBJEXT=.gmo in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [CATOBJEXT=.mo
+ DATADIRNAME=lib])
+ ;;
+ *)
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
+ ;;
+ esac])
+ LIBS="$glib_save_LIBS"
+ INSTOBJEXT=.mo
+ else
+ gt_cv_have_gettext=no
+ fi
+ fi
+ ])
+
+ if test "$gt_cv_have_gettext" = "yes" ; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [always defined to indicate that i18n is enabled])
+ fi
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is not GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+
+ AC_OUTPUT_COMMANDS(
+ [case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac])
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.in.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(DATADIRNAME)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INSTOBJEXT)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(PO_IN_DATADIR_TRUE)
+ AC_SUBST(PO_IN_DATADIR_FALSE)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+ ])
+
+# AM_GLIB_GNU_GETTEXT
+# -------------------
+# Do checks necessary for use of gettext. If a suitable implementation
+# of gettext is found in either in libintl or in the C library,
+# it will set INTLLIBS to the libraries needed for use of gettext
+# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
+# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
+# on various variables needed by the Makefile.in.in installed by
+# glib-gettextize.
+dnl
+glib_DEFUN([GLIB_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+
+ GLIB_LC_MESSAGES
+ GLIB_WITH_NLS
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl Generate list of files to be processed by xgettext which will
+ dnl be included in po/Makefile.
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+ ])
+
+# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
+# -------------------------------
+# Define VARIABLE to the location where catalog files will
+# be installed by po/Makefile.
+glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
+[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
+glib_save_prefix="$prefix"
+glib_save_exec_prefix="$exec_prefix"
+glib_save_datarootdir="$datarootdir"
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+datarootdir=`eval echo "${datarootdir}"`
+if test "x$CATOBJEXT" = "x.mo" ; then
+ localedir=`eval echo "${libdir}/locale"`
+else
+ localedir=`eval echo "${datadir}/locale"`
+fi
+prefix="$glib_save_prefix"
+exec_prefix="$glib_save_exec_prefix"
+datarootdir="$glib_save_datarootdir"
+AC_DEFINE_UNQUOTED($1, "$localedir",
+ [Define the location where the catalogs will be installed])
+])
+
+dnl
+dnl Now the definitions that aclocal will find
+dnl
+ifdef(glib_configure_in,[],[
+AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
+AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
+])dnl
+
+# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
+#
+# Create a temporary file with TEST-FILE as its contents and pass the
+# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with
+# 0 and perform ACTION-IF-FAIL for any other exit status.
+AC_DEFUN([GLIB_RUN_PROG],
+[cat >conftest.foo <<_ACEOF
+$2
+_ACEOF
+if AC_RUN_LOG([$1 conftest.foo]); then
+ m4_ifval([$3], [$3], [:])
+m4_ifvaln([$4], [else $4])dnl
+echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
+sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
+fi])
+
+
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 40 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL], [
+AC_PREREQ([2.50])dnl
+AC_REQUIRE([AM_NLS])dnl
+
+case "$am__api_version" in
+ 1.[01234])
+ AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+ ;;
+ *)
+ ;;
+esac
+
+if test -n "$1"; then
+ AC_MSG_CHECKING([for intltool >= $1])
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+ [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ ]
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
+fi
+
+AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
+AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
+AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+ AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+AC_SUBST(INTLTOOL_DESKTOP_RULE)
+AC_SUBST(INTLTOOL_DIRECTORY_RULE)
+AC_SUBST(INTLTOOL_KEYS_RULE)
+AC_SUBST(INTLTOOL_PROP_RULE)
+AC_SUBST(INTLTOOL_OAF_RULE)
+AC_SUBST(INTLTOOL_PONG_RULE)
+AC_SUBST(INTLTOOL_SERVER_RULE)
+AC_SUBST(INTLTOOL_SHEET_RULE)
+AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
+AC_SUBST(INTLTOOL_UI_RULE)
+AC_SUBST(INTLTOOL_XAM_RULE)
+AC_SUBST(INTLTOOL_KBD_RULE)
+AC_SUBST(INTLTOOL_XML_RULE)
+AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+AC_SUBST(INTLTOOL_CAVES_RULE)
+AC_SUBST(INTLTOOL_SCHEMAS_RULE)
+AC_SUBST(INTLTOOL_THEME_RULE)
+AC_SUBST(INTLTOOL_SERVICE_RULE)
+AC_SUBST(INTLTOOL_POLICY_RULE)
+
+# Check the gettext tools to make sure they are GNU
+AC_PATH_PROG(XGETTEXT, xgettext)
+AC_PATH_PROG(MSGMERGE, msgmerge)
+AC_PATH_PROG(MSGFMT, msgfmt)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+
+AC_PATH_PROG(INTLTOOL_PERL, [perl])
+if test -z "$INTLTOOL_PERL"; then
+ AC_MSG_ERROR([perl not found; required for intltool])
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+ AC_MSG_ERROR([perl 5.x required for intltool])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr]])],
+ [DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share
+ dnl in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [DATADIRNAME=share], [DATADIRNAME=lib])
+ ;;
+ *)
+ [DATADIRNAME=lib]
+ ;;
+ esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be exetuted at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+ AC_CONFIG_COMMANDS([$1/stamp-it], [
+ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" ]; then
+ AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
+ fi
+ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+ >"$1/stamp-it.tmp"
+ [sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+ ]
+ [sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r $1/POTFILES
+ }
+ ' "$1/Makefile.in" >"$1/Makefile"]
+ rm -f "$1/Makefile.tmp"
+ mv "$1/stamp-it.tmp" "$1/stamp-it"
+ ])
+])dnl
+])
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
+
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 52 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [m4_define([AC_PROVIDE_IFELSE],
+ [m4_ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_LIBTOOL_CXX],
+ [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+ ])])
+dnl And a similar setup for Fortran 77 support
+ AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [AC_LIBTOOL_F77],
+ [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [ifdef([AC_PROG_GCJ],
+ [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([A][M_PROG_GCJ],
+ [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([LT_AC_PROG_GCJ],
+ [define([LT_AC_PROG_GCJ],
+ defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ AC_PATH_MAGIC
+ fi
+ ;;
+esac
+
+_LT_REQUIRED_DARWIN_CHECKS
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+ [AC_HELP_STRING([--with-pic],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [pic_mode="$withval"],
+ [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# --------------------------
+# Check for some things on darwin
+AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ echo "int foo(void){return 1;}" > conftest.c
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib ${wl}-single_module conftest.c
+ if test -f libconftest.dylib; then
+ lt_cv_apple_cc_single_mod=yes
+ rm -rf libconftest.dylib*
+ fi
+ rm conftest.c
+ fi])
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS="$save_LDFLAGS"
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[0123]])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*)
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil="~$DSYMUTIL \$lib || :"
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X[$]1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+[$]*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+ echo_test_string=`eval $cmd` &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "[$]0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ libsuff=64
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+ ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+ ifelse([$5], , :, [$5])
+else
+ ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $rm -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+ ifelse([$4], , :, [$4])
+else
+ ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+ = "XX$teststring") >/dev/null 2>&1 &&
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# ------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ---------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ exit (status);
+}]
+EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_dlunknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# ----------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w . 2>&AS_MESSAGE_LOG_FD
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+ test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_AC_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+m4_if($1,[],[
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`echo $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[[4-9]]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[[45]]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+ m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[[123]]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[[3-9]]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ shlibpath_overrides_runpath=no
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
+[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
+[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_ARG_WITH([tags],
+ [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+ [include additional configurations @<:@automatic@:>@])],
+ [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ AC_MSG_WARN([output file `$ofile' does not exist])
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+ else
+ AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+ fi
+ fi
+ if test -z "$LTCFLAGS"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+ "") ;;
+ *) AC_MSG_ERROR([invalid tag name: $tagname])
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ AC_MSG_ERROR([tag name \"$tagname\" already exists])
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_LIBTOOL_LANG_CXX_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+ AC_LIBTOOL_LANG_F77_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+ AC_LIBTOOL_LANG_GCJ_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+ AC_LIBTOOL_LANG_RC_CONFIG
+ ;;
+
+ *)
+ AC_MSG_ERROR([Unsupported tag name: $tagname])
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
+ else
+ rm -f "${ofile}T"
+ AC_MSG_ERROR([unable to update list of available tagged configurations.])
+ fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 DLLs
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+ [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+# set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+ [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+ [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognize shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="ifelse([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognize a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+ [AC_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[[3-9]]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments. Note that
+# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
+# it is assumed to be `libltdl'. LIBLTDL will be prefixed with
+# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
+# (note the single quotes!). If your package is not flat and you're not
+# using automake, define top_builddir and top_srcdir appropriately in
+# the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case $enable_ltdl_convenience in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments. Note that
+# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
+# and an installed libltdl is not found, it is assumed to be `libltdl'.
+# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and top_srcdir
+# appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, lt_dlinit,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ LTDLINCL=
+ fi
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ------------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+ [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+ [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+ [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# -------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF
+
+# Report which library types will actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix[[4-9]]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+ AC_PROG_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix[[4-9]]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+ if test "$GXX" = yes ; then
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ freebsd[[12]]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ freebsd-elf*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*) ;;
+ *)
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ interix[[3-9]]*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc*)
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+ $rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ # So that behaviour is only enabled if SCOABSPATH is set to a
+ # non-empty value in the environment. Most likely only useful for
+ # creating official distributions of packages.
+ # This is a hack until libtool officially supports absolute path
+ # names for shared libraries.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+ _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+ _LT_AC_TAGVAR(predep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+ _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+# PORTME: override above test on systems where it is broken
+ifelse([$1],[CXX],
+[case $host_os in
+interix[[3-9]]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ _LT_AC_TAGVAR(predep_objects,$1)=
+ _LT_AC_TAGVAR(postdep_objects,$1)=
+ _LT_AC_TAGVAR(postdeps,$1)=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ #
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+])
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="\
+ program t
+ end
+"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix[[4-9]]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# -------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars. Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ _LT_AC_TAGVAR(compiler, $1) \
+ _LT_AC_TAGVAR(CC, $1) \
+ _LT_AC_TAGVAR(LD, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+ _LT_AC_TAGVAR(old_archive_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+ _LT_AC_TAGVAR(predep_objects, $1) \
+ _LT_AC_TAGVAR(postdep_objects, $1) \
+ _LT_AC_TAGVAR(predeps, $1) \
+ _LT_AC_TAGVAR(postdeps, $1) \
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+ _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \
+ _LT_AC_TAGVAR(archive_cmds, $1) \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(postinstall_cmds, $1) \
+ _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+ _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+ _LT_AC_TAGVAR(no_undefined_flag, $1) \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+ _LT_AC_TAGVAR(hardcode_automatic, $1) \
+ _LT_AC_TAGVAR(module_cmds, $1) \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+ _LT_AC_TAGVAR(fix_srcfile_path, $1) \
+ _LT_AC_TAGVAR(exclude_expsyms, $1) \
+ _LT_AC_TAGVAR(include_expsyms, $1); do
+
+ case $var in
+ _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(module_cmds, $1) | \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\[$]0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+ ;;
+ esac
+
+ifelse([$1], [],
+ [cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ AC_MSG_NOTICE([creating $ofile])],
+ [cfgfile="$ofile"])
+
+ cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+])
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([LT_AC_PROG_SED])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+linux* | k*bsd*-gnu)
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDGIRSTW]]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris*)
+ symcode='[[BDRT]]'
+ ;;
+sco3.2v5*)
+ symcode='[[DT]]'
+ ;;
+sysv4.2uw2*)
+ symcode='[[DT]]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[[ABDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[[4-9]]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ icpc* | ecpc*)
+ # Intel C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler.
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ icc* | ecc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ ccc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ rdos*)
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ unicos*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1),
+ [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+ $lt_tmp_static_flag,
+ [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+],[
+ runpath_var=
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)=
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+ _LT_AC_TAGVAR(module_cmds, $1)=
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_AC_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ _LT_CC_BASENAME([$compiler])
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[[3-9]]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ interix[[3-9]]*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+ runpath_var=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ # see comment about different semantics on the GNU ld section
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ bsdi[[45]]*)
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case $host_os in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ freebsd1*)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ else
+ case $host_os in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ os2*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $_LT_AC_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+ $rm conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+ then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+ ;;
+ esac
+ fi
+ ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+
+# Cheap backport of AS_EXECUTABLE_P and required macros
+# from Autoconf 2.59; we should not use $as_executable_p directly.
+
+# _AS_TEST_PREPARE
+# ----------------
+m4_ifndef([_AS_TEST_PREPARE],
+[m4_defun([_AS_TEST_PREPARE],
+[if test -x / >/dev/null 2>&1; then
+ as_executable_p='test -x'
+else
+ as_executable_p='test -f'
+fi
+])])# _AS_TEST_PREPARE
+
+# AS_EXECUTABLE_P
+# ---------------
+# Check whether a file is executable.
+m4_ifndef([AS_EXECUTABLE_P],
+[m4_defun([AS_EXECUTABLE_P],
+[AS_REQUIRE([_AS_TEST_PREPARE])dnl
+$as_executable_p $1[]dnl
+])])# AS_EXECUTABLE_P
+
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])
+
+# nls.m4 serial 3 (gettext-0.15)
+dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+])
+
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [AC_MSG_RESULT([no])
+ $4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.10'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.10.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.10.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 13
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.60])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
diff --git a/compiz-cube.pc.in b/compiz-cube.pc.in
new file mode 100644
index 0000000..77bd682
--- /dev/null
+++ b/compiz-cube.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: compiz-cube
+Description: Cube plugin for compiz
+Version: @VERSION@
+
+Requires: compiz
+Libs:
+Cflags: @COMPIZ_CFLAGS@ @GL_CFLAGS@ -I${includedir}/compiz
+
diff --git a/compiz-gconf.pc.in b/compiz-gconf.pc.in
new file mode 100644
index 0000000..d65e19b
--- /dev/null
+++ b/compiz-gconf.pc.in
@@ -0,0 +1,6 @@
+prefix=@prefix@
+xsltdir=@datarootdir@/compiz
+
+Name: compiz-gconf
+Description: GConf plugin for compiz
+Version: @VERSION@
diff --git a/compiz-kconfig.pc.in b/compiz-kconfig.pc.in
new file mode 100644
index 0000000..d300413
--- /dev/null
+++ b/compiz-kconfig.pc.in
@@ -0,0 +1,7 @@
+prefix=@prefix@
+xsltdir=@datarootdir@/compiz
+kcfgdir=@kcfgdir@
+
+Name: compiz-kconfig
+Description: Kconfig plugin for compiz
+Version: @VERSION@
diff --git a/compiz-scale.pc.in b/compiz-scale.pc.in
new file mode 100644
index 0000000..50b8d42
--- /dev/null
+++ b/compiz-scale.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: compiz-scale
+Description: Scale plugin for compiz
+Version: @VERSION@
+
+Requires: compiz
+Libs:
+Cflags: @COMPIZ_CFLAGS@ @GL_CFLAGS@ -I${includedir}/compiz \ No newline at end of file
diff --git a/compiz.pc.in b/compiz.pc.in
new file mode 100644
index 0000000..1355fa3
--- /dev/null
+++ b/compiz.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: compiz
+Description: OpenGL compositing manager
+Version: @VERSION@
+
+Requires: @COMPIZ_REQUIRES@
+Libs:
+Cflags: @COMPIZ_CFLAGS@ @GL_CFLAGS@ -I${includedir}/compiz
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..f32079a
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1526 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+
+timestamp='2008-01-23'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[456])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ case ${UNAME_MACHINE} in
+ pc98)
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:[3456]*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T | authenticamd)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^CPU/{
+ s: ::g
+ p
+ }'`"
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ /^LIBC/{
+ s: ::g
+ p
+ }'`"
+ test x"${LIBC}" != x && {
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit
+ }
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..ff42c42
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,169 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Decorator interface version */
+#undef DECOR_INTERFACE_VERSION
+
+/* always defined to indicate that i18n is enabled */
+#undef ENABLE_NLS
+
+/* Gettext package. */
+#undef GETTEXT_PACKAGE
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
+#undef HAVE_BIND_TEXTDOMAIN_CODESET
+
+/* Define to 1 if you have the `dcgettext' function. */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if libwnck version >= 2_18_1 */
+#undef HAVE_LIBWNCK_2_18_1
+
+/* Define to 1 if libwnck version >= 2_19_4 */
+#undef HAVE_LIBWNCK_2_19_4
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if metacity version >= 2.15.21 */
+#undef HAVE_METACITY_2_15_21
+
+/* Define to 1 if metacity version >= 2.17.0 */
+#undef HAVE_METACITY_2_17_0
+
+/* Define to 1 if metacity version >= 2.23.2 */
+#undef HAVE_METACITY_2_23_2
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/inotify.h> header file. */
+#undef HAVE_SYS_INOTIFY_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `wnck_window_has_name' function. */
+#undef HAVE_WNCK_WINDOW_HAS_NAME
+
+/* Define to 1 if xrender version >= 0.9.3 */
+#undef HAVE_XRENDER_0_9_3
+
+/* Max reasonable desktops */
+#undef MAX_DESKTOPS
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Build annotate plugin */
+#undef USE_ANNOTATE
+
+/* Build dbus plugin */
+#undef USE_DBUS
+
+/* Build dbus glib support */
+#undef USE_DBUS_GLIB
+
+/* Build fuse plugin */
+#undef USE_FUSE
+
+/* Build gconf plugin */
+#undef USE_GCONF
+
+/* Build glib plugin */
+#undef USE_GLIB
+
+/* Build gnome settings module */
+#undef USE_GNOME
+
+/* Install custom keybindings */
+#undef USE_GNOME_KEYBINDINGS
+
+/* Build gtk window decorator */
+#undef USE_GTK
+
+/* Build inotify plugin */
+#undef USE_INOTIFY
+
+/* Build kconfig plugin */
+#undef USE_KCONFIG
+
+/* Build kde window decorator */
+#undef USE_KDE
+
+/* Build kde4 window decorator */
+#undef USE_KDE4
+
+/* librsvg for SVG support */
+#undef USE_LIBRSVG
+
+/* Build metacity theme support */
+#undef USE_METACITY
+
+/* Version number of package */
+#undef VERSION
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..6759825
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1658 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+
+timestamp='2008-01-16'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | mt \
+ | msp430 \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tile*)
+ basic_machine=tile-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755
index 0000000..451af8d
--- /dev/null
+++ b/configure
@@ -0,0 +1,28345 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.63 for compiz 0.8.2.
+#
+# Report bugs to <davidr@novell.com>.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+ if (eval ":") 2>/dev/null; then
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+
+ if test $as_have_required = yes && (eval ":
+(as_func_return () {
+ (exit \$1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+ as_lineno_1=\$LINENO
+ as_lineno_2=\$LINENO
+ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+ :
+else
+ as_candidate_shells=
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ case $as_dir in
+ /*)
+ for as_base in sh bash ksh sh5; do
+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+ done;;
+ esac
+done
+IFS=$as_save_IFS
+
+
+ for as_shell in $as_candidate_shells $SHELL; do
+ # Try only shells that exist, to save several forks.
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+ CONFIG_SHELL=$as_shell
+ as_have_required=yes
+ if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+ (exit $1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+ break
+fi
+
+fi
+
+ done
+
+ if test "x$CONFIG_SHELL" != x; then
+ for as_var in BASH_ENV ENV
+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ done
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+ if test $as_have_required = no; then
+ echo This script requires a shell more modern than all the
+ echo shells that I found on your system. Please install a
+ echo modern shell, or manually run the script under such a
+ echo shell if you do have one.
+ { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+ (exit \$1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+ echo No shell found that supports shell functions.
+ echo Please tell bug-autoconf@gnu.org about your system,
+ echo including any error possibly output before this message.
+ echo This can help us improve future autoconf versions.
+ echo Configuration will now proceed without shell functions.
+}
+
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line after each line using $LINENO; the second 'sed'
+ # does the real work. The second script uses 'N' to pair each
+ # line-number line with the line containing $LINENO, and appends
+ # trailing '-' during substitution so that $LINENO is not a special
+ # case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # scripts with optimization help from Paolo Bonzini. Blame Lee
+ # E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+ case `echo 'x\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ *) ECHO_C='\c';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+ echo_test_string=`eval $cmd` &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME='compiz'
+PACKAGE_TARNAME='compiz'
+PACKAGE_VERSION='0.8.2'
+PACKAGE_STRING='compiz 0.8.2'
+PACKAGE_BUGREPORT='davidr@novell.com'
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+kcfgdir
+KDE_KCONFIG_DIR
+KDE_KCFG_DIR
+KCONFIG_LIBS
+KCONFIG_CFLAGS
+USE_KCONFIG_FALSE
+USE_KCONFIG_TRUE
+QDBUSXML2CPP
+QT4_MOC
+KDE4_LIBS
+KDE4_CFLAGS
+USE_KDE4_FALSE
+USE_KDE4_TRUE
+KDE4_WINDOW_DECORATOR_LIBS
+KDE4_WINDOW_DECORATOR_CFLAGS
+DCOPIDL2CPP
+DCOPIDL
+QT_MOC
+KDE_LIBS
+KDE_CFLAGS
+USE_KDE_FALSE
+USE_KDE_TRUE
+KDE_WINDOW_DECORATOR_LIBS
+KDE_WINDOW_DECORATOR_CFLAGS
+USE_GNOME_KEYBINDINGS_FALSE
+USE_GNOME_KEYBINDINGS_TRUE
+USE_GNOME_FALSE
+USE_GNOME_TRUE
+USE_METACITY_FALSE
+USE_METACITY_TRUE
+USE_GTK_FALSE
+USE_GTK_TRUE
+keybindingsdir
+windowsettingslibdir
+windowsettingsdatadir
+GNOME_KEY_BINDINGS_LIBS
+GNOME_KEY_BINDINGS_CFLAGS
+GNOME_WINDOW_SETTINGS_LIBS
+GNOME_WINDOW_SETTINGS_CFLAGS
+METACITY_LIBS
+METACITY_CFLAGS
+GTK_WINDOW_DECORATOR_LIBS
+GTK_WINDOW_DECORATOR_CFLAGS
+USE_LIBRSVG_FALSE
+USE_LIBRSVG_TRUE
+LIBRSVG_LIBS
+LIBRSVG_CFLAGS
+ANNOTATE_PLUGIN_FALSE
+ANNOTATE_PLUGIN_TRUE
+ANNOTATE_LIBS
+ANNOTATE_CFLAGS
+FUSE_PLUGIN_FALSE
+FUSE_PLUGIN_TRUE
+FUSE_LIBS
+FUSE_CFLAGS
+INOTIFY_PLUGIN_FALSE
+INOTIFY_PLUGIN_TRUE
+DBUS_GLIB_LIBS
+DBUS_GLIB_CFLAGS
+DBUS_PLUGIN_FALSE
+DBUS_PLUGIN_TRUE
+DBUS_LIBS
+DBUS_CFLAGS
+stylesheetdir
+USE_GCONF_FALSE
+USE_GCONF_TRUE
+GCONF_SCHEMAS_INSTALL_FALSE
+GCONF_SCHEMAS_INSTALL_TRUE
+GCONF_SCHEMA_FILE_DIR
+GCONF_SCHEMA_CONFIG_SOURCE
+GCONFTOOL
+GCONF_LIBS
+GCONF_CFLAGS
+USE_GLIB_FALSE
+USE_GLIB_TRUE
+GLIB_LIBS
+GLIB_CFLAGS
+LIBPNG_LIBS
+LIBPNG_CFLAGS
+XSLTPROC
+GL_LIBS
+GL_CFLAGS
+DECORATION_REQUIRES
+DECORATION_LIBS
+DECORATION_CFLAGS
+COMPIZ_REQUIRES
+COMPIZ_LIBS
+COMPIZ_CFLAGS
+PKG_CONFIG
+metadatadir
+imagedir
+default_plugins
+plugindir
+GETTEXT_PACKAGE
+MKINSTALLDIRS
+POSUB
+POFILES
+PO_IN_DATADIR_FALSE
+PO_IN_DATADIR_TRUE
+INTLLIBS
+INSTOBJEXT
+GMOFILES
+CATOBJEXT
+CATALOGS
+MSGFMT_OPTS
+LIBTOOL
+ac_ct_F77
+FFLAGS
+F77
+CXXCPP
+NMEDIT
+DSYMUTIL
+RANLIB
+AR
+ECHO
+LN_S
+EGREP
+GREP
+SED
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+ac_ct_CXX
+CXXFLAGS
+CXX
+CPP
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+DATADIRNAME
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+ALL_LINGUAS
+INTLTOOL_PERL
+GMSGFMT
+MSGFMT
+MSGMERGE
+XGETTEXT
+INTLTOOL_POLICY_RULE
+INTLTOOL_SERVICE_RULE
+INTLTOOL_THEME_RULE
+INTLTOOL_SCHEMAS_RULE
+INTLTOOL_CAVES_RULE
+INTLTOOL_XML_NOMERGE_RULE
+INTLTOOL_XML_RULE
+INTLTOOL_KBD_RULE
+INTLTOOL_XAM_RULE
+INTLTOOL_UI_RULE
+INTLTOOL_SOUNDLIST_RULE
+INTLTOOL_SHEET_RULE
+INTLTOOL_SERVER_RULE
+INTLTOOL_PONG_RULE
+INTLTOOL_OAF_RULE
+INTLTOOL_PROP_RULE
+INTLTOOL_KEYS_RULE
+INTLTOOL_DIRECTORY_RULE
+INTLTOOL_DESKTOP_RULE
+INTLTOOL_EXTRACT
+INTLTOOL_MERGE
+INTLTOOL_UPDATE
+USE_NLS
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+COMPIZ_VERSION_MICRO
+COMPIZ_VERSION_MINOR
+COMPIZ_VERSION_MAJOR
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_nls
+enable_dependency_tracking
+enable_maintainer_mode
+enable_shared
+enable_static
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_pic
+with_tags
+with_default_plugins
+with_gl_cflags
+with_gl_libs
+enable_glib
+enable_gconf
+with_gconf_source
+with_gconf_schema_file_dir
+enable_schemas_install
+enable_dbus
+enable_dbus_glib
+enable_inotify
+enable_fuse
+enable_annotate
+enable_librsvg
+enable_gtk
+enable_metacity
+enable_gnome
+enable_gnome_keybindings
+enable_kde
+enable_kde4
+enable_kconfig
+with_max_desktops
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+CXX
+CXXFLAGS
+CCC
+CXXCPP
+F77
+FFLAGS
+PKG_CONFIG
+COMPIZ_CFLAGS
+COMPIZ_LIBS
+DECORATION_CFLAGS
+DECORATION_LIBS
+LIBPNG_CFLAGS
+LIBPNG_LIBS
+GLIB_CFLAGS
+GLIB_LIBS
+GCONF_CFLAGS
+GCONF_LIBS
+DBUS_CFLAGS
+DBUS_LIBS
+DBUS_GLIB_CFLAGS
+DBUS_GLIB_LIBS
+FUSE_CFLAGS
+FUSE_LIBS
+ANNOTATE_CFLAGS
+ANNOTATE_LIBS
+LIBRSVG_CFLAGS
+LIBRSVG_LIBS
+GTK_WINDOW_DECORATOR_CFLAGS
+GTK_WINDOW_DECORATOR_LIBS
+METACITY_CFLAGS
+METACITY_LIBS
+GNOME_WINDOW_SETTINGS_CFLAGS
+GNOME_WINDOW_SETTINGS_LIBS
+GNOME_KEY_BINDINGS_CFLAGS
+GNOME_KEY_BINDINGS_LIBS
+KDE_WINDOW_DECORATOR_CFLAGS
+KDE_WINDOW_DECORATOR_LIBS
+KDE4_WINDOW_DECORATOR_CFLAGS
+KDE4_WINDOW_DECORATOR_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+ { (exit 1); exit 1; }; }
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+ { (exit 1); exit 1; }; }
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+ { (exit 1); exit 1; }; }
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+ { (exit 1); exit 1; }; }
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+ { (exit 1); exit 1; }; } ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ { $as_echo "$as_me: error: working directory cannot be determined" >&2
+ { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+ { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+ { (exit 1); exit 1; }; }
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures compiz 0.8.2 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/compiz]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of compiz 0.8.2:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-nls do not use Native Language Support
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-glib Disable glib plugin
+ --disable-gconf Disable gconf plugin
+ --disable-schemas-install Disable the schemas installation
+ --disable-dbus Disable dbus plugin
+ --disable-dbus-glib Disable dbus-glib support
+ --disable-inotify Disable inotify plugin
+ --disable-fuse Disable fuse plugin
+ --disable-annotate Disable annotate plugin
+ --disable-librsvg Disable svg support
+ --disable-gtk Disable gtk window decorator
+ --disable-metacity Disable metacity theme support
+ --disable-gnome Disable gnome settings module
+ --disable-gnome-keybindings Disable gnome keybindings
+ --disable-kde Disable kde window decorator
+ --disable-kde4 Disable kde4 window decorator
+ --disable-kconfig Disable kconfig plugin
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-tags[=TAGS] include additional configurations [automatic]
+ --with-default-plugins=PLUGINS
+ --with-gl-cflags=CFLAGS
+ --with-gl-libs=LIBS
+ --with-gconf-source=sourceaddress
+ Config database for installing schema files.
+ --with-gconf-schema-file-dir=dir
+ Directory for installing schema files.
+ --with-max-desktops Max reasonable desktops
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ CXXCPP C++ preprocessor
+ F77 Fortran 77 compiler command
+ FFLAGS Fortran 77 compiler flags
+ PKG_CONFIG path to pkg-config utility
+ COMPIZ_CFLAGS
+ C compiler flags for COMPIZ, overriding pkg-config
+ COMPIZ_LIBS linker flags for COMPIZ, overriding pkg-config
+ DECORATION_CFLAGS
+ C compiler flags for DECORATION, overriding pkg-config
+ DECORATION_LIBS
+ linker flags for DECORATION, overriding pkg-config
+ LIBPNG_CFLAGS
+ C compiler flags for LIBPNG, overriding pkg-config
+ LIBPNG_LIBS linker flags for LIBPNG, overriding pkg-config
+ GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
+ GLIB_LIBS linker flags for GLIB, overriding pkg-config
+ GCONF_CFLAGS
+ C compiler flags for GCONF, overriding pkg-config
+ GCONF_LIBS linker flags for GCONF, overriding pkg-config
+ DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config
+ DBUS_LIBS linker flags for DBUS, overriding pkg-config
+ DBUS_GLIB_CFLAGS
+ C compiler flags for DBUS_GLIB, overriding pkg-config
+ DBUS_GLIB_LIBS
+ linker flags for DBUS_GLIB, overriding pkg-config
+ FUSE_CFLAGS C compiler flags for FUSE, overriding pkg-config
+ FUSE_LIBS linker flags for FUSE, overriding pkg-config
+ ANNOTATE_CFLAGS
+ C compiler flags for ANNOTATE, overriding pkg-config
+ ANNOTATE_LIBS
+ linker flags for ANNOTATE, overriding pkg-config
+ LIBRSVG_CFLAGS
+ C compiler flags for LIBRSVG, overriding pkg-config
+ LIBRSVG_LIBS
+ linker flags for LIBRSVG, overriding pkg-config
+ GTK_WINDOW_DECORATOR_CFLAGS
+ C compiler flags for GTK_WINDOW_DECORATOR, overriding pkg-config
+ GTK_WINDOW_DECORATOR_LIBS
+ linker flags for GTK_WINDOW_DECORATOR, overriding pkg-config
+ METACITY_CFLAGS
+ C compiler flags for METACITY, overriding pkg-config
+ METACITY_LIBS
+ linker flags for METACITY, overriding pkg-config
+ GNOME_WINDOW_SETTINGS_CFLAGS
+ C compiler flags for GNOME_WINDOW_SETTINGS, overriding
+ pkg-config
+ GNOME_WINDOW_SETTINGS_LIBS
+ linker flags for GNOME_WINDOW_SETTINGS, overriding pkg-config
+ GNOME_KEY_BINDINGS_CFLAGS
+ C compiler flags for GNOME_KEY_BINDINGS, overriding pkg-config
+ GNOME_KEY_BINDINGS_LIBS
+ linker flags for GNOME_KEY_BINDINGS, overriding pkg-config
+ KDE_WINDOW_DECORATOR_CFLAGS
+ C compiler flags for KDE_WINDOW_DECORATOR, overriding pkg-config
+ KDE_WINDOW_DECORATOR_LIBS
+ linker flags for KDE_WINDOW_DECORATOR, overriding pkg-config
+ KDE4_WINDOW_DECORATOR_CFLAGS
+ C compiler flags for KDE4_WINDOW_DECORATOR, overriding
+ pkg-config
+ KDE4_WINDOW_DECORATOR_LIBS
+ linker flags for KDE4_WINDOW_DECORATOR, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <davidr@novell.com>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+compiz configure 0.8.2
+generated by GNU Autoconf 2.63
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by compiz $as_me 0.8.2, which was
+generated by GNU Autoconf 2.63. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args '$ac_arg'"
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) $as_unset $ac_var ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test -r "$ac_site_file"; then
+ { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+COMPIZ_VERSION_MAJOR=0
+COMPIZ_VERSION_MINOR=8
+COMPIZ_VERSION_MICRO=2
+
+
+
+
+am__api_version='1.10'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&5
+$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+$as_echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+done
+IFS=$as_save_IFS
+
+fi
+
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ test -d ./--version && rmdir ./--version
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='compiz'
+ VERSION='0.8.2'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+ { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+ # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then
+ enableval=$enable_nls; USE_NLS=$enableval
+else
+ USE_NLS=yes
+fi
+
+ { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+
+
+{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler --version >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -v >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -V >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_compiler_gnu=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ CFLAGS=""
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_c89=$ac_arg
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+
+
+case "$am__api_version" in
+ 1.01234)
+ { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5
+$as_echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ *)
+ ;;
+esac
+
+if test -n "0.23"; then
+ { $as_echo "$as_me:$LINENO: checking for intltool >= 0.23" >&5
+$as_echo_n "checking for intltool >= 0.23... " >&6; }
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.23 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+ INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+
+ { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5
+$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; }
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ { { $as_echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.23 or later." >&5
+$as_echo "$as_me: error: Your intltool is too old. You need intltool 0.23 or later." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+# Extract the first word of "intltool-update", so it can be a program name with args.
+set dummy intltool-update; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_UPDATE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE
+if test -n "$INTLTOOL_UPDATE"; then
+ { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5
+$as_echo "$INTLTOOL_UPDATE" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-merge", so it can be a program name with args.
+set dummy intltool-merge; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_MERGE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE
+if test -n "$INTLTOOL_MERGE"; then
+ { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5
+$as_echo "$INTLTOOL_MERGE" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-extract", so it can be a program name with args.
+set dummy intltool-extract; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_EXTRACT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT
+if test -n "$INTLTOOL_EXTRACT"; then
+ { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5
+$as_echo "$INTLTOOL_EXTRACT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+ { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5
+$as_echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check the gettext tools to make sure they are GNU
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $XGETTEXT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XGETTEXT=$ac_cv_path_XGETTEXT
+if test -n "$XGETTEXT"; then
+ { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MSGMERGE+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $MSGMERGE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MSGMERGE=$ac_cv_path_MSGMERGE
+if test -n "$MSGMERGE"; then
+ { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $MSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MSGFMT=$ac_cv_path_MSGFMT
+if test -n "$MSGFMT"; then
+ { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_GMSGFMT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5
+$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5
+$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $INTLTOOL_PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
+if test -n "$INTLTOOL_PERL"; then
+ { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5
+$as_echo "$INTLTOOL_PERL" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_PERL"; then
+ { { $as_echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5
+$as_echo "$as_me: error: perl not found; required for intltool" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+ { { $as_echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5
+$as_echo "$as_me: error: perl 5.x required for intltool" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test "x" != "xno-xml"; then
+ { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5
+$as_echo_n "checking for XML::Parser... " >&6; }
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ { $as_echo "$as_me:$LINENO: result: ok" >&5
+$as_echo "ok" >&6; }
+ else
+ { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5
+$as_echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ DATADIRNAME=share
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ case $host in
+ *-*-solaris*)
+ { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
+$as_echo_n "checking for bind_textdomain_codeset... " >&6; }
+if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char bind_textdomain_codeset (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef bind_textdomain_codeset
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind_textdomain_codeset ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
+choke me
+#endif
+
+int
+main ()
+{
+return bind_textdomain_codeset ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_func_bind_textdomain_codeset=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_func_bind_textdomain_codeset=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
+$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; }
+if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then
+ DATADIRNAME=share
+else
+ DATADIRNAME=lib
+fi
+
+ ;;
+ *)
+ DATADIRNAME=lib
+ ;;
+ esac
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+
+
+{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define DECOR_INTERFACE_VERSION 20080529
+_ACEOF
+
+
+{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if test "${ac_cv_search_strerror+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strerror ();
+int
+main ()
+{
+return strerror ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' cposix; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_search_strerror=$ac_res
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext
+ if test "${ac_cv_search_strerror+set}" = set; then
+ break
+fi
+done
+if test "${ac_cv_search_strerror+set}" = set; then
+ :
+else
+ ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+$as_echo "$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler --version >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -v >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -V >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_compiler_gnu=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ CFLAGS=""
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cc_c89=$ac_arg
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ # Broken: success on invalid input.
+continue
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ # Broken: success on invalid input.
+continue
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler --version >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -v >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -V >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_compiler_gnu=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cxx_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ CXXFLAGS=""
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cxx_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+# Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+$as_echo "$as_me: error: invalid value of canonical build" >&2;}
+ { (exit 1); exit 1; }; };;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+$as_echo "$as_me: error: invalid value of canonical host" >&2;}
+ { (exit 1); exit 1; }; };;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${lt_cv_path_SED+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+
+fi
+
+SED=$lt_cv_path_SED
+
+{ $as_echo "$as_me:$LINENO: result: $SED" >&5
+$as_echo "$SED" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ ac_count=`expr $ac_count + 1`
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ ac_count=`expr $ac_count + 1`
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+$as_echo_n "checking for BSD-compatible nm... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+NM="$lt_cv_path_NM"
+
+{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 6929 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ libsuff=64
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ lt_cv_cc_needs_belf=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ lt_cv_cc_needs_belf=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_header_stdc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ eval "$as_ac_Header=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to davidr@novell.com ##
+## -------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ # Broken: success on invalid input.
+continue
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ # Broken: success on invalid input.
+continue
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_F77+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$F77"; then
+ ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+ { $as_echo "$as_me:$LINENO: result: $F77" >&5
+$as_echo "$F77" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$F77" && break
+ done
+fi
+if test -z "$F77"; then
+ ac_ct_F77=$F77
+ for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_F77"; then
+ ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_F77="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+$as_echo "$ac_ct_F77" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_F77" && break
+done
+
+ if test "x$ac_ct_F77" = x; then
+ F77=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ F77=$ac_ct_F77
+ fi
+fi
+
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler --version >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -v >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compiler -V >&5") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file. (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; }
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+#ifndef __GNUC__
+ choke me
+#endif
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_f77_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_compiler_gnu=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+$as_echo "$ac_cv_f77_compiler_gnu" >&6; }
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+$as_echo_n "checking whether $F77 accepts -g... " >&6; }
+if test "${ac_cv_prog_f77_g+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_f77_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_f77_g=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_prog_f77_g=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+$as_echo "$ac_cv_prog_f77_g" >&6; }
+if test "$ac_test_FFLAGS" = set; then
+ FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-g -O2"
+ else
+ FFLAGS="-g"
+ fi
+else
+ if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+ FFLAGS="-O2"
+ else
+ FFLAGS=
+ fi
+fi
+
+if test $ac_compiler_gnu = yes; then
+ G77=yes
+else
+ G77=
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ = "XX$teststring") >/dev/null 2>&1 &&
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: none" >&5
+$as_echo "none" >&6; }
+fi
+
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+linux* | k*bsd*-gnu)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDGIRSTW]'
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:$LINENO: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:$LINENO: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:$LINENO: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ echo "int foo(void){return 1;}" > conftest.c
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib ${wl}-single_module conftest.c
+ if test -f libconftest.dylib; then
+ lt_cv_apple_cc_single_mod=yes
+ rm -rf libconftest.dylib*
+ fi
+ rm conftest.c
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ lt_cv_ld_exported_symbols_list=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ lt_cv_ld_exported_symbols_list=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[0123])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*)
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil="~$DSYMUTIL \$lib || :"
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:9299: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:9303: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic='-qnocommon'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:9589: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:9593: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $rm -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:9693: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:9697: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ enable_shared_with_static_runtimes=no
+ archive_cmds=
+ archive_expsym_cmds=
+ old_archive_From_new_cmds=
+ old_archive_from_expsyms_cmds=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ thread_safe_flag_spec=
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_direct=no
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ link_all_deplibs=unknown
+ hardcode_automatic=no
+ module_cmds=
+ module_expsym_cmds=
+ always_export_symbols=no
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ hardcode_direct=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $rm conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`echo $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ shlibpath_overrides_runpath=no
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var" || \
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ ;;
+ *)
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_dl_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
+$as_echo_n "checking for shl_load... " >&6; }
+if test "${ac_cv_func_shl_load+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_shl_load || defined __stub___shl_load
+choke me
+#endif
+
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_func_shl_load=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_func_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+$as_echo "$ac_cv_func_shl_load" >&6; }
+if test "x$ac_cv_func_shl_load" = x""yes; then
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_dld_shl_load=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
+$as_echo_n "checking for dlopen... " >&6; }
+if test "${ac_cv_func_dlopen+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_dlopen || defined __stub___dlopen
+choke me
+#endif
+
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_func_dlopen=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_func_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+$as_echo "$ac_cv_func_dlopen" >&6; }
+if test "x$ac_cv_func_dlopen" = x""yes; then
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_dl_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_svld_dlopen=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_dld_dld_link=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 12095 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 12195 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+# Report which library types will actually be built
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler \
+ CC \
+ LD \
+ lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
+ lt_prog_compiler_static \
+ lt_prog_compiler_no_builtin_flag \
+ export_dynamic_flag_spec \
+ thread_safe_flag_spec \
+ whole_archive_flag_spec \
+ enable_shared_with_static_runtimes \
+ old_archive_cmds \
+ old_archive_from_new_cmds \
+ predep_objects \
+ postdep_objects \
+ predeps \
+ postdeps \
+ compiler_lib_search_path \
+ compiler_lib_search_dirs \
+ archive_cmds \
+ archive_expsym_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ old_archive_from_expsyms_cmds \
+ allow_undefined_flag \
+ no_undefined_flag \
+ export_symbols_cmds \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+ hardcode_automatic \
+ module_cmds \
+ module_expsym_cmds \
+ lt_cv_prog_compiler_c_o \
+ fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms; do
+
+ case $var in
+ old_archive_cmds | \
+ old_archive_from_new_cmds | \
+ archive_cmds | \
+ archive_expsym_cmds | \
+ module_cmds | \
+ module_expsym_cmds | \
+ old_archive_from_expsyms_cmds | \
+ export_symbols_cmds | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ { $as_echo "$as_me:$LINENO: creating $ofile" >&5
+$as_echo "$as_me: creating $ofile" >&6;}
+
+ cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags was given.
+if test "${with_tags+set}" = set; then
+ withval=$with_tags; tagnames="$withval"
+fi
+
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+ else
+ { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+ fi
+ fi
+ if test -z "$LTCFLAGS"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+ "") ;;
+ *) { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+$as_echo "$as_me: error: invalid tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+$as_echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+ lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ld_shlibs_CXX=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ if test "$GXX" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*) ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ ;;
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc*)
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+ $rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ # So that behaviour is only enabled if SCOABSPATH is set to a
+ # non-empty value in the environment. Most likely only useful for
+ # creating official distributions of packages.
+ # This is a hack until libtool officially supports absolute path
+ # names for shared libraries.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ #
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_CXX='-qnocommon'
+ lt_prog_compiler_wl_CXX='-Wl,'
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ icpc* | ecpc*)
+ # Intel C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:14604: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:14608: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+ ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $rm -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:14708: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:14712: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $rm conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ shlibpath_overrides_runpath=no
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+ test -n "$runpath_var_CXX" || \
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_CXX \
+ CC_CXX \
+ LD_CXX \
+ lt_prog_compiler_wl_CXX \
+ lt_prog_compiler_pic_CXX \
+ lt_prog_compiler_static_CXX \
+ lt_prog_compiler_no_builtin_flag_CXX \
+ export_dynamic_flag_spec_CXX \
+ thread_safe_flag_spec_CXX \
+ whole_archive_flag_spec_CXX \
+ enable_shared_with_static_runtimes_CXX \
+ old_archive_cmds_CXX \
+ old_archive_from_new_cmds_CXX \
+ predep_objects_CXX \
+ postdep_objects_CXX \
+ predeps_CXX \
+ postdeps_CXX \
+ compiler_lib_search_path_CXX \
+ compiler_lib_search_dirs_CXX \
+ archive_cmds_CXX \
+ archive_expsym_cmds_CXX \
+ postinstall_cmds_CXX \
+ postuninstall_cmds_CXX \
+ old_archive_from_expsyms_cmds_CXX \
+ allow_undefined_flag_CXX \
+ no_undefined_flag_CXX \
+ export_symbols_cmds_CXX \
+ hardcode_libdir_flag_spec_CXX \
+ hardcode_libdir_flag_spec_ld_CXX \
+ hardcode_libdir_separator_CXX \
+ hardcode_automatic_CXX \
+ module_cmds_CXX \
+ module_expsym_cmds_CXX \
+ lt_cv_prog_compiler_c_o_CXX \
+ fix_srcfile_path_CXX \
+ exclude_expsyms_CXX \
+ include_expsyms_CXX; do
+
+ case $var in
+ old_archive_cmds_CXX | \
+ old_archive_from_new_cmds_CXX | \
+ archive_cmds_CXX | \
+ archive_expsym_cmds_CXX | \
+ module_cmds_CXX | \
+ module_expsym_cmds_CXX | \
+ old_archive_from_expsyms_cmds_CXX | \
+ export_symbols_cmds_CXX | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="\
+ program t
+ end
+"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_static_F77='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_F77='-fno-common'
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_F77=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_F77=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_F77='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_F77='-Bstatic'
+ else
+ lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_F77='-qnocommon'
+ lt_prog_compiler_wl_F77='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_F77='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-fpic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ lt_prog_compiler_wl_F77='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ lt_prog_compiler_wl_F77=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_F77='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_F77='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_F77='-Qoption ld '
+ lt_prog_compiler_pic_F77='-PIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_F77='-Kconform_pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_F77='-Wl,'
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_F77='-pic'
+ lt_prog_compiler_static_F77='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_F77=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+$as_echo "$lt_prog_compiler_pic_F77" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_F77=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_F77"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:16293: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:16297: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_F77=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_F77" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
+ case $lt_prog_compiler_pic_F77 in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+ esac
+else
+ lt_prog_compiler_pic_F77=
+ lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_F77=
+ ;;
+ *)
+ lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+ ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_F77=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_F77=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_F77=yes
+ fi
+ fi
+ $rm -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_F77" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
+ :
+else
+ lt_prog_compiler_static_F77=
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_F77=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:16397: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:16401: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_F77=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag_F77=
+ enable_shared_with_static_runtimes_F77=no
+ archive_cmds_F77=
+ archive_expsym_cmds_F77=
+ old_archive_From_new_cmds_F77=
+ old_archive_from_expsyms_cmds_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ thread_safe_flag_spec_F77=
+ hardcode_libdir_flag_spec_F77=
+ hardcode_libdir_flag_spec_ld_F77=
+ hardcode_libdir_separator_F77=
+ hardcode_direct_F77=no
+ hardcode_minus_L_F77=no
+ hardcode_shlibpath_var_F77=unsupported
+ link_all_deplibs_F77=unknown
+ hardcode_automatic_F77=no
+ module_cmds_F77=
+ module_expsym_cmds_F77=
+ always_export_symbols_F77=no
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_F77=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_F77=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_F77=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_F77=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_F77=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=no
+ enable_shared_with_static_runtimes_F77=yes
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_F77='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_F77=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs_F77=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_F77" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_F77=unsupported
+ always_export_symbols_F77=yes
+ archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_F77=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_F77=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_F77=''
+ hardcode_direct_F77=yes
+ hardcode_libdir_separator_F77=':'
+ link_all_deplibs_F77=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_F77=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_F77=yes
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_libdir_separator_F77=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_F77=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_F77='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_f77_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_F77="-z nodefs"
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+ program main
+
+ end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_f77_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_F77=' ${wl}-bernotok'
+ allow_undefined_flag_F77=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_F77='$convenience'
+ archive_cmds_need_lc_F77=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_F77=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_F77=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_F77=' '
+ allow_undefined_flag_F77=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_F77='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_F77=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_F77=no
+ hardcode_direct_F77=no
+ hardcode_automatic_F77=yes
+ hardcode_shlibpath_var_F77=unsupported
+ whole_archive_flag_spec_F77=''
+ link_all_deplibs_F77=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_F77=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_direct_F77=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+
+ hardcode_direct_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+ hardcode_direct_F77=no
+ hardcode_shlibpath_var_F77=no
+ ;;
+ *)
+ hardcode_direct_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_F77=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ link_all_deplibs_F77=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ newsos6)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_F77='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_minus_L_F77=yes
+ allow_undefined_flag_F77=unsupported
+ archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_F77=' -expect_unresolved \*'
+ archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_F77='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_F77=:
+ ;;
+
+ solaris*)
+ no_undefined_flag_F77=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ hardcode_shlibpath_var_F77=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs_F77=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_direct_F77=yes
+ hardcode_minus_L_F77=yes
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_F77='$CC -r -o $output$reload_objs'
+ hardcode_direct_F77=no
+ ;;
+ motorola)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ export_dynamic_flag_spec_F77='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_F77=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_F77=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_F77='${wl}-z,text'
+ archive_cmds_need_lc_F77=no
+ hardcode_shlibpath_var_F77=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_F77='${wl}-z,text'
+ allow_undefined_flag_F77='${wl}-z,nodefs'
+ archive_cmds_need_lc_F77=no
+ hardcode_shlibpath_var_F77=no
+ hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator_F77=':'
+ link_all_deplibs_F77=yes
+ export_dynamic_flag_spec_F77='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-L$libdir'
+ hardcode_shlibpath_var_F77=no
+ ;;
+
+ *)
+ ld_shlibs_F77=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+$as_echo "$ld_shlibs_F77" >&6; }
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_F77=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_F77 in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $rm conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_F77
+ pic_flag=$lt_prog_compiler_pic_F77
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+ allow_undefined_flag_F77=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_F77=no
+ else
+ archive_cmds_need_lc_F77=yes
+ fi
+ allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+$as_echo "$archive_cmds_need_lc_F77" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ shlibpath_overrides_runpath=no
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+ test -n "$runpath_var_F77" || \
+ test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_F77" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+ test "$hardcode_minus_L_F77" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_F77=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_F77=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_F77=unsupported
+fi
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+$as_echo "$hardcode_action_F77" >&6; }
+
+if test "$hardcode_action_F77" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_F77 \
+ CC_F77 \
+ LD_F77 \
+ lt_prog_compiler_wl_F77 \
+ lt_prog_compiler_pic_F77 \
+ lt_prog_compiler_static_F77 \
+ lt_prog_compiler_no_builtin_flag_F77 \
+ export_dynamic_flag_spec_F77 \
+ thread_safe_flag_spec_F77 \
+ whole_archive_flag_spec_F77 \
+ enable_shared_with_static_runtimes_F77 \
+ old_archive_cmds_F77 \
+ old_archive_from_new_cmds_F77 \
+ predep_objects_F77 \
+ postdep_objects_F77 \
+ predeps_F77 \
+ postdeps_F77 \
+ compiler_lib_search_path_F77 \
+ compiler_lib_search_dirs_F77 \
+ archive_cmds_F77 \
+ archive_expsym_cmds_F77 \
+ postinstall_cmds_F77 \
+ postuninstall_cmds_F77 \
+ old_archive_from_expsyms_cmds_F77 \
+ allow_undefined_flag_F77 \
+ no_undefined_flag_F77 \
+ export_symbols_cmds_F77 \
+ hardcode_libdir_flag_spec_F77 \
+ hardcode_libdir_flag_spec_ld_F77 \
+ hardcode_libdir_separator_F77 \
+ hardcode_automatic_F77 \
+ module_cmds_F77 \
+ module_expsym_cmds_F77 \
+ lt_cv_prog_compiler_c_o_F77 \
+ fix_srcfile_path_F77 \
+ exclude_expsyms_F77 \
+ include_expsyms_F77; do
+
+ case $var in
+ old_archive_cmds_F77 | \
+ old_archive_from_new_cmds_F77 | \
+ archive_cmds_F77 | \
+ archive_expsym_cmds_F77 | \
+ module_cmds_F77 | \
+ module_expsym_cmds_F77 | \
+ old_archive_from_expsyms_cmds_F77 | \
+ export_symbols_cmds_F77 | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:18614: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:18618: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_static_GCJ='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_GCJ='-fno-common'
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared_GCJ=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_GCJ=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ lt_prog_compiler_pic_GCJ='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ else
+ lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ darwin*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ case $cc_basename in
+ xlc*)
+ lt_prog_compiler_pic_GCJ='-qnocommon'
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ icc* | ecc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-fpic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ lt_prog_compiler_wl_GCJ=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_GCJ='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld '
+ lt_prog_compiler_pic_GCJ='-PIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic_GCJ='-Kconform_pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic_GCJ='-pic'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared_GCJ=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+$as_echo "$lt_prog_compiler_pic_GCJ" >&6; }
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_GCJ=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:18904: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:18908: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_GCJ=yes
+ fi
+ fi
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
+ case $lt_prog_compiler_pic_GCJ in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+ esac
+else
+ lt_prog_compiler_pic_GCJ=
+ lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_GCJ=
+ ;;
+ *)
+ lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+ ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_GCJ=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_GCJ=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_GCJ=yes
+ fi
+ fi
+ $rm -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_GCJ" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
+ :
+else
+ lt_prog_compiler_static_GCJ=
+fi
+
+
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_GCJ=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:19008: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:19012: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_GCJ=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $rm conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+ $rm out/* && rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; }
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag_GCJ=
+ enable_shared_with_static_runtimes_GCJ=no
+ archive_cmds_GCJ=
+ archive_expsym_cmds_GCJ=
+ old_archive_From_new_cmds_GCJ=
+ old_archive_from_expsyms_cmds_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ thread_safe_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_GCJ=
+ hardcode_libdir_flag_spec_ld_GCJ=
+ hardcode_libdir_separator_GCJ=
+ hardcode_direct_GCJ=no
+ hardcode_minus_L_GCJ=no
+ hardcode_shlibpath_var_GCJ=unsupported
+ link_all_deplibs_GCJ=unknown
+ hardcode_automatic_GCJ=no
+ module_cmds_GCJ=
+ module_expsym_cmds_GCJ=
+ always_export_symbols_GCJ=no
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms_GCJ=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs_GCJ=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_GCJ=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ ld_shlibs_GCJ=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_GCJ=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=no
+ enable_shared_with_static_runtimes_GCJ=yes
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs_GCJ=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs_GCJ=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs_GCJ" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag_GCJ=unsupported
+ always_export_symbols_GCJ=yes
+ archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L_GCJ=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct_GCJ=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_GCJ=''
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_separator_GCJ=':'
+ link_all_deplibs_GCJ=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_GCJ=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_libdir_separator_GCJ=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols_GCJ=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_GCJ='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_GCJ="-z nodefs"
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_GCJ=' ${wl}-bernotok'
+ allow_undefined_flag_GCJ=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_GCJ='$convenience'
+ archive_cmds_need_lc_GCJ=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs_GCJ=no
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec_GCJ=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_GCJ=' '
+ allow_undefined_flag_GCJ=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_From_new_cmds_GCJ='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes_GCJ=yes
+ ;;
+
+ darwin* | rhapsody*)
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+ ;;
+ 10.*)
+ allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ archive_cmds_need_lc_GCJ=no
+ hardcode_direct_GCJ=no
+ hardcode_automatic_GCJ=yes
+ hardcode_shlibpath_var_GCJ=unsupported
+ whole_archive_flag_spec_GCJ=''
+ link_all_deplibs_GCJ=yes
+ if test "$GCC" = yes ; then
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ else
+ case $cc_basename in
+ xlc*)
+ output_verbose_link_cmd='echo'
+ archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+ module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ ;;
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+ ;;
+
+ dgux*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs_GCJ=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_direct_GCJ=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+
+ hardcode_direct_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+ hardcode_direct_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+ *)
+ hardcode_direct_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L_GCJ=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ newsos6)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_minus_L_GCJ=yes
+ allow_undefined_flag_GCJ=unsupported
+ archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag_GCJ=' -expect_unresolved \*'
+ archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+ fi
+ hardcode_libdir_separator_GCJ=:
+ ;;
+
+ solaris*)
+ no_undefined_flag_GCJ=' -z text'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+ else
+ wlarc=''
+ archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs_GCJ=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_direct_GCJ=yes
+ hardcode_minus_L_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+ hardcode_direct_GCJ=no
+ ;;
+ motorola)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ export_dynamic_flag_spec_GCJ='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs_GCJ=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_GCJ='${wl}-z,text'
+ archive_cmds_need_lc_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_GCJ='${wl}-z,text'
+ allow_undefined_flag_GCJ='${wl}-z,nodefs'
+ archive_cmds_need_lc_GCJ=no
+ hardcode_shlibpath_var_GCJ=no
+ hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator_GCJ=':'
+ link_all_deplibs_GCJ=yes
+ export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-L$libdir'
+ hardcode_shlibpath_var_GCJ=no
+ ;;
+
+ *)
+ ld_shlibs_GCJ=no
+ ;;
+ esac
+ fi
+
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+$as_echo "$ld_shlibs_GCJ" >&6; }
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_GCJ=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_GCJ in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $rm conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_GCJ
+ pic_flag=$lt_prog_compiler_pic_GCJ
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+ allow_undefined_flag_GCJ=
+ if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ archive_cmds_need_lc_GCJ=no
+ else
+ archive_cmds_need_lc_GCJ=yes
+ fi
+ allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+$as_echo "$archive_cmds_need_lc_GCJ" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ shlibpath_overrides_runpath=no
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+ test -n "$runpath_var_GCJ" || \
+ test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct_GCJ" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+ test "$hardcode_minus_L_GCJ" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_GCJ=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_GCJ=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_GCJ=unsupported
+fi
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+$as_echo "$hardcode_action_GCJ" >&6; }
+
+if test "$hardcode_action_GCJ" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_GCJ \
+ CC_GCJ \
+ LD_GCJ \
+ lt_prog_compiler_wl_GCJ \
+ lt_prog_compiler_pic_GCJ \
+ lt_prog_compiler_static_GCJ \
+ lt_prog_compiler_no_builtin_flag_GCJ \
+ export_dynamic_flag_spec_GCJ \
+ thread_safe_flag_spec_GCJ \
+ whole_archive_flag_spec_GCJ \
+ enable_shared_with_static_runtimes_GCJ \
+ old_archive_cmds_GCJ \
+ old_archive_from_new_cmds_GCJ \
+ predep_objects_GCJ \
+ postdep_objects_GCJ \
+ predeps_GCJ \
+ postdeps_GCJ \
+ compiler_lib_search_path_GCJ \
+ compiler_lib_search_dirs_GCJ \
+ archive_cmds_GCJ \
+ archive_expsym_cmds_GCJ \
+ postinstall_cmds_GCJ \
+ postuninstall_cmds_GCJ \
+ old_archive_from_expsyms_cmds_GCJ \
+ allow_undefined_flag_GCJ \
+ no_undefined_flag_GCJ \
+ export_symbols_cmds_GCJ \
+ hardcode_libdir_flag_spec_GCJ \
+ hardcode_libdir_flag_spec_ld_GCJ \
+ hardcode_libdir_separator_GCJ \
+ hardcode_automatic_GCJ \
+ module_cmds_GCJ \
+ module_expsym_cmds_GCJ \
+ lt_cv_prog_compiler_c_o_GCJ \
+ fix_srcfile_path_GCJ \
+ exclude_expsyms_GCJ \
+ include_expsyms_GCJ; do
+
+ case $var in
+ old_archive_cmds_GCJ | \
+ old_archive_from_new_cmds_GCJ | \
+ archive_cmds_GCJ | \
+ archive_expsym_cmds_GCJ | \
+ module_cmds_GCJ | \
+ module_expsym_cmds_GCJ | \
+ old_archive_from_expsyms_cmds_GCJ | \
+ export_symbols_cmds_GCJ | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+ SED SHELL STRIP \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ compiler_RC \
+ CC_RC \
+ LD_RC \
+ lt_prog_compiler_wl_RC \
+ lt_prog_compiler_pic_RC \
+ lt_prog_compiler_static_RC \
+ lt_prog_compiler_no_builtin_flag_RC \
+ export_dynamic_flag_spec_RC \
+ thread_safe_flag_spec_RC \
+ whole_archive_flag_spec_RC \
+ enable_shared_with_static_runtimes_RC \
+ old_archive_cmds_RC \
+ old_archive_from_new_cmds_RC \
+ predep_objects_RC \
+ postdep_objects_RC \
+ predeps_RC \
+ postdeps_RC \
+ compiler_lib_search_path_RC \
+ compiler_lib_search_dirs_RC \
+ archive_cmds_RC \
+ archive_expsym_cmds_RC \
+ postinstall_cmds_RC \
+ postuninstall_cmds_RC \
+ old_archive_from_expsyms_cmds_RC \
+ allow_undefined_flag_RC \
+ no_undefined_flag_RC \
+ export_symbols_cmds_RC \
+ hardcode_libdir_flag_spec_RC \
+ hardcode_libdir_flag_spec_ld_RC \
+ hardcode_libdir_separator_RC \
+ hardcode_automatic_RC \
+ module_cmds_RC \
+ module_expsym_cmds_RC \
+ lt_cv_prog_compiler_c_o_RC \
+ fix_srcfile_path_RC \
+ exclude_expsyms_RC \
+ include_expsyms_RC; do
+
+ case $var in
+ old_archive_cmds_RC | \
+ old_archive_from_new_cmds_RC | \
+ archive_cmds_RC | \
+ archive_expsym_cmds_RC | \
+ module_cmds_RC | \
+ module_expsym_cmds_RC | \
+ old_archive_from_expsyms_cmds_RC | \
+ export_symbols_cmds_RC | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\$0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+ ;;
+ esac
+
+cfgfile="$ofile"
+
+ cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+ if test -f "$ltmain_in"; then
+ test -f Makefile && make "$ltmain"
+ fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ ;;
+
+ *)
+ { { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+$as_echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
+ else
+ rm -f "${ofile}T"
+ { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+$as_echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_header_stdc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+
+
+
+for ac_header in stdlib.h sys/time.h unistd.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to davidr@novell.com ##
+## -------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+ALL_LINGUAS="af ar bg bn bn_IN bs ca cs cy da de el en_GB en_US es eu et fi fr gl gu he hi hr hu id it ja ka km ko lo lt mk mr nb nl or pa pl pt pt_BR ro ru sk sl sr sv ta tr uk vi xh zh_CN zh_TW zu"
+
+
+
+for ac_header in locale.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to davidr@novell.com ##
+## -------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_locale_h = yes; then
+ { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+$as_echo_n "checking for LC_MESSAGES... " >&6; }
+if test "${am_cv_val_LC_MESSAGES+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <locale.h>
+int
+main ()
+{
+return LC_MESSAGES
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ am_cv_val_LC_MESSAGES=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ am_cv_val_LC_MESSAGES=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+$as_echo "$am_cv_val_LC_MESSAGES" >&6; }
+ if test $am_cv_val_LC_MESSAGES = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LC_MESSAGES 1
+_ACEOF
+
+ fi
+ fi
+ USE_NLS=yes
+
+
+ gt_cv_have_gettext=no
+
+ CATOBJEXT=NONE
+ XGETTEXT=:
+ INTLLIBS=
+
+ if test "${ac_cv_header_libintl_h+set}" = set; then
+ { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
+$as_echo_n "checking for libintl.h... " >&6; }
+if test "${ac_cv_header_libintl_h+set}" = set; then
+ $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+$as_echo "$ac_cv_header_libintl_h" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5
+$as_echo_n "checking libintl.h usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <libintl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5
+$as_echo_n "checking libintl.h presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <libintl.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to davidr@novell.com ##
+## -------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5
+$as_echo_n "checking for libintl.h... " >&6; }
+if test "${ac_cv_header_libintl_h+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_header_libintl_h=$ac_header_preproc
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+$as_echo "$ac_cv_header_libintl_h" >&6; }
+
+fi
+if test "x$ac_cv_header_libintl_h" = x""yes; then
+ gt_cv_func_dgettext_libintl="no"
+ libintl_extra_libs=""
+
+ #
+ # First check in libc
+ #
+ { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+$as_echo_n "checking for ngettext in libc... " >&6; }
+if test "${gt_cv_func_ngettext_libc+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !ngettext ("","", 1)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ gt_cv_func_ngettext_libc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ gt_cv_func_ngettext_libc=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
+$as_echo "$gt_cv_func_ngettext_libc" >&6; }
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+ { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+$as_echo_n "checking for dgettext in libc... " >&6; }
+if test "${gt_cv_func_dgettext_libc+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !dgettext ("","")
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ gt_cv_func_dgettext_libc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ gt_cv_func_dgettext_libc=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
+$as_echo "$gt_cv_func_dgettext_libc" >&6; }
+ fi
+
+ if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+
+for ac_func in bind_textdomain_codeset
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+ #
+ # If we don't have everything we want, check in libintl
+ #
+ if test "$gt_cv_func_dgettext_libc" != "yes" \
+ || test "$gt_cv_func_ngettext_libc" != "yes" \
+ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+
+ { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
+$as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
+if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bindtextdomain ();
+int
+main ()
+{
+return bindtextdomain ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_intl_bindtextdomain=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_intl_bindtextdomain=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
+$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
+if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then
+ { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_intl_ngettext=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_intl_ngettext=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
+ { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
+$as_echo_n "checking for dgettext in -lintl... " >&6; }
+if test "${ac_cv_lib_intl_dgettext+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dgettext ();
+int
+main ()
+{
+return dgettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_intl_dgettext=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_intl_dgettext=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+$as_echo "$ac_cv_lib_intl_dgettext" >&6; }
+if test "x$ac_cv_lib_intl_dgettext" = x""yes; then
+ gt_cv_func_dgettext_libintl=yes
+fi
+
+fi
+
+fi
+
+
+ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+ { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+$as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
+ { $as_echo "$as_me:$LINENO: result: " >&5
+$as_echo "" >&6; }
+ { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_intl_ngettext=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_intl_ngettext=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = x""yes; then
+ { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+$as_echo_n "checking for dcgettext in -lintl... " >&6; }
+if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dcgettext ();
+int
+main ()
+{
+return dcgettext ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_intl_dcgettext=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_intl_dcgettext=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5
+$as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
+if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then
+ gt_cv_func_dgettext_libintl=yes
+ libintl_extra_libs=-liconv
+else
+ :
+fi
+
+else
+ :
+fi
+
+ fi
+
+ #
+ # If we found libintl, then check in it for bind_textdomain_codeset();
+ # we'll prefer libc if neither have bind_textdomain_codeset(),
+ # and both have dgettext and ngettext
+ #
+ if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $libintl_extra_libs"
+ unset ac_cv_func_bind_textdomain_codeset
+
+for ac_func in bind_textdomain_codeset
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ LIBS="$glib_save_LIBS"
+
+ if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+ gt_cv_func_dgettext_libc=no
+ else
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ && test "$gt_cv_func_ngettext_libc" = "yes"; then
+ gt_cv_func_dgettext_libintl=no
+ fi
+ fi
+ fi
+ fi
+
+ if test "$gt_cv_func_dgettext_libc" = "yes" \
+ || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ gt_cv_have_gettext=yes
+ fi
+
+ if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+ INTLLIBS="-lintl $libintl_extra_libs"
+ fi
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETTEXT 1
+_ACEOF
+
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGFMT" in
+ /*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != "no"; then
+ { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test "$MSGFMT" != "no"; then
+ glib_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+
+for ac_func in dcgettext
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ MSGFMT_OPTS=
+ { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5
+$as_echo_n "checking if msgfmt accepts -c... " >&6; }
+ cat >conftest.foo <<_ACEOF
+
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <foo@bar.xx>\n"
+"Language-Team: C <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+_ACEOF
+if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5
+ ($MSGFMT -c -o /dev/null conftest.foo) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+else { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+echo "$as_me: failed input was:" >&5
+sed 's/^/| /' conftest.foo >&5
+fi
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_GMSGFMT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ CATOBJEXT=.gmo
+ DATADIRNAME=share
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ case $host in
+ *-*-solaris*)
+ { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
+$as_echo_n "checking for bind_textdomain_codeset... " >&6; }
+if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char bind_textdomain_codeset (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef bind_textdomain_codeset
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind_textdomain_codeset ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
+choke me
+#endif
+
+int
+main ()
+{
+return bind_textdomain_codeset ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_func_bind_textdomain_codeset=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_func_bind_textdomain_codeset=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
+$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; }
+if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then
+ CATOBJEXT=.gmo
+ DATADIRNAME=share
+else
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
+fi
+
+ ;;
+ *)
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
+ ;;
+ esac
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$glib_save_LIBS"
+ INSTOBJEXT=.mo
+ else
+ gt_cv_have_gettext=no
+ fi
+ fi
+
+fi
+
+
+
+ if test "$gt_cv_have_gettext" = "yes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_NLS 1
+_ACEOF
+
+ fi
+
+ if test "$XGETTEXT" != ":"; then
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+
+ ac_config_commands="$ac_config_commands default-1"
+
+
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test "$gt_cv_have_gettext" = "yes"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+ NEW_LINGUAS=
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
+ done
+ LINGUAS=$NEW_LINGUAS
+ { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+ fi
+
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+
+
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+
+GETTEXT_PACKAGE=compiz
+
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
+_ACEOF
+
+
+
+if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wall" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wpointer-arith[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wstrict-prototypes[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wstrict-prototypes" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-Wnested-externs[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -Wnested-externs" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-D_FORTIFY_SOURCE=2[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" ;;
+ esac
+
+ if test "x$enable_ansi" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) CFLAGS="$CFLAGS -pedantic" ;;
+ esac
+ fi
+fi
+
+if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) CXXFLAGS="$CXXFLAGS -Wall" ;;
+ esac
+
+ case " $CXXFLAGS " in
+ *[\ \ ]-D_FORTIFY_SOURCE=2[\ \ ]*) ;;
+ *) CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2" ;;
+ esac
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are some -arch flags. Note that *ppc* also matches
+ # ppc64. This check is also rather less than ideal.
+ case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #(
+ *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+ esac
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_c_bigendian=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_c_bigendian=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then
+ # Try to guess by grepping values from an object file.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_bigendian=no
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+ fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+;; #(
+ no)
+ ;; #(
+ universal)
+
+cat >>confdefs.h <<\_ACEOF
+#define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+
+ ;; #(
+ *)
+ { { $as_echo "$as_me:$LINENO: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+$as_echo "$as_me: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+
+
+plugindir=$libdir/compiz
+
+
+
+# Check whether --with-default-plugins was given.
+if test "${with_default_plugins+set}" = set; then
+ withval=$with_default_plugins; default_plugins="$withval"
+else
+ default_plugins=""
+fi
+
+
+
+imagedir=$datadir/compiz
+
+
+metadatadir=$datadir/compiz
+
+
+COMPIZ_REQUIRES="xcomposite \
+ xfixes \
+ xdamage \
+ xrandr \
+ xinerama \
+ ice \
+ sm \
+ libxml-2.0 \
+ libxslt \
+ libstartup-notification-1.0 >= 0.7"
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for COMPIZ" >&5
+$as_echo_n "checking for COMPIZ... " >&6; }
+
+if test -n "$COMPIZ_CFLAGS"; then
+ pkg_cv_COMPIZ_CFLAGS="$COMPIZ_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$COMPIZ_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$COMPIZ_REQUIRES") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_COMPIZ_CFLAGS=`$PKG_CONFIG --cflags "$COMPIZ_REQUIRES" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$COMPIZ_LIBS"; then
+ pkg_cv_COMPIZ_LIBS="$COMPIZ_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$COMPIZ_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$COMPIZ_REQUIRES") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_COMPIZ_LIBS=`$PKG_CONFIG --libs "$COMPIZ_REQUIRES" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ COMPIZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$COMPIZ_REQUIRES" 2>&1`
+ else
+ COMPIZ_PKG_ERRORS=`$PKG_CONFIG --print-errors "$COMPIZ_REQUIRES" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$COMPIZ_PKG_ERRORS" >&5
+
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($COMPIZ_REQUIRES) were not met:
+
+$COMPIZ_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables COMPIZ_CFLAGS
+and COMPIZ_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+$as_echo "$as_me: error: Package requirements ($COMPIZ_REQUIRES) were not met:
+
+$COMPIZ_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables COMPIZ_CFLAGS
+and COMPIZ_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables COMPIZ_CFLAGS
+and COMPIZ_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables COMPIZ_CFLAGS
+and COMPIZ_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ COMPIZ_CFLAGS=$pkg_cv_COMPIZ_CFLAGS
+ COMPIZ_LIBS=$pkg_cv_COMPIZ_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+
+
+DECORATION_REQUIRES="xrender"
+
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for DECORATION" >&5
+$as_echo_n "checking for DECORATION... " >&6; }
+
+if test -n "$DECORATION_CFLAGS"; then
+ pkg_cv_DECORATION_CFLAGS="$DECORATION_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$DECORATION_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$DECORATION_REQUIRES") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DECORATION_CFLAGS=`$PKG_CONFIG --cflags "$DECORATION_REQUIRES" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$DECORATION_LIBS"; then
+ pkg_cv_DECORATION_LIBS="$DECORATION_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$DECORATION_REQUIRES\"") >&5
+ ($PKG_CONFIG --exists --print-errors "$DECORATION_REQUIRES") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DECORATION_LIBS=`$PKG_CONFIG --libs "$DECORATION_REQUIRES" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ DECORATION_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$DECORATION_REQUIRES" 2>&1`
+ else
+ DECORATION_PKG_ERRORS=`$PKG_CONFIG --print-errors "$DECORATION_REQUIRES" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$DECORATION_PKG_ERRORS" >&5
+
+ { { $as_echo "$as_me:$LINENO: error: Package requirements ($DECORATION_REQUIRES) were not met:
+
+$DECORATION_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DECORATION_CFLAGS
+and DECORATION_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+$as_echo "$as_me: error: Package requirements ($DECORATION_REQUIRES) were not met:
+
+$DECORATION_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DECORATION_CFLAGS
+and DECORATION_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DECORATION_CFLAGS
+and DECORATION_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DECORATION_CFLAGS
+and DECORATION_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ DECORATION_CFLAGS=$pkg_cv_DECORATION_CFLAGS
+ DECORATION_LIBS=$pkg_cv_DECORATION_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+
+
+if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrender >= 0.9.3\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xrender >= 0.9.3") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_xrender_0_9_3=yes
+else
+ have_xrender_0_9_3=no
+fi
+
+if test "$have_xrender_0_9_3" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XRENDER_0_9_3 1
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for GL_CFLAGS" >&5
+$as_echo_n "checking for GL_CFLAGS... " >&6; }
+
+# Check whether --with-gl-cflags was given.
+if test "${with_gl_cflags+set}" = set; then
+ withval=$with_gl_cflags; GL_CFLAGS="$withval"
+else
+ GL_CFLAGS=""
+fi
+
+
+{ $as_echo "$as_me:$LINENO: result: $GL_CFLAGS" >&5
+$as_echo "$GL_CFLAGS" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for GL_LIBS" >&5
+$as_echo_n "checking for GL_LIBS... " >&6; }
+
+# Check whether --with-gl-libs was given.
+if test "${with_gl_libs+set}" = set; then
+ withval=$with_gl_libs; GL_LIBS="$withval"
+else
+ GL_LIBS="-lGL"
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $GL_LIBS" >&5
+$as_echo "$GL_LIBS" >&6; }
+
+
+
+
+for ac_prog in xsltproc
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_XSLTPROC+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$XSLTPROC"; then
+ ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_XSLTPROC="$ac_prog"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+XSLTPROC=$ac_cv_prog_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:$LINENO: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$XSLTPROC" && break
+done
+
+if test -z "$XSLTPROC"; then
+ { { $as_echo "$as_me:$LINENO: error: Couldn't find xsltproc" >&5
+$as_echo "$as_me: error: Couldn't find xsltproc" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for LIBPNG" >&5
+$as_echo_n "checking for LIBPNG... " >&6; }
+
+if test -n "$LIBPNG_CFLAGS"; then
+ pkg_cv_LIBPNG_CFLAGS="$LIBPNG_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpng\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libpng") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBPNG_CFLAGS=`$PKG_CONFIG --cflags "libpng" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LIBPNG_LIBS"; then
+ pkg_cv_LIBPNG_LIBS="$LIBPNG_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpng\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libpng") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBPNG_LIBS=`$PKG_CONFIG --libs "libpng" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LIBPNG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpng" 2>&1`
+ else
+ LIBPNG_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpng" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LIBPNG_PKG_ERRORS" >&5
+
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (libpng) were not met:
+
+$LIBPNG_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LIBPNG_CFLAGS
+and LIBPNG_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+$as_echo "$as_me: error: Package requirements (libpng) were not met:
+
+$LIBPNG_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LIBPNG_CFLAGS
+and LIBPNG_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables LIBPNG_CFLAGS
+and LIBPNG_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables LIBPNG_CFLAGS
+and LIBPNG_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ LIBPNG_CFLAGS=$pkg_cv_LIBPNG_CFLAGS
+ LIBPNG_LIBS=$pkg_cv_LIBPNG_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+
+# Check whether --enable-glib was given.
+if test "${enable_glib+set}" = set; then
+ enableval=$enable_glib; use_glib=$enableval
+else
+ use_glib=yes
+fi
+
+
+if test "x$use_glib" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for GLIB" >&5
+$as_echo_n "checking for GLIB... " >&6; }
+
+if test -n "$GLIB_CFLAGS"; then
+ pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GLIB_LIBS"; then
+ pkg_cv_GLIB_LIBS="$GLIB_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1`
+ else
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GLIB_PKG_ERRORS" >&5
+
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (glib-2.0) were not met:
+
+$GLIB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GLIB_CFLAGS
+and GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+$as_echo "$as_me: error: Package requirements (glib-2.0) were not met:
+
+$GLIB_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GLIB_CFLAGS
+and GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GLIB_CFLAGS
+and GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GLIB_CFLAGS
+and GLIB_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
+ GLIB_LIBS=$pkg_cv_GLIB_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+fi
+
+ if test "x$use_glib" = "xyes"; then
+ USE_GLIB_TRUE=
+ USE_GLIB_FALSE='#'
+else
+ USE_GLIB_TRUE='#'
+ USE_GLIB_FALSE=
+fi
+
+if test "$use_glib" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_GLIB 1
+_ACEOF
+
+fi
+
+# Check whether --enable-gconf was given.
+if test "${enable_gconf+set}" = set; then
+ enableval=$enable_gconf; use_gconf=$enableval
+else
+ use_gconf=yes
+fi
+
+
+if test "x$use_gconf" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for GCONF" >&5
+$as_echo_n "checking for GCONF... " >&6; }
+
+if test -n "$GCONF_CFLAGS"; then
+ pkg_cv_GCONF_CFLAGS="$GCONF_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GCONF_LIBS"; then
+ pkg_cv_GCONF_LIBS="$GCONF_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gconf-2.0" 2>&1`
+ else
+ GCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors "gconf-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GCONF_PKG_ERRORS" >&5
+
+ { { $as_echo "$as_me:$LINENO: error: Package requirements (gconf-2.0) were not met:
+
+$GCONF_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+$as_echo "$as_me: error: Package requirements (gconf-2.0) were not met:
+
+$GCONF_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }; }
+else
+ GCONF_CFLAGS=$pkg_cv_GCONF_CFLAGS
+ GCONF_LIBS=$pkg_cv_GCONF_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+
+ # Extract the first word of "gconftool-2", so it can be a program name with args.
+set dummy gconftool-2; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_GCONFTOOL+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ case $GCONFTOOL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GCONFTOOL="$GCONFTOOL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GCONFTOOL" && ac_cv_path_GCONFTOOL="no"
+ ;;
+esac
+fi
+GCONFTOOL=$ac_cv_path_GCONFTOOL
+if test -n "$GCONFTOOL"; then
+ { $as_echo "$as_me:$LINENO: result: $GCONFTOOL" >&5
+$as_echo "$GCONFTOOL" >&6; }
+else
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test x"$GCONFTOOL" = xno; then
+ { { $as_echo "$as_me:$LINENO: error: gconftool-2 executable not found in your path - should be installed with GConf" >&5
+$as_echo "$as_me: error: gconftool-2 executable not found in your path - should be installed with GConf" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
+ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+ else
+ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+ fi
+
+
+# Check whether --with-gconf-source was given.
+if test "${with_gconf_source+set}" = set; then
+ withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval"
+fi
+
+
+
+ { $as_echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
+$as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; }
+
+ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+ fi
+
+
+# Check whether --with-gconf-schema-file-dir was given.
+if test "${with_gconf_schema_file_dir+set}" = set; then
+ withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval"
+fi
+
+
+
+ { $as_echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
+$as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; }
+
+ # Check whether --enable-schemas-install was given.
+if test "${enable_schemas_install+set}" = set; then
+ enableval=$enable_schemas_install; case ${enableval} in
+ yes|no) ;;
+ *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-schemas-install" >&5
+$as_echo "$as_me: error: bad value ${enableval} for --enable-schemas-install" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+fi
+
+ if test "$enable_schemas_install" != no; then
+ GCONF_SCHEMAS_INSTALL_TRUE=
+ GCONF_SCHEMAS_INSTALL_FALSE='#'
+else
+ GCONF_SCHEMAS_INSTALL_TRUE='#'
+ GCONF_SCHEMAS_INSTALL_FALSE=
+fi
+
+
+
+ if test "x$use_gconf" = "xyes"; then
+ USE_GCONF_TRUE=
+ USE_GCONF_FALSE='#'
+else
+ USE_GCONF_TRUE='#'
+ USE_GCONF_FALSE=
+fi
+
+if test "$use_gconf" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_GCONF 1
+_ACEOF
+
+fi
+
+stylesheetdir=$datadir/compiz
+
+
+# Check whether --enable-dbus was given.
+if test "${enable_dbus+set}" = set; then
+ enableval=$enable_dbus; use_dbus=$enableval
+else
+ use_dbus=yes
+fi
+
+
+if test "x$use_dbus" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for DBUS" >&5
+$as_echo_n "checking for DBUS... " >&6; }
+
+if test -n "$DBUS_CFLAGS"; then
+ pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 libxml-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 libxml-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 libxml-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$DBUS_LIBS"; then
+ pkg_cv_DBUS_LIBS="$DBUS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 libxml-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 libxml-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 libxml-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 libxml-2.0" 2>&1`
+ else
+ DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 libxml-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$DBUS_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_dbus=no
+elif test $pkg_failed = untried; then
+ use_dbus=no
+else
+ DBUS_CFLAGS=$pkg_cv_DBUS_CFLAGS
+ DBUS_LIBS=$pkg_cv_DBUS_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_dbus=yes
+fi
+fi
+
+ if test "x$use_dbus" = "xyes"; then
+ DBUS_PLUGIN_TRUE=
+ DBUS_PLUGIN_FALSE='#'
+else
+ DBUS_PLUGIN_TRUE='#'
+ DBUS_PLUGIN_FALSE=
+fi
+
+if test "$use_dbus" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_DBUS 1
+_ACEOF
+
+fi
+
+# Check whether --enable-dbus-glib was given.
+if test "${enable_dbus_glib+set}" = set; then
+ enableval=$enable_dbus_glib; use_dbus_glib=$enableval
+else
+ use_dbus_glib=yes
+fi
+
+
+if test "x$use_dbus_glib" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for DBUS_GLIB" >&5
+$as_echo_n "checking for DBUS_GLIB... " >&6; }
+
+if test -n "$DBUS_GLIB_CFLAGS"; then
+ pkg_cv_DBUS_GLIB_CFLAGS="$DBUS_GLIB_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-glib-1") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DBUS_GLIB_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$DBUS_GLIB_LIBS"; then
+ pkg_cv_DBUS_GLIB_LIBS="$DBUS_GLIB_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-glib-1") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_DBUS_GLIB_LIBS=`$PKG_CONFIG --libs "dbus-glib-1" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ DBUS_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-glib-1" 2>&1`
+ else
+ DBUS_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-glib-1" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$DBUS_GLIB_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_dbus_glib=no
+elif test $pkg_failed = untried; then
+ use_dbus_glib=no
+else
+ DBUS_GLIB_CFLAGS=$pkg_cv_DBUS_GLIB_CFLAGS
+ DBUS_GLIB_LIBS=$pkg_cv_DBUS_GLIB_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_dbus_glib=yes
+fi
+fi
+
+if test "$use_dbus" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_DBUS_GLIB 1
+_ACEOF
+
+fi
+
+# Check whether --enable-inotify was given.
+if test "${enable_inotify+set}" = set; then
+ enableval=$enable_inotify; use_inotify=$enableval
+else
+ use_inotify=yes
+fi
+
+
+if test "x$use_inotify" = "xyes"; then
+
+for ac_header in sys/inotify.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to davidr@novell.com ##
+## -------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ use_inotify=yes
+else
+ use_inotify=no
+fi
+
+done
+
+fi
+
+ if test "x$use_inotify" = "xyes"; then
+ INOTIFY_PLUGIN_TRUE=
+ INOTIFY_PLUGIN_FALSE='#'
+else
+ INOTIFY_PLUGIN_TRUE='#'
+ INOTIFY_PLUGIN_FALSE=
+fi
+
+if test "$use_inotify" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_INOTIFY 1
+_ACEOF
+
+fi
+
+# Check whether --enable-fuse was given.
+if test "${enable_fuse+set}" = set; then
+ enableval=$enable_fuse; use_fuse=$enableval
+else
+ use_fuse=yes
+fi
+
+
+if test "x$use_fuse" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for FUSE" >&5
+$as_echo_n "checking for FUSE... " >&6; }
+
+if test -n "$FUSE_CFLAGS"; then
+ pkg_cv_FUSE_CFLAGS="$FUSE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"fuse\"") >&5
+ ($PKG_CONFIG --exists --print-errors "fuse") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_FUSE_CFLAGS=`$PKG_CONFIG --cflags "fuse" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$FUSE_LIBS"; then
+ pkg_cv_FUSE_LIBS="$FUSE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"fuse\"") >&5
+ ($PKG_CONFIG --exists --print-errors "fuse") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_FUSE_LIBS=`$PKG_CONFIG --libs "fuse" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ FUSE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "fuse" 2>&1`
+ else
+ FUSE_PKG_ERRORS=`$PKG_CONFIG --print-errors "fuse" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FUSE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_fuse=no
+elif test $pkg_failed = untried; then
+ use_fuse=no
+else
+ FUSE_CFLAGS=$pkg_cv_FUSE_CFLAGS
+ FUSE_LIBS=$pkg_cv_FUSE_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_fuse=yes
+fi
+fi
+
+ if test "x$use_fuse" = "xyes"; then
+ FUSE_PLUGIN_TRUE=
+ FUSE_PLUGIN_FALSE='#'
+else
+ FUSE_PLUGIN_TRUE='#'
+ FUSE_PLUGIN_FALSE=
+fi
+
+if test "$use_fuse" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_FUSE 1
+_ACEOF
+
+fi
+
+# Check whether --enable-annotate was given.
+if test "${enable_annotate+set}" = set; then
+ enableval=$enable_annotate; use_annotate=$enableval
+else
+ use_annotate=yes
+fi
+
+
+if test "x$use_annotate" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for ANNOTATE" >&5
+$as_echo_n "checking for ANNOTATE... " >&6; }
+
+if test -n "$ANNOTATE_CFLAGS"; then
+ pkg_cv_ANNOTATE_CFLAGS="$ANNOTATE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"cairo-xlib-xrender\"") >&5
+ ($PKG_CONFIG --exists --print-errors "cairo-xlib-xrender") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_ANNOTATE_CFLAGS=`$PKG_CONFIG --cflags "cairo-xlib-xrender" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$ANNOTATE_LIBS"; then
+ pkg_cv_ANNOTATE_LIBS="$ANNOTATE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"cairo-xlib-xrender\"") >&5
+ ($PKG_CONFIG --exists --print-errors "cairo-xlib-xrender") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_ANNOTATE_LIBS=`$PKG_CONFIG --libs "cairo-xlib-xrender" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ ANNOTATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "cairo-xlib-xrender" 2>&1`
+ else
+ ANNOTATE_PKG_ERRORS=`$PKG_CONFIG --print-errors "cairo-xlib-xrender" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ANNOTATE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_annotate=no
+elif test $pkg_failed = untried; then
+ use_annotate=no
+else
+ ANNOTATE_CFLAGS=$pkg_cv_ANNOTATE_CFLAGS
+ ANNOTATE_LIBS=$pkg_cv_ANNOTATE_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_annotate=yes
+fi
+fi
+
+ if test "x$use_annotate" = "xyes"; then
+ ANNOTATE_PLUGIN_TRUE=
+ ANNOTATE_PLUGIN_FALSE='#'
+else
+ ANNOTATE_PLUGIN_TRUE='#'
+ ANNOTATE_PLUGIN_FALSE=
+fi
+
+if test "$use_annotate" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_ANNOTATE 1
+_ACEOF
+
+fi
+
+# Check whether --enable-librsvg was given.
+if test "${enable_librsvg+set}" = set; then
+ enableval=$enable_librsvg; use_librsvg=$enableval
+else
+ use_librsvg=yes
+fi
+
+
+if test "x$use_librsvg" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for LIBRSVG" >&5
+$as_echo_n "checking for LIBRSVG... " >&6; }
+
+if test -n "$LIBRSVG_CFLAGS"; then
+ pkg_cv_LIBRSVG_CFLAGS="$LIBRSVG_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.0 librsvg-2.0 >= 2.14.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "cairo >= 1.0 librsvg-2.0 >= 2.14.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBRSVG_CFLAGS=`$PKG_CONFIG --cflags "cairo >= 1.0 librsvg-2.0 >= 2.14.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LIBRSVG_LIBS"; then
+ pkg_cv_LIBRSVG_LIBS="$LIBRSVG_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.0 librsvg-2.0 >= 2.14.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "cairo >= 1.0 librsvg-2.0 >= 2.14.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_LIBRSVG_LIBS=`$PKG_CONFIG --libs "cairo >= 1.0 librsvg-2.0 >= 2.14.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "cairo >= 1.0 librsvg-2.0 >= 2.14.0" 2>&1`
+ else
+ LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --print-errors "cairo >= 1.0 librsvg-2.0 >= 2.14.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LIBRSVG_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_librsvg=no
+elif test $pkg_failed = untried; then
+ use_librsvg=no
+else
+ LIBRSVG_CFLAGS=$pkg_cv_LIBRSVG_CFLAGS
+ LIBRSVG_LIBS=$pkg_cv_LIBRSVG_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_librsvg=yes
+fi
+fi
+
+ if test "x$use_librsvg" = "xyes"; then
+ USE_LIBRSVG_TRUE=
+ USE_LIBRSVG_FALSE='#'
+else
+ USE_LIBRSVG_TRUE='#'
+ USE_LIBRSVG_FALSE=
+fi
+
+if test "$use_librsvg" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_LIBRSVG 1
+_ACEOF
+
+fi
+
+# Check whether --enable-gtk was given.
+if test "${enable_gtk+set}" = set; then
+ enableval=$enable_gtk; use_gtk=$enableval
+else
+ use_gtk=yes
+fi
+
+
+# Check whether --enable-metacity was given.
+if test "${enable_metacity+set}" = set; then
+ enableval=$enable_metacity; use_metacity=$enableval
+else
+ use_metacity=yes
+fi
+
+
+# Check whether --enable-gnome was given.
+if test "${enable_gnome+set}" = set; then
+ enableval=$enable_gnome; use_gnome=$enableval
+else
+ use_gnome=yes
+fi
+
+
+# Check whether --enable-gnome-keybindings was given.
+if test "${enable_gnome_keybindings+set}" = set; then
+ enableval=$enable_gnome_keybindings; use_gnome_keybindings=$enableval
+else
+ use_gnome_keybindings=yes
+fi
+
+
+if test "x$use_gtk" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for GTK_WINDOW_DECORATOR" >&5
+$as_echo_n "checking for GTK_WINDOW_DECORATOR... " >&6; }
+
+if test -n "$GTK_WINDOW_DECORATOR_CFLAGS"; then
+ pkg_cv_GTK_WINDOW_DECORATOR_CFLAGS="$GTK_WINDOW_DECORATOR_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrender >= 0.8.4 \\
+ gtk+-2.0 >= 2.8.0 \\
+ libwnck-1.0 \\
+ pangocairo\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GTK_WINDOW_DECORATOR_CFLAGS=`$PKG_CONFIG --cflags "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GTK_WINDOW_DECORATOR_LIBS"; then
+ pkg_cv_GTK_WINDOW_DECORATOR_LIBS="$GTK_WINDOW_DECORATOR_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrender >= 0.8.4 \\
+ gtk+-2.0 >= 2.8.0 \\
+ libwnck-1.0 \\
+ pangocairo\"") >&5
+ ($PKG_CONFIG --exists --print-errors "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GTK_WINDOW_DECORATOR_LIBS=`$PKG_CONFIG --libs "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GTK_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo" 2>&1`
+ else
+ GTK_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GTK_WINDOW_DECORATOR_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_gtk=no
+elif test $pkg_failed = untried; then
+ use_gtk=no
+else
+ GTK_WINDOW_DECORATOR_CFLAGS=$pkg_cv_GTK_WINDOW_DECORATOR_CFLAGS
+ GTK_WINDOW_DECORATOR_LIBS=$pkg_cv_GTK_WINDOW_DECORATOR_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_gtk=yes
+fi
+ if test "x$use_gtk" = "xyes"; then
+ save_CFLAGS="$CFLAGS"
+ save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_WINDOW_DECORATOR_CFLAGS"
+ LIBS="$LIBS $GTK_WINDOW_DECORATOR_LIBS"
+
+for ac_func in wnck_window_has_name
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libwnck-1.0 >= 2.18.1\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libwnck-1.0 >= 2.18.1") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_libwnck_2_18_1=yes
+else
+ have_libwnck_2_18_1=no
+fi
+
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libwnck-1.0 >= 2.19.4\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libwnck-1.0 >= 2.19.4") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_libwnck_2_19_4=yes
+else
+ have_libwnck_2_19_4=no
+fi
+
+ if test "x$use_metacity" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for METACITY" >&5
+$as_echo_n "checking for METACITY... " >&6; }
+
+if test -n "$METACITY_CFLAGS"; then
+ pkg_cv_METACITY_CFLAGS="$METACITY_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libmetacity-private\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libmetacity-private") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_METACITY_CFLAGS=`$PKG_CONFIG --cflags "libmetacity-private" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$METACITY_LIBS"; then
+ pkg_cv_METACITY_LIBS="$METACITY_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libmetacity-private\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libmetacity-private") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_METACITY_LIBS=`$PKG_CONFIG --libs "libmetacity-private" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ METACITY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libmetacity-private" 2>&1`
+ else
+ METACITY_PKG_ERRORS=`$PKG_CONFIG --print-errors "libmetacity-private" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$METACITY_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_metacity=no
+elif test $pkg_failed = untried; then
+ use_metacity=no
+else
+ METACITY_CFLAGS=$pkg_cv_METACITY_CFLAGS
+ METACITY_LIBS=$pkg_cv_METACITY_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_metacity=yes
+fi
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libmetacity-private >= 2.15.21\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libmetacity-private >= 2.15.21") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_metacity_2_15_21=yes
+else
+ have_metacity_2_15_21=no
+fi
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libmetacity-private >= 2.17.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libmetacity-private >= 2.17.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_metacity_2_17_0=yes
+else
+ have_metacity_2_17_0=no
+fi
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libmetacity-private >= 2.23.2\"") >&5
+ ($PKG_CONFIG --exists --print-errors "libmetacity-private >= 2.23.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ have_metacity_2_23_2=yes
+else
+ have_metacity_2_23_2=no
+fi
+ fi
+
+ if test "x$use_gnome" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for GNOME_WINDOW_SETTINGS" >&5
+$as_echo_n "checking for GNOME_WINDOW_SETTINGS... " >&6; }
+
+if test -n "$GNOME_WINDOW_SETTINGS_CFLAGS"; then
+ pkg_cv_GNOME_WINDOW_SETTINGS_CFLAGS="$GNOME_WINDOW_SETTINGS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-window-settings-2.0 gnome-desktop-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gnome-window-settings-2.0 gnome-desktop-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_WINDOW_SETTINGS_CFLAGS=`$PKG_CONFIG --cflags "gnome-window-settings-2.0 gnome-desktop-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GNOME_WINDOW_SETTINGS_LIBS"; then
+ pkg_cv_GNOME_WINDOW_SETTINGS_LIBS="$GNOME_WINDOW_SETTINGS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-window-settings-2.0 gnome-desktop-2.0\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gnome-window-settings-2.0 gnome-desktop-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_WINDOW_SETTINGS_LIBS=`$PKG_CONFIG --libs "gnome-window-settings-2.0 gnome-desktop-2.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GNOME_WINDOW_SETTINGS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-window-settings-2.0 gnome-desktop-2.0" 2>&1`
+ else
+ GNOME_WINDOW_SETTINGS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-window-settings-2.0 gnome-desktop-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GNOME_WINDOW_SETTINGS_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_gnome=no
+elif test $pkg_failed = untried; then
+ use_gnome=no
+else
+ GNOME_WINDOW_SETTINGS_CFLAGS=$pkg_cv_GNOME_WINDOW_SETTINGS_CFLAGS
+ GNOME_WINDOW_SETTINGS_LIBS=$pkg_cv_GNOME_WINDOW_SETTINGS_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_gnome=yes
+fi
+ fi
+
+ if test "x$use_gnome_keybindings" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for GNOME_KEY_BINDINGS" >&5
+$as_echo_n "checking for GNOME_KEY_BINDINGS... " >&6; }
+
+if test -n "$GNOME_KEY_BINDINGS_CFLAGS"; then
+ pkg_cv_GNOME_KEY_BINDINGS_CFLAGS="$GNOME_KEY_BINDINGS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-keybindings\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gnome-keybindings") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_KEY_BINDINGS_CFLAGS=`$PKG_CONFIG --cflags "gnome-keybindings" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GNOME_KEY_BINDINGS_LIBS"; then
+ pkg_cv_GNOME_KEY_BINDINGS_LIBS="$GNOME_KEY_BINDINGS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-keybindings\"") >&5
+ ($PKG_CONFIG --exists --print-errors "gnome-keybindings") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_GNOME_KEY_BINDINGS_LIBS=`$PKG_CONFIG --libs "gnome-keybindings" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GNOME_KEY_BINDINGS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-keybindings" 2>&1`
+ else
+ GNOME_KEY_BINDINGS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-keybindings" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GNOME_KEY_BINDINGS_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_gnome_keybindings=no
+elif test $pkg_failed = untried; then
+ use_gnome_keybindings=no
+else
+ GNOME_KEY_BINDINGS_CFLAGS=$pkg_cv_GNOME_KEY_BINDINGS_CFLAGS
+ GNOME_KEY_BINDINGS_LIBS=$pkg_cv_GNOME_KEY_BINDINGS_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_gnome_keybindings=yes
+fi
+ fi
+
+ windowsettingsdatadir=`pkg-config --variable=prefix gnome-window-settings-2.0`/share
+ windowsettingslibdir=`pkg-config --variable=libdir gnome-window-settings-2.0` keybindingsdir=`pkg-config --variable=keysdir gnome-keybindings`
+ else
+ use_metacity="no"
+ use_gnome="no"
+ fi
+else
+ use_metacity="no"
+ use_gnome="no"
+fi
+
+
+
+
+
+ if test "x$use_gtk" = "xyes"; then
+ USE_GTK_TRUE=
+ USE_GTK_FALSE='#'
+else
+ USE_GTK_TRUE='#'
+ USE_GTK_FALSE=
+fi
+
+if test "$use_gtk" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_GTK 1
+_ACEOF
+
+ if test "$have_libwnck_2_18_1" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBWNCK_2_18_1 1
+_ACEOF
+
+ fi
+ if test "$have_libwnck_2_19_4" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBWNCK_2_19_4 1
+_ACEOF
+
+ fi
+fi
+
+ if test "x$use_metacity" = "xyes"; then
+ USE_METACITY_TRUE=
+ USE_METACITY_FALSE='#'
+else
+ USE_METACITY_TRUE='#'
+ USE_METACITY_FALSE=
+fi
+
+if test "$use_metacity" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_METACITY 1
+_ACEOF
+
+ if test "$have_metacity_2_15_21" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_METACITY_2_15_21 1
+_ACEOF
+
+ fi
+ if test "$have_metacity_2_17_0" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_METACITY_2_17_0 1
+_ACEOF
+
+ fi
+ if test "$have_metacity_2_23_2" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_METACITY_2_23_2 1
+_ACEOF
+
+ fi
+fi
+
+ if test "x$use_gnome" = "xyes"; then
+ USE_GNOME_TRUE=
+ USE_GNOME_FALSE='#'
+else
+ USE_GNOME_TRUE='#'
+ USE_GNOME_FALSE=
+fi
+
+if test "$use_gnome" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_GNOME 1
+_ACEOF
+
+fi
+
+ if test "x$use_gnome_keybindings" = "xyes"; then
+ USE_GNOME_KEYBINDINGS_TRUE=
+ USE_GNOME_KEYBINDINGS_FALSE='#'
+else
+ USE_GNOME_KEYBINDINGS_TRUE='#'
+ USE_GNOME_KEYBINDINGS_FALSE=
+fi
+
+if test "$use_gnome_keybindings" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_GNOME_KEYBINDINGS 1
+_ACEOF
+
+fi
+
+# Check whether --enable-kde was given.
+if test "${enable_kde+set}" = set; then
+ enableval=$enable_kde; use_kde=$enableval
+else
+ use_kde=yes
+fi
+
+
+if test "x$use_kde" = "xyes"; then
+ qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include"
+ qt_libdirs="$QTLIB /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib"
+
+ if test -n "$QTDIR" ; then
+ qt_incdirs="$QTDIR/include $qt_incdirs"
+ qt_libdirs="$QTDIR/lib $qt_libdirs"
+ fi
+
+ qt_test_include="qstyle.h"
+ qt_test_library="libqt-mt.so"
+
+ { $as_echo "$as_me:$LINENO: checking for Qt headers" >&5
+$as_echo_n "checking for Qt headers... " >&6; }
+ qt_incdir="no"
+ for it in $qt_incdirs ; do
+ if test -r "$it/$qt_test_include" ; then
+ qt_incdir="$it"
+ break
+ fi
+ done
+ { $as_echo "$as_me:$LINENO: result: $qt_incdir" >&5
+$as_echo "$qt_incdir" >&6; }
+
+ { $as_echo "$as_me:$LINENO: checking for Qt libraries" >&5
+$as_echo_n "checking for Qt libraries... " >&6; }
+ qt_libdir="no"
+ for qt_check in $qt_libdirs ; do
+ if test -r "$qt_check/$qt_test_library" ; then
+ qt_libdir="$qt_check"
+ break
+ fi
+ done
+ { $as_echo "$as_me:$LINENO: result: $qt_libdir" >&5
+$as_echo "$qt_libdir" >&6; }
+
+ use_kde=no;
+ if test "x$qt_libdir" != "xno" ; then
+ if test "x$qt_incdir" != "xno" ; then
+ use_kde=yes;
+ fi
+ fi
+
+ QT_CXXFLAGS="-I$qt_incdir"
+ QT_LIBS="-L$qt_libdir"
+
+ if test "x$use_kde" = xyes; then
+ kdedir=`kde-config --prefix --expandvars 2>/dev/null`
+ kdelibs=`kde-config --install lib --expandvars 2>/dev/null`
+ kdeincs=`kde-config --install include --expandvars 2>/dev/null`
+ if test -d "$kdelibs"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for KDE_WINDOW_DECORATOR" >&5
+$as_echo_n "checking for KDE_WINDOW_DECORATOR... " >&6; }
+
+if test -n "$KDE_WINDOW_DECORATOR_CFLAGS"; then
+ pkg_cv_KDE_WINDOW_DECORATOR_CFLAGS="$KDE_WINDOW_DECORATOR_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 xdamage xcomposite\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 xdamage xcomposite") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_KDE_WINDOW_DECORATOR_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 xdamage xcomposite" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$KDE_WINDOW_DECORATOR_LIBS"; then
+ pkg_cv_KDE_WINDOW_DECORATOR_LIBS="$KDE_WINDOW_DECORATOR_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 xdamage xcomposite\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 xdamage xcomposite") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_KDE_WINDOW_DECORATOR_LIBS=`$PKG_CONFIG --libs "dbus-1 xdamage xcomposite" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ KDE_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 xdamage xcomposite" 2>&1`
+ else
+ KDE_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 xdamage xcomposite" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$KDE_WINDOW_DECORATOR_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_kde=no
+elif test $pkg_failed = untried; then
+ use_kde=no
+else
+ KDE_WINDOW_DECORATOR_CFLAGS=$pkg_cv_KDE_WINDOW_DECORATOR_CFLAGS
+ KDE_WINDOW_DECORATOR_LIBS=$pkg_cv_KDE_WINDOW_DECORATOR_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_kde=yes
+fi
+
+ KDE_CFLAGS="$QT_CXXFLAGS -I$kdeincs"
+ KDE_LIBS="$QT_LIBS -L$kdelibs -lkdecore -lkdecorations -ldbus-qt-1"
+
+ QT_MOC=$QTDIR/bin/moc
+ DCOPIDL=$kdedir/bin/dcopidl
+ DCOPIDL2CPP=$kdedir/bin/dcopidl2cpp
+ else
+ use_kde=no;
+ fi
+ fi
+fi
+
+ if test "x$use_kde" = "xyes"; then
+ USE_KDE_TRUE=
+ USE_KDE_FALSE='#'
+else
+ USE_KDE_TRUE='#'
+ USE_KDE_FALSE=
+fi
+
+if test "$use_kde" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_KDE 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+# Check whether --enable-kde4 was given.
+if test "${enable_kde4+set}" = set; then
+ enableval=$enable_kde4; use_kde4=$enableval
+else
+ use_kde4=yes
+fi
+
+
+if test "x$use_kde4" = "xyes"; then
+
+ kde4dir=`kde4-config --prefix --expandvars 2>/dev/null`
+ kde4libs=`kde4-config --install lib --expandvars 2>/dev/null`
+ kde4incs=`kde4-config --install include --expandvars 2>/dev/null`
+
+ kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/framesvg.h"
+
+ { $as_echo "$as_me:$LINENO: checking for KWin headers" >&5
+$as_echo_n "checking for KWin headers... " >&6; }
+
+ kde4_notfound=""
+ for file in $kde4_test_includes ; do
+ status=" $file"
+ for it in $kde4incs ; do
+ if test -r "$it/$file" ; then
+ status=""
+ break;
+ fi
+ done
+ kde4_notfound="$kde4_notfound$status"
+ done
+ if test -z "$kde4_notfound" ; then
+ kde4_notfound="yes"
+ else
+ kde4_notfound="$kde4_notfound not found"
+ kde4libs=""
+ fi
+
+ { $as_echo "$as_me:$LINENO: result: $kde4_notfound" >&5
+$as_echo "$kde4_notfound" >&6; }
+
+ if test -d "$kde4libs"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:$LINENO: checking for KDE4_WINDOW_DECORATOR" >&5
+$as_echo_n "checking for KDE4_WINDOW_DECORATOR... " >&6; }
+
+if test -n "$KDE4_WINDOW_DECORATOR_CFLAGS"; then
+ pkg_cv_KDE4_WINDOW_DECORATOR_CFLAGS="$KDE4_WINDOW_DECORATOR_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_KDE4_WINDOW_DECORATOR_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$KDE4_WINDOW_DECORATOR_LIBS"; then
+ pkg_cv_KDE4_WINDOW_DECORATOR_LIBS="$KDE4_WINDOW_DECORATOR_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus\"") >&5
+ ($PKG_CONFIG --exists --print-errors "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_KDE4_WINDOW_DECORATOR_LIBS=`$PKG_CONFIG --libs "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ KDE4_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus" 2>&1`
+ else
+ KDE4_WINDOW_DECORATOR_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$KDE4_WINDOW_DECORATOR_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+ use_kde4=no
+elif test $pkg_failed = untried; then
+ use_kde4=no
+else
+ KDE4_WINDOW_DECORATOR_CFLAGS=$pkg_cv_KDE4_WINDOW_DECORATOR_CFLAGS
+ KDE4_WINDOW_DECORATOR_LIBS=$pkg_cv_KDE4_WINDOW_DECORATOR_LIBS
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+ use_kde4=yes
+fi
+
+ KDE4_CFLAGS="-I$kde4incs"
+ KDE4_LIBS="-L$kde4libs -lkdecore -lkdecorations -lplasma"
+
+ QT4_MOC=`pkg-config QtGui --variable=moc_location`
+ QDBUSXML2CPP=`pkg-config QtGui --variable=exec_prefix`"/bin/qdbusxml2cpp"
+ else
+ use_kde4=no;
+ fi
+fi
+
+ if test "x$use_kde4" = "xyes"; then
+ USE_KDE4_TRUE=
+ USE_KDE4_FALSE='#'
+else
+ USE_KDE4_TRUE='#'
+ USE_KDE4_FALSE=
+fi
+
+if test "$use_kde4" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_KDE4 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+# Check whether --enable-kconfig was given.
+if test "${enable_kconfig+set}" = set; then
+ enableval=$enable_kconfig; use_kconfig=$enableval
+else
+ use_kconfig=yes
+fi
+
+
+if test "x$use_kde" != "xyes"; then
+ use_kconfig=no;
+fi
+
+if test "x$use_kconfig" = "xyes"; then
+ KCONFIG_CFLAGS=$KDE_CFLAGS
+ KCONFIG_LIBS=$KDE_LIBS
+ KDE_KCFG_DIR=`kde-config --install kcfg --expandvars 2>/dev/null`
+ KDE_KCONFIG_DIR=`kde-config --install config --expandvars 2>/dev/null`
+fi
+
+ if test "x$use_kconfig" = "xyes"; then
+ USE_KCONFIG_TRUE=
+ USE_KCONFIG_FALSE='#'
+else
+ USE_KCONFIG_TRUE='#'
+ USE_KCONFIG_FALSE=
+fi
+
+if test "$use_kconfig" = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_KCONFIG 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+kcfgdir=$KDE_KCFG_DIR
+
+
+
+# Check whether --with-max-desktops was given.
+if test "${with_max_desktops+set}" = set; then
+ withval=$with_max_desktops; MAX_DESKTOPS=$withval
+else
+ MAX_DESKTOPS=36
+fi
+
+
+if test -n "$MAX_DESKTOPS"; then
+
+cat >>confdefs.h <<_ACEOF
+#define MAX_DESKTOPS $MAX_DESKTOPS
+_ACEOF
+
+fi
+
+ac_config_commands="$ac_config_commands include/compiz-common.h"
+
+
+ac_config_files="$ac_config_files compiz.pc compiz-cube.pc compiz-scale.pc compiz-gconf.pc compiz-kconfig.pc Makefile src/Makefile libdecoration/Makefile libdecoration/libdecoration.pc include/Makefile plugins/Makefile images/Makefile gtk/Makefile gtk/window-decorator/Makefile gtk/gnome/Makefile kde/Makefile kde/window-decorator/Makefile kde/window-decorator-kde4/Makefile po/Makefile.in metadata/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) $as_unset $ac_var ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ ac_config_commands="$ac_config_commands po/stamp-it"
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+if test -z "${USE_GLIB_TRUE}" && test -z "${USE_GLIB_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GLIB\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_GLIB\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_GCONF_TRUE}" && test -z "${USE_GCONF_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GCONF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_GCONF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${DBUS_PLUGIN_TRUE}" && test -z "${DBUS_PLUGIN_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"DBUS_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"DBUS_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${INOTIFY_PLUGIN_TRUE}" && test -z "${INOTIFY_PLUGIN_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"INOTIFY_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"INOTIFY_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${FUSE_PLUGIN_TRUE}" && test -z "${FUSE_PLUGIN_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"FUSE_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"FUSE_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ANNOTATE_PLUGIN_TRUE}" && test -z "${ANNOTATE_PLUGIN_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"ANNOTATE_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"ANNOTATE_PLUGIN\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_LIBRSVG_TRUE}" && test -z "${USE_LIBRSVG_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_LIBRSVG\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_LIBRSVG\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_GTK_TRUE}" && test -z "${USE_GTK_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GTK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_GTK\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_METACITY_TRUE}" && test -z "${USE_METACITY_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_METACITY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_METACITY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_GNOME_TRUE}" && test -z "${USE_GNOME_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GNOME\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_GNOME\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_GNOME_KEYBINDINGS_TRUE}" && test -z "${USE_GNOME_KEYBINDINGS_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GNOME_KEYBINDINGS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_GNOME_KEYBINDINGS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_KDE_TRUE}" && test -z "${USE_KDE_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_KDE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_KDE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_KDE4_TRUE}" && test -z "${USE_KDE4_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_KDE4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_KDE4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_KCONFIG_TRUE}" && test -z "${USE_KCONFIG_FALSE}"; then
+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_KCONFIG\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"USE_KCONFIG\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line after each line using $LINENO; the second 'sed'
+ # does the real work. The second script uses 'N' to pair each
+ # line-number line with the line containing $LINENO, and appends
+ # trailing '-' during substitution so that $LINENO is not a special
+ # case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # scripts with optimization help from Paolo Bonzini. Blame Lee
+ # E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+ case `echo 'x\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ *) ECHO_C='\c';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by compiz $as_me 0.8.2, which was
+generated by GNU Autoconf 2.63. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTION]... [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+compiz config.status 0.8.2
+configured by $0, generated by GNU Autoconf 2.63,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ { $as_echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { $as_echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+ COMPIZ_VERSION_MAJOR=$COMPIZ_VERSION_MAJOR
+ COMPIZ_VERSION_MINOR=$COMPIZ_VERSION_MINOR
+ COMPIZ_VERSION_MICRO=$COMPIZ_VERSION_MICRO
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "include/compiz-common.h") CONFIG_COMMANDS="$CONFIG_COMMANDS include/compiz-common.h" ;;
+ "compiz.pc") CONFIG_FILES="$CONFIG_FILES compiz.pc" ;;
+ "compiz-cube.pc") CONFIG_FILES="$CONFIG_FILES compiz-cube.pc" ;;
+ "compiz-scale.pc") CONFIG_FILES="$CONFIG_FILES compiz-scale.pc" ;;
+ "compiz-gconf.pc") CONFIG_FILES="$CONFIG_FILES compiz-gconf.pc" ;;
+ "compiz-kconfig.pc") CONFIG_FILES="$CONFIG_FILES compiz-kconfig.pc" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "libdecoration/Makefile") CONFIG_FILES="$CONFIG_FILES libdecoration/Makefile" ;;
+ "libdecoration/libdecoration.pc") CONFIG_FILES="$CONFIG_FILES libdecoration/libdecoration.pc" ;;
+ "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
+ "images/Makefile") CONFIG_FILES="$CONFIG_FILES images/Makefile" ;;
+ "gtk/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/Makefile" ;;
+ "gtk/window-decorator/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/window-decorator/Makefile" ;;
+ "gtk/gnome/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/gnome/Makefile" ;;
+ "kde/Makefile") CONFIG_FILES="$CONFIG_FILES kde/Makefile" ;;
+ "kde/window-decorator/Makefile") CONFIG_FILES="$CONFIG_FILES kde/window-decorator/Makefile" ;;
+ "kde/window-decorator-kde4/Makefile") CONFIG_FILES="$CONFIG_FILES kde/window-decorator-kde4/Makefile" ;;
+ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+ "metadata/Makefile") CONFIG_FILES="$CONFIG_FILES metadata/Makefile" ;;
+ "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
+
+ *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} ||
+{
+ $as_echo "$as_me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=' '
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+ { (exit 1); exit 1; }; }
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
+ { (exit 1); exit 1; }; }
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+ { (exit 1); exit 1; }; };;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ ac_file_inputs="$ac_file_inputs '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { as_dir="$ac_dir"
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+ { (exit 1); exit 1; }; }; }
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+ { (exit 1); exit 1; }; }
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+ { (exit 1); exit 1; }; }
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
+$as_echo "$as_me: error: could not create -" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { as_dir=$dirpart/$fdir
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+ { (exit 1); exit 1; }; }; }
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+ ;;
+ "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac ;;
+ "include/compiz-common.h":C)
+ commonfile=include/compiz-common.h
+ outfile=$commonfile.tmp
+ { $as_echo "$as_me:$LINENO: creating $commonfile" >&5
+$as_echo "$as_me: creating $commonfile" >&6;}
+ cat > $outfile <<_EOF
+#ifndef COMPIZ_COMMON_H
+#define COMPIZ_COMMON_H
+
+#ifdef __cplusplus
+# define COMPIZ_BEGIN_DECLS extern "C" {
+# define COMPIZ_END_DECLS }
+#else
+# define COMPIZ_BEGIN_DECLS
+# define COMPIZ_END_DECLS
+#endif
+
+#define COMPIZ_VERSION_MAJOR $COMPIZ_VERSION_MAJOR
+#define COMPIZ_VERSION_MINOR $COMPIZ_VERSION_MINOR
+#define COMPIZ_VERSION_MICRO $COMPIZ_VERSION_MICRO
+
+#define COMPIZ_VERSION_STRING "$COMPIZ_VERSION_MAJOR.$COMPIZ_VERSION_MINOR.$COMPIZ_VERSION_MICRO"
+
+_EOF
+ echo '#endif' >> $outfile
+
+ if cmp -s $outfile $commonfile; then
+ { $as_echo "$as_me:$LINENO: $commonfile is unchanged" >&5
+$as_echo "$as_me: $commonfile is unchanged" >&6;}
+ rm -f $outfile
+ else
+ mv $outfile $commonfile
+ fi
+ ;;
+ "po/stamp-it":C)
+ if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" ; then
+ { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5
+$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp"
+ >"po/stamp-it.tmp"
+ sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES"
+
+ sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r po/POTFILES
+ }
+ ' "po/Makefile.in" >"po/Makefile"
+ rm -f "po/Makefile.tmp"
+ mv "po/stamp-it.tmp" "po/stamp-it"
+ ;;
+
+ esac
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+echo ""
+echo "the following optional plugins will be compiled:"
+echo " glib: $use_glib"
+echo " gconf: $use_gconf"
+echo " kconfig: $use_kconfig"
+echo " dbus: $use_dbus"
+echo " annotate: $use_annotate"
+echo " svg: $use_librsvg"
+echo " inotify: $use_inotify"
+echo " fuse: $use_fuse"
+echo ""
+echo "and the following optional features will be compiled:"
+echo " gtk: $use_gtk"
+echo " metacity: $use_metacity"
+echo " gnome: $use_gnome"
+echo " kde: $use_kde"
+echo " kde4: $use_kde4"
+echo ""
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..0d3cb7c
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,654 @@
+AC_PREREQ(2.57)
+
+dnl compiz package version number
+dnl An odd micro number indicates in-progress development.
+dnl An even micro number indicates a released version.
+m4_define(compiz_version_major, 0)
+m4_define(compiz_version_minor, 8)
+m4_define(compiz_version_micro, 2)
+
+AC_INIT([compiz],
+ [compiz_version_major().compiz_version_minor().compiz_version_micro()],
+ [davidr@novell.com])
+
+COMPIZ_VERSION_MAJOR=compiz_version_major()
+COMPIZ_VERSION_MINOR=compiz_version_minor()
+COMPIZ_VERSION_MICRO=compiz_version_micro()
+AC_SUBST(COMPIZ_VERSION_MAJOR)
+AC_SUBST(COMPIZ_VERSION_MINOR)
+AC_SUBST(COMPIZ_VERSION_MICRO)
+
+AM_INIT_AUTOMAKE([1.7])
+AC_CONFIG_HEADER([config.h])
+AC_PROG_INTLTOOL([0.23])
+AM_MAINTAINER_MODE
+
+dnl decorator interface version
+AC_DEFINE(DECOR_INTERFACE_VERSION, 20080529, [Decorator interface version])
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+AC_HEADER_STDC
+AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h])
+
+ALL_LINGUAS="af ar bg bn bn_IN bs ca cs cy da de el en_GB en_US es eu et fi fr gl gu he hi hr hu id it ja ka km ko lo lt mk mr nb nl or pa pl pt pt_BR ro ru sk sl sr sv ta tr uk vi xh zh_CN zh_TW zu"
+AC_SUBST(ALL_LINGUAS)
+AM_GLIB_GNU_GETTEXT
+GETTEXT_PACKAGE=compiz
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
+AC_SUBST(GETTEXT_PACKAGE)
+
+if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wall[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wall" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wpointer-arith[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wpointer-arith" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wstrict-prototypes[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wstrict-prototypes" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wmissing-prototypes[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wmissing-declarations[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-Wnested-externs[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -Wnested-externs" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-D_FORTIFY_SOURCE=2[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" ;;
+ esac
+
+ if test "x$enable_ansi" = "xyes"; then
+ case " $CFLAGS " in
+ *[[\ \ ]]-ansi[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[[\ \ ]]-pedantic[[\ \ ]]*) ;;
+ *) CFLAGS="$CFLAGS -pedantic" ;;
+ esac
+ fi
+fi
+
+if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[[\ \ ]]-Wall[[\ \ ]]*) ;;
+ *) CXXFLAGS="$CXXFLAGS -Wall" ;;
+ esac
+
+ case " $CXXFLAGS " in
+ *[[\ \ ]]-D_FORTIFY_SOURCE=2[[\ \ ]]*) ;;
+ *) CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2" ;;
+ esac
+fi
+
+AC_C_BIGENDIAN
+
+plugindir=$libdir/compiz
+AC_SUBST(plugindir)
+
+AC_ARG_WITH(default-plugins, [ --with-default-plugins=PLUGINS ],
+ [default_plugins="$withval"],
+ [default_plugins=""])
+AC_SUBST(default_plugins)
+
+imagedir=$datadir/compiz
+AC_SUBST(imagedir)
+
+metadatadir=$datadir/compiz
+AC_SUBST(metadatadir)
+
+COMPIZ_REQUIRES="xcomposite \
+ xfixes \
+ xdamage \
+ xrandr \
+ xinerama \
+ ice \
+ sm \
+ libxml-2.0 \
+ libxslt \
+ libstartup-notification-1.0 >= 0.7"
+
+PKG_CHECK_MODULES(COMPIZ, $COMPIZ_REQUIRES)
+AC_SUBST(COMPIZ_REQUIRES)
+
+DECORATION_REQUIRES="xrender"
+
+PKG_CHECK_MODULES(DECORATION, $DECORATION_REQUIRES)
+AC_SUBST(DECORATION_REQUIRES)
+
+PKG_CHECK_EXISTS(xrender >= 0.9.3,
+ [have_xrender_0_9_3=yes], [have_xrender_0_9_3=no])
+
+if test "$have_xrender_0_9_3" = yes; then
+ AC_DEFINE(HAVE_XRENDER_0_9_3, 1,
+ [Define to 1 if xrender version >= 0.9.3])
+fi
+
+AC_MSG_CHECKING(for GL_CFLAGS)
+AC_ARG_WITH(gl-cflags, [ --with-gl-cflags=CFLAGS ],
+ [GL_CFLAGS="$withval"],
+ [GL_CFLAGS=""])
+
+AC_MSG_RESULT($GL_CFLAGS)
+AC_MSG_CHECKING(for GL_LIBS)
+AC_ARG_WITH(gl-libs, [ --with-gl-libs=LIBS ],
+ [GL_LIBS="$withval"],
+ [GL_LIBS="-lGL"])
+AC_MSG_RESULT($GL_LIBS)
+
+AC_SUBST(GL_CFLAGS)
+AC_SUBST(GL_LIBS)
+
+AC_CHECK_PROGS(XSLTPROC, xsltproc)
+if test -z "$XSLTPROC"; then
+ AC_MSG_ERROR([Couldn't find xsltproc])
+fi
+
+PKG_CHECK_MODULES(LIBPNG, libpng)
+
+AC_ARG_ENABLE(glib,
+ [ --disable-glib Disable glib plugin],
+ [use_glib=$enableval], [use_glib=yes])
+
+if test "x$use_glib" = "xyes"; then
+ PKG_CHECK_MODULES(GLIB, glib-2.0)
+fi
+
+AM_CONDITIONAL(USE_GLIB, test "x$use_glib" = "xyes")
+if test "$use_glib" = yes; then
+ AC_DEFINE(USE_GLIB, 1, [Build glib plugin])
+fi
+
+AC_ARG_ENABLE(gconf,
+ [ --disable-gconf Disable gconf plugin],
+ [use_gconf=$enableval], [use_gconf=yes])
+
+if test "x$use_gconf" = "xyes"; then
+ PKG_CHECK_MODULES(GCONF, gconf-2.0)
+
+ AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
+ if test x"$GCONFTOOL" = xno; then
+ AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
+ fi
+fi
+
+AM_GCONF_SOURCE_2
+
+AM_CONDITIONAL(USE_GCONF, test "x$use_gconf" = "xyes")
+if test "$use_gconf" = yes; then
+ AC_DEFINE(USE_GCONF, 1, [Build gconf plugin])
+fi
+
+stylesheetdir=$datadir/compiz
+AC_SUBST(stylesheetdir)
+
+AC_ARG_ENABLE(dbus,
+ [ --disable-dbus Disable dbus plugin],
+ [use_dbus=$enableval], [use_dbus=yes])
+
+if test "x$use_dbus" = "xyes"; then
+ PKG_CHECK_MODULES(DBUS, dbus-1 libxml-2.0, [use_dbus=yes], [use_dbus=no])
+fi
+
+AM_CONDITIONAL(DBUS_PLUGIN, test "x$use_dbus" = "xyes")
+if test "$use_dbus" = yes; then
+ AC_DEFINE(USE_DBUS, 1, [Build dbus plugin])
+fi
+
+AC_ARG_ENABLE(dbus-glib,
+ [ --disable-dbus-glib Disable dbus-glib support],
+ [use_dbus_glib=$enableval], [use_dbus_glib=yes])
+
+if test "x$use_dbus_glib" = "xyes"; then
+ PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1, [use_dbus_glib=yes], [use_dbus_glib=no])
+fi
+
+if test "$use_dbus" = yes; then
+ AC_DEFINE(USE_DBUS_GLIB, 1, [Build dbus glib support])
+fi
+
+AC_ARG_ENABLE(inotify,
+ [ --disable-inotify Disable inotify plugin],
+ [use_inotify=$enableval], [use_inotify=yes])
+
+if test "x$use_inotify" = "xyes"; then
+ AC_CHECK_HEADERS([sys/inotify.h], [use_inotify=yes], [use_inotify=no])
+fi
+
+AM_CONDITIONAL(INOTIFY_PLUGIN, test "x$use_inotify" = "xyes")
+if test "$use_inotify" = yes; then
+ AC_DEFINE(USE_INOTIFY, 1, [Build inotify plugin])
+fi
+
+AC_ARG_ENABLE(fuse,
+ [ --disable-fuse Disable fuse plugin],
+ [use_fuse=$enableval], [use_fuse=yes])
+
+if test "x$use_fuse" = "xyes"; then
+ PKG_CHECK_MODULES(FUSE, fuse, [use_fuse=yes], [use_fuse=no])
+fi
+
+AM_CONDITIONAL(FUSE_PLUGIN, test "x$use_fuse" = "xyes")
+if test "$use_fuse" = yes; then
+ AC_DEFINE(USE_FUSE, 1, [Build fuse plugin])
+fi
+
+AC_ARG_ENABLE(annotate,
+ [ --disable-annotate Disable annotate plugin],
+ [use_annotate=$enableval], [use_annotate=yes])
+
+if test "x$use_annotate" = "xyes"; then
+ PKG_CHECK_MODULES(ANNOTATE, cairo-xlib-xrender, [use_annotate=yes], [use_annotate=no])
+fi
+
+AM_CONDITIONAL(ANNOTATE_PLUGIN, test "x$use_annotate" = "xyes")
+if test "$use_annotate" = yes; then
+ AC_DEFINE(USE_ANNOTATE, 1, [Build annotate plugin])
+fi
+
+AC_ARG_ENABLE(librsvg,
+ [ --disable-librsvg Disable svg support],
+ [use_librsvg=$enableval], [use_librsvg=yes])
+
+if test "x$use_librsvg" = "xyes"; then
+ PKG_CHECK_MODULES(LIBRSVG, [cairo >= 1.0 librsvg-2.0 >= 2.14.0], [use_librsvg=yes], [use_librsvg=no])
+fi
+
+AM_CONDITIONAL(USE_LIBRSVG, test "x$use_librsvg" = "xyes")
+if test "$use_librsvg" = yes; then
+ AC_DEFINE(USE_LIBRSVG, 1, [librsvg for SVG support])
+fi
+
+AC_ARG_ENABLE(gtk,
+ [ --disable-gtk Disable gtk window decorator],
+ [use_gtk=$enableval], [use_gtk=yes])
+
+AC_ARG_ENABLE(metacity,
+ [ --disable-metacity Disable metacity theme support],
+ [use_metacity=$enableval], [use_metacity=yes])
+
+AC_ARG_ENABLE(gnome,
+ [ --disable-gnome Disable gnome settings module],
+ [use_gnome=$enableval], [use_gnome=yes])
+
+AC_ARG_ENABLE(gnome-keybindings,
+ [ --disable-gnome-keybindings Disable gnome keybindings],
+ [use_gnome_keybindings=$enableval], [use_gnome_keybindings=yes])
+
+if test "x$use_gtk" = "xyes"; then
+ PKG_CHECK_MODULES(GTK_WINDOW_DECORATOR,
+ xrender >= 0.8.4 \
+ gtk+-2.0 >= 2.8.0 \
+ libwnck-1.0 \
+ pangocairo,
+ [use_gtk=yes], [use_gtk=no])
+ if test "x$use_gtk" = "xyes"; then
+ save_CFLAGS="$CFLAGS"
+ save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_WINDOW_DECORATOR_CFLAGS"
+ LIBS="$LIBS $GTK_WINDOW_DECORATOR_LIBS"
+ AC_CHECK_FUNCS(wnck_window_has_name)
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+
+ PKG_CHECK_EXISTS(libwnck-1.0 >= 2.18.1,
+ [have_libwnck_2_18_1=yes], [have_libwnck_2_18_1=no])
+
+ PKG_CHECK_EXISTS(libwnck-1.0 >= 2.19.4,
+ [have_libwnck_2_19_4=yes], [have_libwnck_2_19_4=no])
+
+ if test "x$use_metacity" = "xyes"; then
+ PKG_CHECK_MODULES(METACITY, libmetacity-private,
+ [use_metacity=yes], [use_metacity=no])
+ PKG_CHECK_EXISTS(libmetacity-private >= 2.15.21,
+ [have_metacity_2_15_21=yes], [have_metacity_2_15_21=no])
+ PKG_CHECK_EXISTS(libmetacity-private >= 2.17.0,
+ [have_metacity_2_17_0=yes], [have_metacity_2_17_0=no])
+ PKG_CHECK_EXISTS(libmetacity-private >= 2.23.2,
+ [have_metacity_2_23_2=yes], [have_metacity_2_23_2=no])
+ fi
+
+ if test "x$use_gnome" = "xyes"; then
+ PKG_CHECK_MODULES(GNOME_WINDOW_SETTINGS,
+ gnome-window-settings-2.0 gnome-desktop-2.0,
+ [use_gnome=yes], [use_gnome=no])
+ fi
+
+ if test "x$use_gnome_keybindings" = "xyes"; then
+ PKG_CHECK_MODULES(GNOME_KEY_BINDINGS,
+ gnome-keybindings,
+ [use_gnome_keybindings=yes], [use_gnome_keybindings=no])
+ fi
+
+ windowsettingsdatadir=`pkg-config --variable=prefix gnome-window-settings-2.0`/share
+ windowsettingslibdir=`pkg-config --variable=libdir gnome-window-settings-2.0` keybindingsdir=`pkg-config --variable=keysdir gnome-keybindings`
+ else
+ use_metacity="no"
+ use_gnome="no"
+ fi
+else
+ use_metacity="no"
+ use_gnome="no"
+fi
+
+AC_SUBST(windowsettingsdatadir)
+AC_SUBST(windowsettingslibdir)
+AC_SUBST(keybindingsdir)
+
+AM_CONDITIONAL(USE_GTK, test "x$use_gtk" = "xyes")
+if test "$use_gtk" = yes; then
+ AC_DEFINE(USE_GTK, 1, [Build gtk window decorator])
+ if test "$have_libwnck_2_18_1" = yes; then
+ AC_DEFINE(HAVE_LIBWNCK_2_18_1, 1,
+ [Define to 1 if libwnck version >= 2_18_1])
+ fi
+ if test "$have_libwnck_2_19_4" = yes; then
+ AC_DEFINE(HAVE_LIBWNCK_2_19_4, 1,
+ [Define to 1 if libwnck version >= 2_19_4])
+ fi
+fi
+
+AM_CONDITIONAL(USE_METACITY, test "x$use_metacity" = "xyes")
+if test "$use_metacity" = yes; then
+ AC_DEFINE(USE_METACITY, 1, [Build metacity theme support])
+ if test "$have_metacity_2_15_21" = yes; then
+ AC_DEFINE(HAVE_METACITY_2_15_21, 1,
+ [Define to 1 if metacity version >= 2.15.21])
+ fi
+ if test "$have_metacity_2_17_0" = yes; then
+ AC_DEFINE(HAVE_METACITY_2_17_0, 1,
+ [Define to 1 if metacity version >= 2.17.0])
+ fi
+ if test "$have_metacity_2_23_2" = yes; then
+ AC_DEFINE(HAVE_METACITY_2_23_2, 1,
+ [Define to 1 if metacity version >= 2.23.2])
+ fi
+fi
+
+AM_CONDITIONAL(USE_GNOME, test "x$use_gnome" = "xyes")
+if test "$use_gnome" = yes; then
+ AC_DEFINE(USE_GNOME, 1, [Build gnome settings module])
+fi
+
+AM_CONDITIONAL(USE_GNOME_KEYBINDINGS, test "x$use_gnome_keybindings" = "xyes")
+if test "$use_gnome_keybindings" = yes; then
+ AC_DEFINE(USE_GNOME_KEYBINDINGS, 1, [Install custom keybindings])
+fi
+
+AC_ARG_ENABLE(kde,
+ [ --disable-kde Disable kde window decorator],
+ [use_kde=$enableval], [use_kde=yes])
+
+if test "x$use_kde" = "xyes"; then
+ qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include"
+ qt_libdirs="$QTLIB /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib"
+
+ if test -n "$QTDIR" ; then
+ qt_incdirs="$QTDIR/include $qt_incdirs"
+ qt_libdirs="$QTDIR/lib $qt_libdirs"
+ fi
+
+ qt_test_include="qstyle.h"
+ qt_test_library="libqt-mt.so"
+
+ dnl Check for Qt headers
+ AC_MSG_CHECKING([for Qt headers])
+ qt_incdir="no"
+ for it in $qt_incdirs ; do
+ if test -r "$it/$qt_test_include" ; then
+ qt_incdir="$it"
+ break
+ fi
+ done
+ AC_MSG_RESULT([$qt_incdir])
+
+ dnl Check for Qt libraries
+ AC_MSG_CHECKING([for Qt libraries])
+ qt_libdir="no"
+ for qt_check in $qt_libdirs ; do
+ if test -r "$qt_check/$qt_test_library" ; then
+ qt_libdir="$qt_check"
+ break
+ fi
+ done
+ AC_MSG_RESULT([$qt_libdir])
+
+ use_kde=no;
+ if test "x$qt_libdir" != "xno" ; then
+ if test "x$qt_incdir" != "xno" ; then
+ use_kde=yes;
+ fi
+ fi
+
+ QT_CXXFLAGS="-I$qt_incdir"
+ QT_LIBS="-L$qt_libdir"
+
+ if test "x$use_kde" = xyes; then
+ kdedir=`kde-config --prefix --expandvars 2>/dev/null`
+ kdelibs=`kde-config --install lib --expandvars 2>/dev/null`
+ kdeincs=`kde-config --install include --expandvars 2>/dev/null`
+ if test -d "$kdelibs"; then
+ PKG_CHECK_MODULES(KDE_WINDOW_DECORATOR,
+ dbus-1 xdamage xcomposite,
+ [use_kde=yes], [use_kde=no])
+
+ KDE_CFLAGS="$QT_CXXFLAGS -I$kdeincs"
+ KDE_LIBS="$QT_LIBS -L$kdelibs -lkdecore -lkdecorations -ldbus-qt-1"
+
+ QT_MOC=$QTDIR/bin/moc
+ DCOPIDL=$kdedir/bin/dcopidl
+ DCOPIDL2CPP=$kdedir/bin/dcopidl2cpp
+ else
+ use_kde=no;
+ fi
+ fi
+fi
+
+AM_CONDITIONAL(USE_KDE, test "x$use_kde" = "xyes")
+if test "$use_kde" = yes; then
+ AC_DEFINE(USE_KDE, 1, [Build kde window decorator])
+fi
+
+AC_SUBST(KDE_CFLAGS)
+AC_SUBST(KDE_LIBS)
+AC_SUBST(QT_MOC)
+AC_SUBST(DCOPIDL)
+AC_SUBST(DCOPIDL2CPP)
+
+AC_ARG_ENABLE(kde4,
+ [ --disable-kde4 Disable kde4 window decorator],
+ [use_kde4=$enableval], [use_kde4=yes])
+
+if test "x$use_kde4" = "xyes"; then
+
+ kde4dir=`kde4-config --prefix --expandvars 2>/dev/null`
+ kde4libs=`kde4-config --install lib --expandvars 2>/dev/null`
+ kde4incs=`kde4-config --install include --expandvars 2>/dev/null`
+
+ kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/framesvg.h"
+
+ dnl Check for KWin headers
+ AC_MSG_CHECKING([for KWin headers])
+
+ kde4_notfound=""
+ for file in $kde4_test_includes ; do
+ status=" $file"
+ for it in $kde4incs ; do
+ if test -r "$it/$file" ; then
+ status=""
+ break;
+ fi
+ done
+ kde4_notfound="$kde4_notfound$status"
+ done
+ if test -z "$kde4_notfound" ; then
+ kde4_notfound="yes"
+ else
+ kde4_notfound="$kde4_notfound not found"
+ kde4libs=""
+ fi
+
+ AC_MSG_RESULT([$kde4_notfound])
+
+ if test -d "$kde4libs"; then
+ PKG_CHECK_MODULES(KDE4_WINDOW_DECORATOR,
+ dbus-1 xdamage xcomposite QtCore >= 4.0.0 QtGui QtDBus,
+ [use_kde4=yes], [use_kde4=no])
+
+ KDE4_CFLAGS="-I$kde4incs"
+ KDE4_LIBS="-L$kde4libs -lkdecore -lkdecorations -lplasma"
+
+ QT4_MOC=`pkg-config QtGui --variable=moc_location`
+ QDBUSXML2CPP=`pkg-config QtGui --variable=exec_prefix`"/bin/qdbusxml2cpp"
+ else
+ use_kde4=no;
+ fi
+fi
+
+AM_CONDITIONAL(USE_KDE4, test "x$use_kde4" = "xyes")
+if test "$use_kde4" = yes; then
+ AC_DEFINE(USE_KDE4, 1, [Build kde4 window decorator])
+fi
+
+AC_SUBST(KDE4_CFLAGS)
+AC_SUBST(KDE4_LIBS)
+AC_SUBST(QT4_MOC)
+AC_SUBST(QDBUSXML2CPP)
+
+AC_ARG_ENABLE(kconfig,
+ [ --disable-kconfig Disable kconfig plugin],
+ [use_kconfig=$enableval], [use_kconfig=yes])
+
+if test "x$use_kde" != "xyes"; then
+ use_kconfig=no;
+fi
+
+if test "x$use_kconfig" = "xyes"; then
+ KCONFIG_CFLAGS=$KDE_CFLAGS
+ KCONFIG_LIBS=$KDE_LIBS
+ KDE_KCFG_DIR=`kde-config --install kcfg --expandvars 2>/dev/null`
+ KDE_KCONFIG_DIR=`kde-config --install config --expandvars 2>/dev/null`
+fi
+
+AM_CONDITIONAL(USE_KCONFIG, test "x$use_kconfig" = "xyes")
+if test "$use_kconfig" = yes; then
+ AC_DEFINE(USE_KCONFIG, 1, [Build kconfig plugin])
+fi
+
+AC_SUBST(KCONFIG_CFLAGS)
+AC_SUBST(KCONFIG_LIBS)
+AC_SUBST(KDE_KCFG_DIR)
+AC_SUBST(KDE_KCONFIG_DIR)
+
+kcfgdir=$KDE_KCFG_DIR
+AC_SUBST(kcfgdir)
+
+AC_ARG_WITH(max-desktops,
+ [ --with-max-desktops Max reasonable desktops],
+ [MAX_DESKTOPS=$withval],
+ [MAX_DESKTOPS=36])
+
+if test -n "$MAX_DESKTOPS"; then
+ AC_DEFINE_UNQUOTED(MAX_DESKTOPS, $MAX_DESKTOPS, [Max reasonable desktops])
+fi
+
+AC_CONFIG_COMMANDS([include/compiz-common.h],
+[
+ commonfile=include/compiz-common.h
+ outfile=$commonfile.tmp
+ AC_MSG_NOTICE([creating $commonfile])
+ cat > $outfile <<_EOF
+#ifndef COMPIZ_COMMON_H
+#define COMPIZ_COMMON_H
+
+#ifdef __cplusplus
+# define COMPIZ_BEGIN_DECLS extern "C" {
+# define COMPIZ_END_DECLS }
+#else
+# define COMPIZ_BEGIN_DECLS
+# define COMPIZ_END_DECLS
+#endif
+
+#define COMPIZ_VERSION_MAJOR $COMPIZ_VERSION_MAJOR
+#define COMPIZ_VERSION_MINOR $COMPIZ_VERSION_MINOR
+#define COMPIZ_VERSION_MICRO $COMPIZ_VERSION_MICRO
+
+#define COMPIZ_VERSION_STRING "$COMPIZ_VERSION_MAJOR.$COMPIZ_VERSION_MINOR.$COMPIZ_VERSION_MICRO"
+
+_EOF
+ echo '#endif' >> $outfile
+
+ if cmp -s $outfile $commonfile; then
+ AC_MSG_NOTICE([$commonfile is unchanged])
+ rm -f $outfile
+ else
+ mv $outfile $commonfile
+ fi
+],[
+ COMPIZ_VERSION_MAJOR=$COMPIZ_VERSION_MAJOR
+ COMPIZ_VERSION_MINOR=$COMPIZ_VERSION_MINOR
+ COMPIZ_VERSION_MICRO=$COMPIZ_VERSION_MICRO
+])
+
+AC_OUTPUT([
+compiz.pc
+compiz-cube.pc
+compiz-scale.pc
+compiz-gconf.pc
+compiz-kconfig.pc
+Makefile
+src/Makefile
+libdecoration/Makefile
+libdecoration/libdecoration.pc
+include/Makefile
+plugins/Makefile
+images/Makefile
+gtk/Makefile
+gtk/window-decorator/Makefile
+gtk/gnome/Makefile
+kde/Makefile
+kde/window-decorator/Makefile
+kde/window-decorator-kde4/Makefile
+po/Makefile.in
+metadata/Makefile
+])
+
+echo ""
+echo "the following optional plugins will be compiled:"
+echo " glib: $use_glib"
+echo " gconf: $use_gconf"
+echo " kconfig: $use_kconfig"
+echo " dbus: $use_dbus"
+echo " annotate: $use_annotate"
+echo " svg: $use_librsvg"
+echo " inotify: $use_inotify"
+echo " fuse: $use_fuse"
+echo ""
+echo "and the following optional features will be compiled:"
+echo " gtk: $use_gtk"
+echo " metacity: $use_metacity"
+echo " gnome: $use_gnome"
+echo " kde: $use_kde"
+echo " kde4: $use_kde4"
+echo ""
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..e5f9736
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,589 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2007-03-29.01
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
+# Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like `#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> $depfile
+ echo >> $depfile
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> $depfile
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add `dependent.h:' lines.
+ sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in `foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mechanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for `:'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no
+ for arg in "$@"; do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ "$@" || exit $?
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
new file mode 100644
index 0000000..8360418
--- /dev/null
+++ b/gtk/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = window-decorator gnome
diff --git a/gtk/Makefile.in b/gtk/Makefile.in
new file mode 100644
index 0000000..83c0cdd
--- /dev/null
+++ b/gtk/Makefile.in
@@ -0,0 +1,591 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = gtk
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+SUBDIRS = window-decorator gnome
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gtk/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/gnome/50-compiz-desktop-key.xml.in b/gtk/gnome/50-compiz-desktop-key.xml.in
new file mode 100644
index 0000000..6d5606c
--- /dev/null
+++ b/gtk/gnome/50-compiz-desktop-key.xml.in
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<KeyListEntries _name="Desktop" wm_name="compiz" package="compiz">
+
+ <KeyListEntry name="/apps/compiz/gnomecompat/allscreens/options/run_key"/>
+
+ <KeyListEntry name="/apps/compiz/gnomecompat/allscreens/options/main_menu_key"/>
+
+ <KeyListEntry name="/apps/compiz/gnomecompat/allscreens/options/run_command_screenshot_key"/>
+
+ <KeyListEntry name="/apps/compiz/gnomecompat/allscreens/options/run_command_window_screenshot_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/show_desktop_key"/>
+
+ <KeyListEntry name="/apps/compiz/gnomecompat/allscreens/options/run_command_terminal_key"/>
+
+</KeyListEntries>
diff --git a/gtk/gnome/50-compiz-key.xml.in b/gtk/gnome/50-compiz-key.xml.in
new file mode 100644
index 0000000..dd2ff5b
--- /dev/null
+++ b/gtk/gnome/50-compiz-key.xml.in
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<KeyListEntries _name="Window Management" wm_name="compiz" package="compiz">
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/close_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/raise_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/lower_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/maximize_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/maximize_window_horizontally_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/maximize_window_vertically_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/minimize_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/opacity_decrease_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/opacity_increase_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/show_desktop_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/toggle_window_maximized_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/toggle_window_maximized_horizontally_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/toggle_window_maximized_vertically_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/toggle_window_shaded_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/unmaximize_window_key"/>
+
+ <KeyListEntry name="/apps/compiz/general/allscreens/options/window_menu_key"/>
+
+</KeyListEntries>
diff --git a/gtk/gnome/Makefile.am b/gtk/gnome/Makefile.am
new file mode 100644
index 0000000..208318a
--- /dev/null
+++ b/gtk/gnome/Makefile.am
@@ -0,0 +1,97 @@
+moduledir = $(DESTDIR)$(windowsettingslibdir)/window-manager-settings
+
+if USE_GNOME
+libcompiz_la_LDFLAGS = -export-dynamic -avoid-version -rpath $(moduledir)
+libcompiz_la_LIBADD = @GNOME_WINDOW_SETTINGS_LIBS@
+libcompiz_la_SOURCES = \
+ compiz-window-manager.c \
+ compiz-window-manager.h
+libcompiz_module = libcompiz.la
+
+desktopfilesdir = $(DESTDIR)$(datadir)/applications
+desktopfiles_in_files = compiz.desktop.in
+desktopfiles_files = $(desktopfiles_in_files:.desktop.in=.desktop)
+
+wmpropertiesdir = $(DESTDIR)$(windowsettingsdatadir)/gnome/wm-properties
+wmproperties_in_files = compiz-wm.desktop.in
+wmproperties_files = $(wmproperties_in_files:.desktop.in=.desktop)
+
+@INTLTOOL_DESKTOP_RULE@
+
+if USE_GNOME_KEYBINDINGS
+
+xmldir = $(DESTDIR)$(keybindingsdir)
+xml_in_files = 50-compiz-desktop-key.xml.in 50-compiz-key.xml.in
+xml_files = $(xml_in_files:.xml.in=.xml)
+
+@INTLTOOL_XML_NOMERGE_RULE@
+
+endif
+
+install-exec-local:
+ if mkdir -p $(moduledir) && test -w $(moduledir); then ( \
+ $(LIBTOOL) --mode=install $(INSTALL) $(libcompiz_module) \
+ $(moduledir) \
+ ); \
+ fi
+
+install-data-local:
+ if mkdir -p $(desktopfilesdir) && test -w $(desktopfilesdir); then ( \
+ $(INSTALL) -m 644 $(desktopfiles_files) \
+ $(desktopfilesdir) \
+ ); \
+ fi
+ if mkdir -p $(wmpropertiesdir) && test -w $(wmpropertiesdir); then ( \
+ $(INSTALL) -m 644 $(wmproperties_files) \
+ $(wmpropertiesdir) \
+ ); \
+ fi
+
+if USE_GNOME_KEYBINDINGS
+ if mkdir -p $(xmldir) && test -w $(xmldir); then ( \
+ $(INSTALL) -m 644 $(xml_files) \
+ $(xmldir) \
+ ); \
+ fi
+endif
+
+uninstall-local:
+ if test -w $(moduledir); then ( \
+ rm -f $(moduledir)/libcompiz.* \
+ ); \
+ fi
+ if test -w $(desktopfilesdir); then ( \
+ rm -f $(desktopfilesdir)/compiz.desktop \
+ ); \
+ fi
+ if test -w $(wmpropertiesdir); then ( \
+ rm -f $(wmpropertiesdir)/compiz-wm.desktop \
+ ); \
+ fi
+if USE_GNOME_KEYBINDINGS
+ if test -w $(xmldir); then ( \
+ rm -f $(xmldir)/50-compiz*key.xml \
+ ); \
+ fi
+endif
+endif
+
+INCLUDES = @GNOME_WINDOW_SETTINGS_CFLAGS@ \
+ -DMETACITY_THEME_DIR=\""$(windowsettingsdatadir)/themes"\" \
+ -DLOCALEDIR="\"@datadir@/locale"\"
+
+noinst_LTLIBRARIES = \
+ $(libcompiz_module)
+
+noinst_DATA = \
+ $(desktopfiles_files) \
+ $(wmproperties_files) \
+ $(xml_files)
+
+EXTRA_DIST = \
+ $(desktopfiles_in_files) \
+ $(wmproperties_in_files) \
+ $(xml_in_files)
+
+DISTCLEANFILES = \
+ $(noinst_DATA)
diff --git a/gtk/gnome/Makefile.in b/gtk/gnome/Makefile.in
new file mode 100644
index 0000000..32cb5ef
--- /dev/null
+++ b/gtk/gnome/Makefile.in
@@ -0,0 +1,638 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = gtk/gnome
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libcompiz_la_DEPENDENCIES =
+am__libcompiz_la_SOURCES_DIST = compiz-window-manager.c \
+ compiz-window-manager.h
+@USE_GNOME_TRUE@am_libcompiz_la_OBJECTS = compiz-window-manager.lo
+libcompiz_la_OBJECTS = $(am_libcompiz_la_OBJECTS)
+libcompiz_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libcompiz_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_GNOME_TRUE@am_libcompiz_la_rpath =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libcompiz_la_SOURCES)
+DIST_SOURCES = $(am__libcompiz_la_SOURCES_DIST)
+DATA = $(noinst_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+moduledir = $(DESTDIR)$(windowsettingslibdir)/window-manager-settings
+@USE_GNOME_TRUE@libcompiz_la_LDFLAGS = -export-dynamic -avoid-version -rpath $(moduledir)
+@USE_GNOME_TRUE@libcompiz_la_LIBADD = @GNOME_WINDOW_SETTINGS_LIBS@
+@USE_GNOME_TRUE@libcompiz_la_SOURCES = \
+@USE_GNOME_TRUE@ compiz-window-manager.c \
+@USE_GNOME_TRUE@ compiz-window-manager.h
+
+@USE_GNOME_TRUE@libcompiz_module = libcompiz.la
+@USE_GNOME_TRUE@desktopfilesdir = $(DESTDIR)$(datadir)/applications
+@USE_GNOME_TRUE@desktopfiles_in_files = compiz.desktop.in
+@USE_GNOME_TRUE@desktopfiles_files = $(desktopfiles_in_files:.desktop.in=.desktop)
+@USE_GNOME_TRUE@wmpropertiesdir = $(DESTDIR)$(windowsettingsdatadir)/gnome/wm-properties
+@USE_GNOME_TRUE@wmproperties_in_files = compiz-wm.desktop.in
+@USE_GNOME_TRUE@wmproperties_files = $(wmproperties_in_files:.desktop.in=.desktop)
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@xmldir = $(DESTDIR)$(keybindingsdir)
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@xml_in_files = 50-compiz-desktop-key.xml.in 50-compiz-key.xml.in
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@xml_files = $(xml_in_files:.xml.in=.xml)
+INCLUDES = @GNOME_WINDOW_SETTINGS_CFLAGS@ \
+ -DMETACITY_THEME_DIR=\""$(windowsettingsdatadir)/themes"\" \
+ -DLOCALEDIR="\"@datadir@/locale"\"
+
+noinst_LTLIBRARIES = \
+ $(libcompiz_module)
+
+noinst_DATA = \
+ $(desktopfiles_files) \
+ $(wmproperties_files) \
+ $(xml_files)
+
+EXTRA_DIST = \
+ $(desktopfiles_in_files) \
+ $(wmproperties_in_files) \
+ $(xml_in_files)
+
+DISTCLEANFILES = \
+ $(noinst_DATA)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk/gnome/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gtk/gnome/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libcompiz.la: $(libcompiz_la_OBJECTS) $(libcompiz_la_DEPENDENCIES)
+ $(libcompiz_la_LINK) $(am_libcompiz_la_rpath) $(libcompiz_la_OBJECTS) $(libcompiz_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compiz-window-manager.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+@USE_GNOME_FALSE@uninstall-local:
+@USE_GNOME_FALSE@install-data-local:
+@USE_GNOME_FALSE@install-exec-local:
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-exec-local
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-exec-local install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-local
+
+
+@USE_GNOME_TRUE@@INTLTOOL_DESKTOP_RULE@
+
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@@INTLTOOL_XML_NOMERGE_RULE@
+
+@USE_GNOME_TRUE@install-exec-local:
+@USE_GNOME_TRUE@ if mkdir -p $(moduledir) && test -w $(moduledir); then ( \
+@USE_GNOME_TRUE@ $(LIBTOOL) --mode=install $(INSTALL) $(libcompiz_module) \
+@USE_GNOME_TRUE@ $(moduledir) \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+
+@USE_GNOME_TRUE@install-data-local:
+@USE_GNOME_TRUE@ if mkdir -p $(desktopfilesdir) && test -w $(desktopfilesdir); then ( \
+@USE_GNOME_TRUE@ $(INSTALL) -m 644 $(desktopfiles_files) \
+@USE_GNOME_TRUE@ $(desktopfilesdir) \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+@USE_GNOME_TRUE@ if mkdir -p $(wmpropertiesdir) && test -w $(wmpropertiesdir); then ( \
+@USE_GNOME_TRUE@ $(INSTALL) -m 644 $(wmproperties_files) \
+@USE_GNOME_TRUE@ $(wmpropertiesdir) \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ if mkdir -p $(xmldir) && test -w $(xmldir); then ( \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ $(INSTALL) -m 644 $(xml_files) \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ $(xmldir) \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ ); \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ fi
+
+@USE_GNOME_TRUE@uninstall-local:
+@USE_GNOME_TRUE@ if test -w $(moduledir); then ( \
+@USE_GNOME_TRUE@ rm -f $(moduledir)/libcompiz.* \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+@USE_GNOME_TRUE@ if test -w $(desktopfilesdir); then ( \
+@USE_GNOME_TRUE@ rm -f $(desktopfilesdir)/compiz.desktop \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+@USE_GNOME_TRUE@ if test -w $(wmpropertiesdir); then ( \
+@USE_GNOME_TRUE@ rm -f $(wmpropertiesdir)/compiz-wm.desktop \
+@USE_GNOME_TRUE@ ); \
+@USE_GNOME_TRUE@ fi
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ if test -w $(xmldir); then ( \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ rm -f $(xmldir)/50-compiz*key.xml \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ ); \
+@USE_GNOME_KEYBINDINGS_TRUE@@USE_GNOME_TRUE@ fi
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/gnome/compiz-window-manager.c b/gtk/gnome/compiz-window-manager.c
new file mode 100644
index 0000000..114bd84
--- /dev/null
+++ b/gtk/gnome/compiz-window-manager.c
@@ -0,0 +1,559 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <string.h>
+#include <gconf/gconf-client.h>
+#include <glib/gi18n.h>
+
+#include "compiz-window-manager.h"
+
+#define COMPIZ_CLICK_TO_FOCUS_KEY \
+ "/apps/compiz/general/allscreens/options/click_to_focus"
+
+#define COMPIZ_AUTORAISE_KEY \
+ "/apps/compiz/general/allscreens/options/autoraise"
+
+#define COMPIZ_AUTORAISE_DELAY_KEY \
+ "/apps/compiz/general/allscreens/options/autoraise_delay"
+
+#define COMPIZ_MOUSE_MOVE_KEY \
+ "/apps/compiz/plugins/move/allscreens/options/initiate_button"
+
+#define GCONF_DIR "/apps/metacity/general"
+
+#define COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY \
+ GCONF_DIR "/action_double_click_titlebar"
+
+#define COMPIZ_USE_SYSTEM_FONT_KEY \
+ GCONF_DIR "/titlebar_uses_system_font"
+
+#define COMPIZ_TITLEBAR_FONT_KEY \
+ GCONF_DIR "/titlebar_font"
+
+#define COMPIZ_THEME_KEY \
+ GCONF_DIR "/theme"
+
+enum {
+ DOUBLE_CLICK_NONE,
+ DOUBLE_CLICK_SHADE,
+ DOUBLE_CLICK_MAXIMIZE,
+ DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY,
+ DOUBLE_CLICK_MAXIMIZE_VERTICALLY,
+ DOUBLE_CLICK_MINIMIZE,
+ DOUBLE_CLICK_RAISE,
+ DOUBLE_CLICK_LOWER,
+ DOUBLE_CLICK_MENU
+};
+
+static const struct {
+ unsigned int action;
+ const char *value;
+} double_click_actions [] = {
+ { DOUBLE_CLICK_NONE, "none" },
+ { DOUBLE_CLICK_SHADE, "toggle_shade" },
+ { DOUBLE_CLICK_MAXIMIZE, "toggle_maximize" },
+ { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, "toggle_maximize_horizontally" },
+ { DOUBLE_CLICK_MAXIMIZE_VERTICALLY, "toggle_maximize_vertically" },
+ { DOUBLE_CLICK_MINIMIZE, "minimize" },
+ { DOUBLE_CLICK_RAISE, "raise" },
+ { DOUBLE_CLICK_LOWER, "lower" },
+ { DOUBLE_CLICK_MENU, "menu" }
+};
+
+static GnomeWindowManagerClass *parent_class;
+
+struct _CompizWindowManagerPrivate {
+ GConfClient *gconf;
+ gchar *font;
+ gchar *theme;
+ gchar *mouse_modifier;
+};
+
+static void
+value_changed (GConfClient *client,
+ const gchar *key,
+ GConfValue *value,
+ void *data)
+{
+ CompizWindowManager *wm;
+
+ wm = COMPIZ_WINDOW_MANAGER (data);
+
+ gnome_window_manager_settings_changed (GNOME_WINDOW_MANAGER (wm));
+}
+
+/* this function is called when the shared lib is loaded */
+GObject *
+window_manager_new (int expected_interface_version)
+{
+ GObject *wm;
+
+ if (expected_interface_version != GNOME_WINDOW_MANAGER_INTERFACE_VERSION)
+ {
+ g_warning ("Compiz window manager module wasn't compiled with the "
+ "current version of gnome-control-center");
+ return NULL;
+ }
+
+ wm = g_object_new (compiz_window_manager_get_type (), NULL);
+
+ return wm;
+}
+
+static void
+compiz_change_settings (GnomeWindowManager *wm,
+ const GnomeWMSettings *settings)
+{
+ CompizWindowManager *cwm;
+
+ cwm = COMPIZ_WINDOW_MANAGER (wm);
+
+ if (settings->flags & GNOME_WM_SETTING_FONT)
+ gconf_client_set_string (cwm->p->gconf,
+ COMPIZ_TITLEBAR_FONT_KEY,
+ settings->font, NULL);
+
+ if (settings->flags & GNOME_WM_SETTING_MOUSE_FOCUS)
+ gconf_client_set_bool (cwm->p->gconf,
+ COMPIZ_CLICK_TO_FOCUS_KEY,
+ settings->focus_follows_mouse == FALSE,
+ NULL);
+
+ if (settings->flags & GNOME_WM_SETTING_AUTORAISE)
+ gconf_client_set_bool (cwm->p->gconf,
+ COMPIZ_AUTORAISE_KEY,
+ settings->autoraise, NULL);
+
+ if (settings->flags & GNOME_WM_SETTING_AUTORAISE_DELAY)
+ gconf_client_set_int (cwm->p->gconf,
+ COMPIZ_AUTORAISE_DELAY_KEY,
+ settings->autoraise_delay, NULL);
+
+ if (settings->flags & GNOME_WM_SETTING_MOUSE_MOVE_MODIFIER)
+ {
+ char *value;
+
+ value = g_strdup_printf ("<%s>Button1", settings->mouse_move_modifier);
+ gconf_client_set_string (cwm->p->gconf,
+ COMPIZ_MOUSE_MOVE_KEY,
+ value, NULL);
+ g_free (value);
+ }
+
+ if (settings->flags & GNOME_WM_SETTING_THEME)
+ gconf_client_set_string (cwm->p->gconf,
+ COMPIZ_THEME_KEY,
+ settings->theme, NULL);
+
+ if (settings->flags & GNOME_WM_SETTING_DOUBLE_CLICK_ACTION)
+ {
+ const char *action = NULL;
+ unsigned int i;
+
+ for (i = 0; i < G_N_ELEMENTS (double_click_actions); i++)
+ {
+ if (settings->double_click_action ==
+ double_click_actions[i].action)
+ {
+ action = double_click_actions[i].value;
+ break;
+ }
+ }
+
+ if (action)
+ gconf_client_set_string (cwm->p->gconf,
+ COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY,
+ action, NULL);
+ }
+}
+
+static void
+compiz_get_settings (GnomeWindowManager *wm,
+ GnomeWMSettings *settings)
+{
+ CompizWindowManager *cwm;
+ int to_get;
+
+ cwm = COMPIZ_WINDOW_MANAGER (wm);
+
+ to_get = settings->flags;
+ settings->flags = 0;
+
+ if (to_get & GNOME_WM_SETTING_FONT)
+ {
+ char *str;
+
+ str = gconf_client_get_string (cwm->p->gconf,
+ COMPIZ_TITLEBAR_FONT_KEY,
+ NULL);
+
+ if (!str)
+ str = g_strdup ("Sans Bold 12");
+
+ if (cwm->p->font)
+ g_free (cwm->p->font);
+
+ cwm->p->font = str;
+
+ settings->font = cwm->p->font;
+
+ settings->flags |= GNOME_WM_SETTING_FONT;
+ }
+
+ if (to_get & GNOME_WM_SETTING_MOUSE_FOCUS)
+ {
+ settings->focus_follows_mouse =
+ gconf_client_get_bool (cwm->p->gconf,
+ COMPIZ_CLICK_TO_FOCUS_KEY, NULL) == FALSE;
+
+ settings->flags |= GNOME_WM_SETTING_MOUSE_FOCUS;
+ }
+
+ if (to_get & GNOME_WM_SETTING_AUTORAISE)
+ {
+ settings->autoraise = gconf_client_get_bool (cwm->p->gconf,
+ COMPIZ_AUTORAISE_KEY,
+ NULL);
+
+ settings->flags |= GNOME_WM_SETTING_AUTORAISE;
+ }
+
+ if (to_get & GNOME_WM_SETTING_AUTORAISE_DELAY)
+ {
+ settings->autoraise_delay =
+ gconf_client_get_int (cwm->p->gconf,
+ COMPIZ_AUTORAISE_DELAY_KEY,
+ NULL);
+
+ settings->flags |= GNOME_WM_SETTING_AUTORAISE_DELAY;
+ }
+
+ if (to_get & GNOME_WM_SETTING_MOUSE_MOVE_MODIFIER)
+ {
+ const char *new;
+ char *str;
+
+ str = gconf_client_get_string (cwm->p->gconf,
+ COMPIZ_MOUSE_MOVE_KEY,
+ NULL);
+
+ if (str == NULL)
+ str = g_strdup ("<Super>");
+
+ if (strncmp (str, "<Super>", 7) == 0)
+ new = "Super";
+ else if (strncmp (str, "<Alt>", 5) == 0)
+ new = "Alt";
+ else if (strncmp (str, "<Meta>", 6) == 0)
+ new = "Meta";
+ else if (strncmp (str, "<Hyper>", 7) == 0)
+ new = "Hyper";
+ else if (strncmp (str, "<Control>", 9) == 0)
+ new = "Control";
+ else
+ new = NULL;
+
+ if (cwm->p->mouse_modifier)
+ g_free (cwm->p->mouse_modifier);
+
+ cwm->p->mouse_modifier = g_strdup (new ? new : "");
+
+ g_free (str);
+
+ settings->mouse_move_modifier = cwm->p->mouse_modifier;
+
+ settings->flags |= GNOME_WM_SETTING_MOUSE_MOVE_MODIFIER;
+ }
+
+ if (to_get & GNOME_WM_SETTING_THEME)
+ {
+ char *str;
+
+ str = gconf_client_get_string (cwm->p->gconf,
+ COMPIZ_THEME_KEY,
+ NULL);
+
+ if (str == NULL)
+ str = g_strdup ("Atlanta");
+
+ g_free (cwm->p->theme);
+ cwm->p->theme = str;
+ settings->theme = cwm->p->theme;
+
+ settings->flags |= GNOME_WM_SETTING_THEME;
+ }
+
+ if (to_get & GNOME_WM_SETTING_DOUBLE_CLICK_ACTION)
+ {
+ char *str;
+
+ settings->double_click_action = DOUBLE_CLICK_MAXIMIZE;
+
+ str = gconf_client_get_string (cwm->p->gconf,
+ COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY,
+ NULL);
+
+ if (str)
+ {
+ unsigned int i;
+
+ for (i = 0; i < G_N_ELEMENTS (double_click_actions); i++)
+ {
+ if (strcmp (str, double_click_actions[i].value) == 0)
+ {
+ settings->double_click_action =
+ double_click_actions[i].action;
+ break;
+ }
+ }
+ }
+
+ settings->flags |= GNOME_WM_SETTING_DOUBLE_CLICK_ACTION;
+ }
+}
+
+static int
+compiz_get_settings_mask (GnomeWindowManager *wm)
+{
+ return GNOME_WM_SETTING_MASK;
+}
+
+static GList *
+add_themes_from_dir (GList *current_list,
+ const char *path)
+{
+ DIR *theme_dir;
+ struct dirent *entry;
+ char *theme_file_path;
+ GList *node;
+ gboolean found = FALSE;
+
+ if (!(g_file_test (path, G_FILE_TEST_EXISTS) &&
+ g_file_test (path, G_FILE_TEST_IS_DIR)))
+ {
+ return current_list;
+ }
+
+ theme_dir = opendir (path);
+
+ /* If this is NULL, then we couldn't open ~/.themes. The test above
+ * only checks existence, not wether we can really read it.*/
+ if (theme_dir == NULL)
+ return current_list;
+
+ for (entry = readdir (theme_dir); entry; entry = readdir (theme_dir))
+ {
+ theme_file_path =
+ g_build_filename (path, entry->d_name,
+ "metacity-1/metacity-theme-1.xml", NULL);
+
+ if (g_file_test (theme_file_path, G_FILE_TEST_EXISTS))
+ {
+
+ for (node = current_list; node && !found; node = node->next)
+ found = strcmp (node->data, entry->d_name) == 0;
+
+ if (!found)
+ current_list = g_list_prepend (current_list,
+ g_strdup (entry->d_name));
+ }
+
+ found = FALSE;
+
+ g_free (theme_file_path);
+ }
+
+ closedir (theme_dir);
+
+ return current_list;
+}
+
+static GList *
+compiz_get_theme_list (GnomeWindowManager *wm)
+{
+ GList *themes = NULL;
+ char *home_dir_themes;
+
+ home_dir_themes = g_build_filename (g_get_home_dir (), ".themes", NULL);
+
+ themes = add_themes_from_dir (themes, METACITY_THEME_DIR);
+ themes = add_themes_from_dir (themes, "/usr/share/themes");
+ themes = add_themes_from_dir (themes, home_dir_themes);
+
+ g_free (home_dir_themes);
+
+ return themes;
+}
+
+static char *
+compiz_get_user_theme_folder (GnomeWindowManager *wm)
+{
+ return g_build_filename (g_get_home_dir (), ".themes", NULL);
+}
+
+static void
+compiz_get_double_click_actions (GnomeWindowManager *wm,
+ const GnomeWMDoubleClickAction **actions_p,
+ int *n_actions_p)
+{
+ static gboolean initialized = FALSE;
+ static GnomeWMDoubleClickAction actions[] = {
+ { DOUBLE_CLICK_NONE, N_("None") },
+ { DOUBLE_CLICK_SHADE, N_("Shade") },
+ { DOUBLE_CLICK_MAXIMIZE, N_("Maximize") },
+ { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, N_("Maximize Horizontally") },
+ { DOUBLE_CLICK_MAXIMIZE_HORIZONTALLY, N_("Maximize Vertically") },
+ { DOUBLE_CLICK_MINIMIZE, N_("Minimize") },
+ { DOUBLE_CLICK_RAISE, N_("Raise") },
+ { DOUBLE_CLICK_LOWER, N_("Lower") },
+ { DOUBLE_CLICK_MENU, N_("Window Menu") }
+ };
+
+ if (!initialized)
+ {
+ unsigned int i;
+
+ for (i = 0; i < G_N_ELEMENTS (actions); i++)
+ actions[i].human_readable_name = _(actions[i].human_readable_name);
+
+ initialized = TRUE;
+ }
+
+ *actions_p = actions;
+ *n_actions_p = (int) G_N_ELEMENTS (actions);
+}
+
+static void
+compiz_window_manager_init (CompizWindowManager *cwm,
+ CompizWindowManagerClass *class)
+{
+ cwm->p = g_new0 (CompizWindowManagerPrivate, 1);
+ cwm->p->gconf = gconf_client_get_default ();
+ cwm->p->mouse_modifier = NULL;
+ cwm->p->font = NULL;
+ cwm->p->theme = NULL;
+
+ gconf_client_add_dir (cwm->p->gconf,
+ "/apps/compiz",
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ gconf_client_add_dir (cwm->p->gconf,
+ GCONF_DIR,
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+
+ g_signal_connect (G_OBJECT (cwm->p->gconf),
+ "value_changed",
+ G_CALLBACK (value_changed),
+ cwm);
+}
+
+static void
+compiz_window_manager_finalize (GObject *object)
+{
+ CompizWindowManager *cwm;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (IS_COMPIZ_WINDOW_MANAGER (object));
+
+ cwm = COMPIZ_WINDOW_MANAGER (object);
+
+ g_signal_handlers_disconnect_by_func (G_OBJECT (cwm->p->gconf),
+ G_CALLBACK (value_changed),
+ cwm);
+
+ if (cwm->p->mouse_modifier)
+ g_free (cwm->p->mouse_modifier);
+
+ if (cwm->p->font)
+ g_free (cwm->p->font);
+
+ if (cwm->p->theme)
+ g_free (cwm->p->theme);
+
+ g_object_unref (G_OBJECT (cwm->p->gconf));
+ g_free (cwm->p);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+compiz_window_manager_class_init (CompizWindowManagerClass *class)
+{
+ GObjectClass *object_class;
+ GnomeWindowManagerClass *wm_class;
+
+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+
+ object_class = G_OBJECT_CLASS (class);
+ wm_class = GNOME_WINDOW_MANAGER_CLASS (class);
+
+ object_class->finalize = compiz_window_manager_finalize;
+
+ wm_class->change_settings = compiz_change_settings;
+ wm_class->get_settings = compiz_get_settings;
+ wm_class->get_settings_mask = compiz_get_settings_mask;
+ wm_class->get_user_theme_folder = compiz_get_user_theme_folder;
+ wm_class->get_theme_list = compiz_get_theme_list;
+ wm_class->get_double_click_actions = compiz_get_double_click_actions;
+
+ parent_class = g_type_class_peek_parent (class);
+}
+
+GType
+compiz_window_manager_get_type (void)
+{
+ static GType compiz_window_manager_type = 0;
+
+ if (!compiz_window_manager_type)
+ {
+ static GTypeInfo compiz_window_manager_info = {
+ sizeof (CompizWindowManagerClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) compiz_window_manager_class_init,
+ NULL,
+ NULL,
+ sizeof (CompizWindowManager),
+ 0,
+ (GInstanceInitFunc) compiz_window_manager_init,
+ NULL
+ };
+
+ compiz_window_manager_type =
+ g_type_register_static (gnome_window_manager_get_type (),
+ "CompizWindowManager",
+ &compiz_window_manager_info, 0);
+ }
+
+ return compiz_window_manager_type;
+}
diff --git a/gtk/gnome/compiz-window-manager.h b/gtk/gnome/compiz-window-manager.h
new file mode 100644
index 0000000..5506e63
--- /dev/null
+++ b/gtk/gnome/compiz-window-manager.h
@@ -0,0 +1,39 @@
+#ifndef COMPIZ_WINDOW_MANAGER_H
+#define COMPIZ_WINDOW_MANAGER_H
+
+#include <glib-object.h>
+
+#include "gnome-window-manager.h"
+
+#define COMPIZ_WINDOW_MANAGER(obj) \
+ G_TYPE_CHECK_INSTANCE_CAST (obj, compiz_window_manager_get_type (), \
+ CompizWindowManager)
+
+#define COMPIZ_WINDOW_MANAGER_CLASS(klass) \
+ G_TYPE_CHECK_CLASS_CAST (klass, compiz_window_manager_get_type (), \
+ MetacityWindowManagerClass)
+
+#define IS_COMPIZ_WINDOW_MANAGER(obj) \
+ G_TYPE_CHECK_INSTANCE_TYPE (obj, compiz_window_manager_get_type ())
+
+
+typedef struct _CompizWindowManager CompizWindowManager;
+typedef struct _CompizWindowManagerClass CompizWindowManagerClass;
+typedef struct _CompizWindowManagerPrivate CompizWindowManagerPrivate;
+
+struct _CompizWindowManager {
+ GnomeWindowManager parent;
+ CompizWindowManagerPrivate *p;
+};
+
+struct _CompizWindowManagerClass {
+ GnomeWindowManagerClass klass;
+};
+
+GType
+compiz_window_manager_get_type (void);
+
+GObject *
+window_manager_new (int expected_interface_version);
+
+#endif
diff --git a/gtk/gnome/compiz-wm.desktop.in b/gtk/gnome/compiz-wm.desktop.in
new file mode 100644
index 0000000..bb3967a
--- /dev/null
+++ b/gtk/gnome/compiz-wm.desktop.in
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+_Name=Compiz
+Exec=compiz
+# name of loadable control center module
+X-GNOME-WMSettingsModule=compiz
+# autostart phase
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+# name we put on the WM spec check window
+X-GNOME-WMName=compiz
+# back compat only
+X-GnomeWMSettingsLibrary=compiz
+
+[Window Manager]
+SessionManaged=false
diff --git a/gtk/gnome/compiz.desktop.in b/gtk/gnome/compiz.desktop.in
new file mode 100644
index 0000000..fce1407
--- /dev/null
+++ b/gtk/gnome/compiz.desktop.in
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+_Name=Compiz
+Exec=compiz
+NoDisplay=true
+# name of loadable control center module
+X-GNOME-WMSettingsModule=compiz
+# autostart phase
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+# name we put on the WM spec check window
+X-GNOME-WMName=compiz
+# back compat only
+X-GnomeWMSettingsLibrary=compiz
diff --git a/gtk/window-decorator/Makefile.am b/gtk/window-decorator/Makefile.am
new file mode 100644
index 0000000..762168f
--- /dev/null
+++ b/gtk/window-decorator/Makefile.am
@@ -0,0 +1,50 @@
+if USE_GTK
+
+if USE_METACITY
+metacitylibs = @METACITY_LIBS@
+endif
+
+gtk_window_decorator_DEPENDENCIES = \
+ $(top_builddir)/libdecoration/libdecoration.la
+gtk_window_decorator_LDADD = \
+ $(top_builddir)/libdecoration/libdecoration.la \
+ @GTK_WINDOW_DECORATOR_LIBS@ \
+ @GCONF_LIBS@ \
+ @DBUS_GLIB_LIBS@ \
+ $(metacitylibs)
+
+gtk_window_decorator_SOURCES = \
+ gtk-window-decorator.c
+gtk_window_decorator_program = gtk-window-decorator
+endif
+
+if USE_GCONF
+schemadir = $(GCONF_SCHEMA_FILE_DIR)
+schema_in_files = gwd.schemas.in
+schema_files = $(schema_in_files:.schemas.in=.schemas)
+schema_DATA = $(schema_files)
+
+@INTLTOOL_SCHEMAS_RULE@
+
+install-data-local:
+ if test -z "$(DESTDIR)" ; then \
+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schema_DATA); \
+ fi
+endif
+
+INCLUDES = \
+ -I$(top_srcdir)/include \
+ @GTK_WINDOW_DECORATOR_CFLAGS@ \
+ @METACITY_CFLAGS@ \
+ @GCONF_CFLAGS@ \
+ @DBUS_GLIB_CFLAGS@ \
+ -DALL_LINGUAS="\"@ALL_LINGUAS@\"" \
+ -DLOCALEDIR="\"@datadir@/locale"\"
+
+bin_PROGRAMS = $(gtk_window_decorator_program)
+
+EXTRA_DIST = \
+ $(schema_in_files)
+
+DISTCLEANFILES = \
+ $(schema_files)
diff --git a/gtk/window-decorator/Makefile.in b/gtk/window-decorator/Makefile.in
new file mode 100644
index 0000000..98c175d
--- /dev/null
+++ b/gtk/window-decorator/Makefile.in
@@ -0,0 +1,639 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = $(am__EXEEXT_1)
+subdir = gtk/window-decorator
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+@USE_GTK_TRUE@am__EXEEXT_1 = gtk-window-decorator$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(schemadir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am__gtk_window_decorator_SOURCES_DIST = gtk-window-decorator.c
+@USE_GTK_TRUE@am_gtk_window_decorator_OBJECTS = \
+@USE_GTK_TRUE@ gtk-window-decorator.$(OBJEXT)
+gtk_window_decorator_OBJECTS = $(am_gtk_window_decorator_OBJECTS)
+am__DEPENDENCIES_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(gtk_window_decorator_SOURCES)
+DIST_SOURCES = $(am__gtk_window_decorator_SOURCES_DIST)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+schemaDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(schema_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+@USE_GTK_TRUE@@USE_METACITY_TRUE@metacitylibs = @METACITY_LIBS@
+@USE_GTK_TRUE@gtk_window_decorator_DEPENDENCIES = \
+@USE_GTK_TRUE@ $(top_builddir)/libdecoration/libdecoration.la
+
+@USE_GTK_TRUE@gtk_window_decorator_LDADD = \
+@USE_GTK_TRUE@ $(top_builddir)/libdecoration/libdecoration.la \
+@USE_GTK_TRUE@ @GTK_WINDOW_DECORATOR_LIBS@ \
+@USE_GTK_TRUE@ @GCONF_LIBS@ \
+@USE_GTK_TRUE@ @DBUS_GLIB_LIBS@ \
+@USE_GTK_TRUE@ $(metacitylibs)
+
+@USE_GTK_TRUE@gtk_window_decorator_SOURCES = \
+@USE_GTK_TRUE@ gtk-window-decorator.c
+
+@USE_GTK_TRUE@gtk_window_decorator_program = gtk-window-decorator
+@USE_GCONF_TRUE@schemadir = $(GCONF_SCHEMA_FILE_DIR)
+@USE_GCONF_TRUE@schema_in_files = gwd.schemas.in
+@USE_GCONF_TRUE@schema_files = $(schema_in_files:.schemas.in=.schemas)
+@USE_GCONF_TRUE@schema_DATA = $(schema_files)
+INCLUDES = \
+ -I$(top_srcdir)/include \
+ @GTK_WINDOW_DECORATOR_CFLAGS@ \
+ @METACITY_CFLAGS@ \
+ @GCONF_CFLAGS@ \
+ @DBUS_GLIB_CFLAGS@ \
+ -DALL_LINGUAS="\"@ALL_LINGUAS@\"" \
+ -DLOCALEDIR="\"@datadir@/locale"\"
+
+EXTRA_DIST = \
+ $(schema_in_files)
+
+DISTCLEANFILES = \
+ $(schema_files)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk/window-decorator/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu gtk/window-decorator/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+gtk-window-decorator$(EXEEXT): $(gtk_window_decorator_OBJECTS) $(gtk_window_decorator_DEPENDENCIES)
+ @rm -f gtk-window-decorator$(EXEEXT)
+ $(LINK) $(gtk_window_decorator_OBJECTS) $(gtk_window_decorator_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-window-decorator.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-schemaDATA: $(schema_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(schemadir)" || $(MKDIR_P) "$(DESTDIR)$(schemadir)"
+ @list='$(schema_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(schemaDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(schemadir)/$$f'"; \
+ $(schemaDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(schemadir)/$$f"; \
+ done
+
+uninstall-schemaDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(schema_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(schemadir)/$$f'"; \
+ rm -f "$(DESTDIR)$(schemadir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(schemadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+@USE_GCONF_FALSE@install-data-local:
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-schemaDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-schemaDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-schemaDATA install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-binPROGRAMS \
+ uninstall-schemaDATA
+
+
+@USE_GCONF_TRUE@@INTLTOOL_SCHEMAS_RULE@
+
+@USE_GCONF_TRUE@install-data-local:
+@USE_GCONF_TRUE@ if test -z "$(DESTDIR)" ; then \
+@USE_GCONF_TRUE@ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schema_DATA); \
+@USE_GCONF_TRUE@ fi
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/window-decorator/TODO b/gtk/window-decorator/TODO
new file mode 100644
index 0000000..d1b8e93
--- /dev/null
+++ b/gtk/window-decorator/TODO
@@ -0,0 +1,6 @@
+
+* Plugin interface
+
+* Plugin with SVG-based theme support
+
+* Plugin that supports old metacity themes \ No newline at end of file
diff --git a/gtk/window-decorator/gtk-window-decorator.c b/gtk/window-decorator/gtk-window-decorator.c
new file mode 100644
index 0000000..61e60f7
--- /dev/null
+++ b/gtk/window-decorator/gtk-window-decorator.c
@@ -0,0 +1,7123 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "decoration.h"
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/cursorfont.h>
+#include <X11/extensions/Xrender.h>
+#include <X11/Xregion.h>
+
+#ifndef GDK_DISABLE_DEPRECATED
+#define GDK_DISABLE_DEPRECATED
+#endif
+
+#ifndef GTK_DISABLE_DEPRECATED
+#define GTK_DISABLE_DEPRECATED
+#endif
+
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <glib/gi18n.h>
+
+#ifdef USE_GCONF
+#include <gconf/gconf-client.h>
+#endif
+
+#ifdef USE_DBUS_GLIB
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+#endif
+
+#define WNCK_I_KNOW_THIS_IS_UNSTABLE
+#include <libwnck/libwnck.h>
+#include <libwnck/window-action-menu.h>
+
+#ifndef HAVE_LIBWNCK_2_19_4
+#define wnck_window_get_client_window_geometry wnck_window_get_geometry
+#endif
+
+#include <cairo.h>
+#include <cairo-xlib.h>
+
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 1, 0)
+#define CAIRO_EXTEND_PAD CAIRO_EXTEND_NONE
+#endif
+
+#include <pango/pango-context.h>
+#include <pango/pangocairo.h>
+
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include <limits.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <signal.h>
+
+#ifdef USE_METACITY
+#include <metacity-private/theme.h>
+#endif
+
+#define METACITY_GCONF_DIR "/apps/metacity/general"
+
+#define COMPIZ_USE_SYSTEM_FONT_KEY \
+ METACITY_GCONF_DIR "/titlebar_uses_system_font"
+
+#define COMPIZ_TITLEBAR_FONT_KEY \
+ METACITY_GCONF_DIR "/titlebar_font"
+
+#define COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY \
+ METACITY_GCONF_DIR "/action_double_click_titlebar"
+
+#define COMPIZ_MIDDLE_CLICK_TITLEBAR_KEY \
+ METACITY_GCONF_DIR "/action_middle_click_titlebar"
+
+#define COMPIZ_RIGHT_CLICK_TITLEBAR_KEY \
+ METACITY_GCONF_DIR "/action_right_click_titlebar"
+
+#define COMPIZ_GCONF_DIR1 "/apps/compiz/plugins/decoration/allscreens/options"
+
+#define COMPIZ_SHADOW_RADIUS_KEY \
+ COMPIZ_GCONF_DIR1 "/shadow_radius"
+
+#define COMPIZ_SHADOW_OPACITY_KEY \
+ COMPIZ_GCONF_DIR1 "/shadow_opacity"
+
+#define COMPIZ_SHADOW_COLOR_KEY \
+ COMPIZ_GCONF_DIR1 "/shadow_color"
+
+#define COMPIZ_SHADOW_OFFSET_X_KEY \
+ COMPIZ_GCONF_DIR1 "/shadow_x_offset"
+
+#define COMPIZ_SHADOW_OFFSET_Y_KEY \
+ COMPIZ_GCONF_DIR1 "/shadow_y_offset"
+
+#define META_THEME_KEY \
+ METACITY_GCONF_DIR "/theme"
+
+#define META_BUTTON_LAYOUT_KEY \
+ METACITY_GCONF_DIR "/button_layout"
+
+#define GCONF_DIR "/apps/gwd"
+
+#define USE_META_THEME_KEY \
+ GCONF_DIR "/use_metacity_theme"
+
+#define META_THEME_OPACITY_KEY \
+ GCONF_DIR "/metacity_theme_opacity"
+
+#define META_THEME_SHADE_OPACITY_KEY \
+ GCONF_DIR "/metacity_theme_shade_opacity"
+
+#define META_THEME_ACTIVE_OPACITY_KEY \
+ GCONF_DIR "/metacity_theme_active_opacity"
+
+#define META_THEME_ACTIVE_SHADE_OPACITY_KEY \
+ GCONF_DIR "/metacity_theme_active_shade_opacity"
+
+#define BLUR_TYPE_KEY \
+ GCONF_DIR "/blur_type"
+
+#define WHEEL_ACTION_KEY \
+ GCONF_DIR "/mouse_wheel_action"
+
+#define DBUS_DEST "org.freedesktop.compiz"
+#define DBUS_PATH "/org/freedesktop/compiz/decoration/allscreens"
+#define DBUS_INTERFACE "org.freedesktop.compiz"
+#define DBUS_METHOD_GET "get"
+
+#define STROKE_ALPHA 0.6
+
+#define ICON_SPACE 20
+
+#define DOUBLE_CLICK_DISTANCE 8.0
+
+#define WM_MOVERESIZE_SIZE_TOPLEFT 0
+#define WM_MOVERESIZE_SIZE_TOP 1
+#define WM_MOVERESIZE_SIZE_TOPRIGHT 2
+#define WM_MOVERESIZE_SIZE_RIGHT 3
+#define WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4
+#define WM_MOVERESIZE_SIZE_BOTTOM 5
+#define WM_MOVERESIZE_SIZE_BOTTOMLEFT 6
+#define WM_MOVERESIZE_SIZE_LEFT 7
+#define WM_MOVERESIZE_MOVE 8
+#define WM_MOVERESIZE_SIZE_KEYBOARD 9
+#define WM_MOVERESIZE_MOVE_KEYBOARD 10
+
+#define SHADOW_RADIUS 8.0
+#define SHADOW_OPACITY 0.5
+#define SHADOW_OFFSET_X 1
+#define SHADOW_OFFSET_Y 1
+#define SHADOW_COLOR_RED 0x0000
+#define SHADOW_COLOR_GREEN 0x0000
+#define SHADOW_COLOR_BLUE 0x0000
+
+#define META_OPACITY 0.75
+#define META_SHADE_OPACITY TRUE
+#define META_ACTIVE_OPACITY 1.0
+#define META_ACTIVE_SHADE_OPACITY TRUE
+
+#define CMDLINE_OPACITY (1 << 0)
+#define CMDLINE_OPACITY_SHADE (1 << 1)
+#define CMDLINE_ACTIVE_OPACITY (1 << 2)
+#define CMDLINE_ACTIVE_OPACITY_SHADE (1 << 3)
+#define CMDLINE_BLUR (1 << 4)
+#define CMDLINE_THEME (1 << 5)
+
+#define MWM_HINTS_DECORATIONS (1L << 1)
+
+#define MWM_DECOR_ALL (1L << 0)
+#define MWM_DECOR_BORDER (1L << 1)
+#define MWM_DECOR_HANDLE (1L << 2)
+#define MWM_DECOR_TITLE (1L << 3)
+#define MWM_DECOR_MENU (1L << 4)
+#define MWM_DECOR_MINIMIZE (1L << 5)
+#define MWM_DECOR_MAXIMIZE (1L << 6)
+
+#define PROP_MOTIF_WM_HINT_ELEMENTS 3
+
+typedef struct {
+ unsigned long flags;
+ unsigned long functions;
+ unsigned long decorations;
+} MwmHints;
+
+enum {
+ CLICK_ACTION_NONE,
+ CLICK_ACTION_SHADE,
+ CLICK_ACTION_MAXIMIZE,
+ CLICK_ACTION_MINIMIZE,
+ CLICK_ACTION_RAISE,
+ CLICK_ACTION_LOWER,
+ CLICK_ACTION_MENU,
+ CLICK_ACTION_MAXIMIZE_HORZ,
+ CLICK_ACTION_MAXIMIZE_VERT
+};
+
+enum {
+ WHEEL_ACTION_NONE,
+ WHEEL_ACTION_SHADE
+};
+
+#define DOUBLE_CLICK_ACTION_DEFAULT CLICK_ACTION_MAXIMIZE
+#define MIDDLE_CLICK_ACTION_DEFAULT CLICK_ACTION_LOWER
+#define RIGHT_CLICK_ACTION_DEFAULT CLICK_ACTION_MENU
+#define WHEEL_ACTION_DEFAULT WHEEL_ACTION_NONE
+
+int double_click_action = DOUBLE_CLICK_ACTION_DEFAULT;
+int middle_click_action = MIDDLE_CLICK_ACTION_DEFAULT;
+int right_click_action = RIGHT_CLICK_ACTION_DEFAULT;
+int wheel_action = WHEEL_ACTION_DEFAULT;
+
+static gboolean minimal = FALSE;
+
+static double decoration_alpha = 0.5;
+
+#define SWITCHER_SPACE 40
+
+static decor_extents_t _shadow_extents = { 0, 0, 0, 0 };
+static decor_extents_t _win_extents = { 6, 6, 4, 6 };
+static decor_extents_t _max_win_extents = { 6, 6, 4, 6 };
+static decor_extents_t _default_win_extents = { 6, 6, 4, 6 };
+static decor_extents_t _switcher_extents = { 6, 6, 6, 6 + SWITCHER_SPACE };
+
+static int titlebar_height = 17;
+static int max_titlebar_height = 17;
+
+static decor_context_t window_context = {
+ { 0, 0, 0, 0 },
+ 6, 6, 4, 6,
+ 0, 0, 0, 0
+};
+
+static decor_context_t max_window_context = {
+ { 0, 0, 0, 0 },
+ 6, 6, 4, 6,
+ 0, 0, 0, 0
+};
+
+static decor_context_t switcher_context = {
+ { 0, 0, 0, 0 },
+ 6, 6, 6, 6 + SWITCHER_SPACE,
+ 0, 0, 0, 0
+};
+
+static decor_context_t shadow_context = {
+ { 0, 0, 0, 0 },
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+};
+
+static gdouble shadow_radius = SHADOW_RADIUS;
+static gdouble shadow_opacity = SHADOW_OPACITY;
+static gushort shadow_color[3] = {
+ SHADOW_COLOR_RED,
+ SHADOW_COLOR_GREEN,
+ SHADOW_COLOR_BLUE
+};
+static gint shadow_offset_x = SHADOW_OFFSET_X;
+static gint shadow_offset_y = SHADOW_OFFSET_Y;
+
+#ifdef USE_METACITY
+static double meta_opacity = META_OPACITY;
+static gboolean meta_shade_opacity = META_SHADE_OPACITY;
+static double meta_active_opacity = META_ACTIVE_OPACITY;
+static gboolean meta_active_shade_opacity = META_ACTIVE_SHADE_OPACITY;
+
+static gboolean meta_button_layout_set = FALSE;
+static MetaButtonLayout meta_button_layout;
+#endif
+
+static guint cmdline_options = 0;
+
+static decor_shadow_t *no_border_shadow = NULL;
+static decor_shadow_t *border_shadow = NULL;
+static decor_shadow_t *max_border_shadow = NULL;
+static decor_shadow_t *switcher_shadow = NULL;
+
+static GdkPixmap *decor_normal_pixmap = NULL;
+static GdkPixmap *decor_active_pixmap = NULL;
+
+static Atom frame_window_atom;
+static Atom win_decor_atom;
+static Atom win_blur_decor_atom;
+static Atom wm_move_resize_atom;
+static Atom restack_window_atom;
+static Atom select_window_atom;
+static Atom mwm_hints_atom;
+static Atom switcher_fg_atom;
+
+static Atom toolkit_action_atom;
+static Atom toolkit_action_window_menu_atom;
+static Atom toolkit_action_force_quit_dialog_atom;
+
+static Time dm_sn_timestamp;
+
+#define C(name) { 0, XC_ ## name }
+
+static struct _cursor {
+ Cursor cursor;
+ unsigned int shape;
+} cursor[3][3] = {
+ { C (top_left_corner), C (top_side), C (top_right_corner) },
+ { C (left_side), C (left_ptr), C (right_side) },
+ { C (bottom_left_corner), C (bottom_side), C (bottom_right_corner) }
+};
+
+#define BUTTON_CLOSE 0
+#define BUTTON_MAX 1
+#define BUTTON_MIN 2
+#define BUTTON_MENU 3
+#define BUTTON_SHADE 4
+#define BUTTON_ABOVE 5
+#define BUTTON_STICK 6
+#define BUTTON_UNSHADE 7
+#define BUTTON_UNABOVE 8
+#define BUTTON_UNSTICK 9
+#define BUTTON_NUM 10
+
+static struct _pos {
+ int x, y, w, h;
+ int xw, yh, ww, hh, yth, hth;
+} pos[3][3] = {
+ {
+ { 0, 0, 10, 21, 0, 0, 0, 0, 0, 1 },
+ { 10, 0, -8, 6, 0, 0, 1, 0, 0, 1 },
+ { 2, 0, 10, 21, 1, 0, 0, 0, 0, 1 }
+ }, {
+ { 0, 10, 6, 11, 0, 0, 0, 1, 1, 0 },
+ { 6, 6, 0, 15, 0, 0, 1, 0, 0, 1 },
+ { 6, 10, 6, 11, 1, 0, 0, 1, 1, 0 }
+ }, {
+ { 0, 17, 10, 10, 0, 1, 0, 0, 1, 0 },
+ { 10, 21, -8, 6, 0, 1, 1, 0, 1, 0 },
+ { 2, 17, 10, 10, 1, 1, 0, 0, 1, 0 }
+ }
+}, bpos[] = {
+ { 0, 6, 16, 16, 1, 0, 0, 0, 0, 0 },
+ { 0, 6, 16, 16, 1, 0, 0, 0, 0, 0 },
+ { 0, 6, 16, 16, 1, 0, 0, 0, 0, 0 },
+ { 6, 2, 16, 16, 0, 0, 0, 0, 0, 0 }
+};
+
+typedef struct _decor_color {
+ double r;
+ double g;
+ double b;
+} decor_color_t;
+
+#define IN_EVENT_WINDOW (1 << 0)
+#define PRESSED_EVENT_WINDOW (1 << 1)
+
+typedef struct _decor {
+ Window event_windows[3][3];
+ Window button_windows[BUTTON_NUM];
+ guint button_states[BUTTON_NUM];
+ GdkPixmap *pixmap;
+ GdkPixmap *buffer_pixmap;
+ GdkGC *gc;
+ decor_layout_t border_layout;
+ decor_context_t *context;
+ decor_shadow_t *shadow;
+ Picture picture;
+ gint button_width;
+ gint width;
+ gint height;
+ gint client_width;
+ gint client_height;
+ gboolean decorated;
+ gboolean active;
+ PangoLayout *layout;
+ gchar *name;
+ cairo_pattern_t *icon;
+ GdkPixmap *icon_pixmap;
+ GdkPixbuf *icon_pixbuf;
+ WnckWindowState state;
+ WnckWindowActions actions;
+ XID prop_xid;
+ GtkWidget *force_quit_dialog;
+ void (*draw) (struct _decor *d);
+} decor_t;
+
+void (*theme_draw_window_decoration) (decor_t *d);
+gboolean (*theme_calc_decoration_size) (decor_t *d,
+ int client_width,
+ int client_height,
+ int text_width,
+ int *width,
+ int *height);
+void (*theme_update_border_extents) (gint text_height);
+void (*theme_get_event_window_position) (decor_t *d,
+ gint i,
+ gint j,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h);
+gboolean (*theme_get_button_position) (decor_t *d,
+ gint i,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h);
+
+typedef void (*event_callback) (WnckWindow *win, XEvent *event);
+
+static char *program_name;
+
+static GtkWidget *style_window;
+static GtkWidget *switcher_label;
+
+static GHashTable *frame_table;
+static GtkWidget *action_menu = NULL;
+static gboolean action_menu_mapped = FALSE;
+static decor_color_t _title_color[2];
+static PangoContext *pango_context;
+static gint double_click_timeout = 250;
+
+static GtkWidget *tip_window;
+static GtkWidget *tip_label;
+static GTimeVal tooltip_last_popdown = { 0, 0 };
+static gint tooltip_timer_tag = 0;
+
+static GSList *draw_list = NULL;
+static guint draw_idle_id = 0;
+
+static PangoFontDescription *titlebar_font = NULL;
+static gboolean use_system_font = FALSE;
+static gint text_height;
+
+#define BLUR_TYPE_NONE 0
+#define BLUR_TYPE_TITLEBAR 1
+#define BLUR_TYPE_ALL 2
+
+static gint blur_type = BLUR_TYPE_NONE;
+
+static GdkPixmap *switcher_pixmap = NULL;
+static GdkPixmap *switcher_buffer_pixmap = NULL;
+static gint switcher_width;
+static gint switcher_height;
+static Window switcher_selected_window = None;
+
+static XRenderPictFormat *xformat;
+
+static void
+decor_update_blur_property (decor_t *d,
+ int width,
+ int height,
+ Region top_region,
+ int top_offset,
+ Region bottom_region,
+ int bottom_offset,
+ Region left_region,
+ int left_offset,
+ Region right_region,
+ int right_offset)
+{
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ long *data = NULL;
+ int size = 0;
+
+ if (blur_type != BLUR_TYPE_ALL)
+ {
+ bottom_region = NULL;
+ left_region = NULL;
+ right_region = NULL;
+
+ if (blur_type != BLUR_TYPE_TITLEBAR)
+ top_region = NULL;
+ }
+
+ if (top_region)
+ size += top_region->numRects;
+ if (bottom_region)
+ size += bottom_region->numRects;
+ if (left_region)
+ size += left_region->numRects;
+ if (right_region)
+ size += right_region->numRects;
+
+ if (size)
+ data = malloc (sizeof (long) * (2 + size * 6));
+
+ if (data)
+ {
+ decor_region_to_blur_property (data, 4, 0, width, height,
+ top_region, top_offset,
+ bottom_region, bottom_offset,
+ left_region, left_offset,
+ right_region, right_offset);
+
+ gdk_error_trap_push ();
+ XChangeProperty (xdisplay, d->prop_xid,
+ win_blur_decor_atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ 2 + size * 6);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+
+ free (data);
+ }
+ else
+ {
+ gdk_error_trap_push ();
+ XDeleteProperty (xdisplay, d->prop_xid, win_blur_decor_atom);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+ }
+}
+
+static void
+decor_update_window_property (decor_t *d)
+{
+ long data[256];
+ Display *xdisplay =
+ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ decor_extents_t extents = _win_extents;
+ gint nQuad;
+ decor_quad_t quads[N_QUADS_MAX];
+ int w, h;
+ gint stretch_offset;
+ REGION top, bottom, left, right;
+
+ w = d->border_layout.top.x2 - d->border_layout.top.x1 -
+ d->context->left_space - d->context->right_space;
+
+ if (d->border_layout.rotation)
+ h = d->border_layout.left.x2 - d->border_layout.left.x1;
+ else
+ h = d->border_layout.left.y2 - d->border_layout.left.y1;
+
+ stretch_offset = w - d->button_width - 1;
+
+ nQuad = decor_set_lSrStXbS_window_quads (quads, d->context,
+ &d->border_layout,
+ stretch_offset);
+
+ extents.top += titlebar_height;
+
+ decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap),
+ &extents, &extents,
+ ICON_SPACE + d->button_width,
+ 0,
+ quads, nQuad);
+
+ gdk_error_trap_push ();
+ XChangeProperty (xdisplay, d->prop_xid,
+ win_decor_atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+
+ top.rects = &top.extents;
+ top.numRects = top.size = 1;
+
+ top.extents.x1 = -extents.left;
+ top.extents.y1 = -extents.top;
+ top.extents.x2 = w + extents.right;
+ top.extents.y2 = 0;
+
+ bottom.rects = &bottom.extents;
+ bottom.numRects = bottom.size = 1;
+
+ bottom.extents.x1 = -extents.left;
+ bottom.extents.y1 = 0;
+ bottom.extents.x2 = w + extents.right;
+ bottom.extents.y2 = extents.bottom;
+
+ left.rects = &left.extents;
+ left.numRects = left.size = 1;
+
+ left.extents.x1 = -extents.left;
+ left.extents.y1 = 0;
+ left.extents.x2 = 0;
+ left.extents.y2 = h;
+
+ right.rects = &right.extents;
+ right.numRects = right.size = 1;
+
+ right.extents.x1 = 0;
+ right.extents.y1 = 0;
+ right.extents.x2 = extents.right;
+ right.extents.y2 = h;
+
+ decor_update_blur_property (d,
+ w, h,
+ &top, stretch_offset,
+ &bottom, w / 2,
+ &left, h / 2,
+ &right, h / 2);
+}
+
+static void
+gdk_cairo_set_source_color_alpha (cairo_t *cr,
+ GdkColor *color,
+ double alpha)
+{
+ cairo_set_source_rgba (cr,
+ color->red / 65535.0,
+ color->green / 65535.0,
+ color->blue / 65535.0,
+ alpha);
+}
+
+static GdkPixmap *
+create_pixmap (int w,
+ int h)
+{
+ if (w == 0 || h ==0)
+ abort ();
+
+ return gdk_pixmap_new (GDK_DRAWABLE (style_window->window), w, h, 32);
+}
+
+#define CORNER_TOPLEFT (1 << 0)
+#define CORNER_TOPRIGHT (1 << 1)
+#define CORNER_BOTTOMRIGHT (1 << 2)
+#define CORNER_BOTTOMLEFT (1 << 3)
+
+static void
+rounded_rectangle (cairo_t *cr,
+ double x,
+ double y,
+ double w,
+ double h,
+ double radius,
+ int corner)
+{
+ if (corner & CORNER_TOPLEFT)
+ cairo_move_to (cr, x + radius, y);
+ else
+ cairo_move_to (cr, x, y);
+
+ if (corner & CORNER_TOPRIGHT)
+ cairo_arc (cr, x + w - radius, y + radius, radius,
+ M_PI * 1.5, M_PI * 2.0);
+ else
+ cairo_line_to (cr, x + w, y);
+
+ if (corner & CORNER_BOTTOMRIGHT)
+ cairo_arc (cr, x + w - radius, y + h - radius, radius,
+ 0.0, M_PI * 0.5);
+ else
+ cairo_line_to (cr, x + w, y + h);
+
+ if (corner & CORNER_BOTTOMLEFT)
+ cairo_arc (cr, x + radius, y + h - radius, radius,
+ M_PI * 0.5, M_PI);
+ else
+ cairo_line_to (cr, x, y + h);
+
+ if (corner & CORNER_TOPLEFT)
+ cairo_arc (cr, x + radius, y + radius, radius, M_PI, M_PI * 1.5);
+ else
+ cairo_line_to (cr, x, y);
+}
+
+#define SHADE_LEFT (1 << 0)
+#define SHADE_RIGHT (1 << 1)
+#define SHADE_TOP (1 << 2)
+#define SHADE_BOTTOM (1 << 3)
+
+static void
+fill_rounded_rectangle (cairo_t *cr,
+ double x,
+ double y,
+ double w,
+ double h,
+ double radius,
+ int corner,
+ decor_color_t *c0,
+ double alpha0,
+ decor_color_t *c1,
+ double alpha1,
+ int gravity)
+{
+ cairo_pattern_t *pattern;
+
+ rounded_rectangle (cr, x, y, w, h, radius, corner);
+
+ if (gravity & SHADE_RIGHT)
+ {
+ x = x + w;
+ w = -w;
+ }
+ else if (!(gravity & SHADE_LEFT))
+ {
+ x = w = 0;
+ }
+
+ if (gravity & SHADE_BOTTOM)
+ {
+ y = y + h;
+ h = -h;
+ }
+ else if (!(gravity & SHADE_TOP))
+ {
+ y = h = 0;
+ }
+
+ if (w && h)
+ {
+ cairo_matrix_t matrix;
+
+ pattern = cairo_pattern_create_radial (0.0, 0.0, 0.0, 0.0, 0.0, w);
+
+ cairo_matrix_init_scale (&matrix, 1.0, w / h);
+ cairo_matrix_translate (&matrix, -(x + w), -(y + h));
+
+ cairo_pattern_set_matrix (pattern, &matrix);
+ }
+ else
+ {
+ pattern = cairo_pattern_create_linear (x + w, y + h, x, y);
+ }
+
+ cairo_pattern_add_color_stop_rgba (pattern, 0.0, c0->r, c0->g, c0->b,
+ alpha0);
+
+ cairo_pattern_add_color_stop_rgba (pattern, 1.0, c1->r, c1->g, c1->b,
+ alpha1);
+
+ cairo_pattern_set_extend (pattern, CAIRO_EXTEND_PAD);
+
+ cairo_set_source (cr, pattern);
+ cairo_fill (cr);
+ cairo_pattern_destroy (pattern);
+}
+
+static void
+draw_shadow_background (decor_t *d,
+ cairo_t *cr,
+ decor_shadow_t *s,
+ decor_context_t *c)
+{
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ if (!s || !s->picture ||!d->picture)
+ {
+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.0);
+ cairo_paint (cr);
+ }
+ else
+ {
+ decor_fill_picture_extents_with_shadow (xdisplay,
+ s, c,
+ d->picture,
+ &d->border_layout);
+ }
+}
+
+static void
+draw_close_button (decor_t *d,
+ cairo_t *cr,
+ double s)
+{
+ cairo_rel_move_to (cr, 0.0, s);
+
+ cairo_rel_line_to (cr, s, -s);
+ cairo_rel_line_to (cr, s, s);
+ cairo_rel_line_to (cr, s, -s);
+ cairo_rel_line_to (cr, s, s);
+
+ cairo_rel_line_to (cr, -s, s);
+ cairo_rel_line_to (cr, s, s);
+ cairo_rel_line_to (cr, -s, s);
+ cairo_rel_line_to (cr, -s, -s);
+
+ cairo_rel_line_to (cr, -s, s);
+ cairo_rel_line_to (cr, -s, -s);
+ cairo_rel_line_to (cr, s, -s);
+
+ cairo_close_path (cr);
+}
+
+static void
+draw_max_button (decor_t *d,
+ cairo_t *cr,
+ double s)
+{
+ cairo_rel_line_to (cr, 12.0, 0.0);
+ cairo_rel_line_to (cr, 0.0, 12.0);
+ cairo_rel_line_to (cr, -12.0, 0.0);
+
+ cairo_close_path (cr);
+
+ cairo_rel_move_to (cr, 2.0, s);
+
+ cairo_rel_line_to (cr, 12.0 - 4.0, 0.0);
+ cairo_rel_line_to (cr, 0.0, 12.0 - s - 2.0);
+ cairo_rel_line_to (cr, -(12.0 - 4.0), 0.0);
+
+ cairo_close_path (cr);
+}
+
+static void
+draw_unmax_button (decor_t *d,
+ cairo_t *cr,
+ double s)
+{
+ cairo_rel_move_to (cr, 1.0, 1.0);
+
+ cairo_rel_line_to (cr, 10.0, 0.0);
+ cairo_rel_line_to (cr, 0.0, 10.0);
+ cairo_rel_line_to (cr, -10.0, 0.0);
+
+ cairo_close_path (cr);
+
+ cairo_rel_move_to (cr, 2.0, s);
+
+ cairo_rel_line_to (cr, 10.0 - 4.0, 0.0);
+ cairo_rel_line_to (cr, 0.0, 10.0 - s - 2.0);
+ cairo_rel_line_to (cr, -(10.0 - 4.0), 0.0);
+
+ cairo_close_path (cr);
+}
+
+static void
+draw_min_button (decor_t *d,
+ cairo_t *cr,
+ double s)
+{
+ cairo_rel_move_to (cr, 0.0, 8.0);
+
+ cairo_rel_line_to (cr, 12.0, 0.0);
+ cairo_rel_line_to (cr, 0.0, s);
+ cairo_rel_line_to (cr, -12.0, 0.0);
+
+ cairo_close_path (cr);
+}
+
+typedef void (*draw_proc) (cairo_t *cr);
+
+static void
+button_state_offsets (gdouble x,
+ gdouble y,
+ guint state,
+ gdouble *return_x,
+ gdouble *return_y)
+{
+ static double off[] = { 0.0, 0.0, 0.0, 0.5 };
+
+ *return_x = x + off[state];
+ *return_y = y + off[state];
+}
+
+static void
+button_state_paint (cairo_t *cr,
+ GtkStyle *style,
+ decor_color_t *color,
+ guint state)
+{
+
+#define IN_STATE (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW)
+
+ if ((state & IN_STATE) == IN_STATE)
+ {
+ if (state & IN_EVENT_WINDOW)
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
+ else
+ cairo_set_source_rgba (cr, color->r, color->g, color->b, 0.95);
+
+ cairo_fill_preserve (cr);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ STROKE_ALPHA);
+
+ cairo_set_line_width (cr, 1.0);
+ cairo_stroke (cr);
+ cairo_set_line_width (cr, 2.0);
+ }
+ else
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ STROKE_ALPHA);
+ cairo_stroke_preserve (cr);
+
+ if (state & IN_EVENT_WINDOW)
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
+ else
+ cairo_set_source_rgba (cr, color->r, color->g, color->b, 0.95);
+
+ cairo_fill (cr);
+ }
+}
+
+static void
+draw_window_decoration (decor_t *d)
+{
+ cairo_t *cr;
+ GtkStyle *style;
+ decor_color_t color;
+ double alpha;
+ double x1, y1, x2, y2, x, y, h;
+ int corners = SHADE_LEFT | SHADE_RIGHT | SHADE_TOP | SHADE_BOTTOM;
+ int top;
+ int button_x;
+
+ if (!d->pixmap)
+ return;
+
+ style = gtk_widget_get_style (style_window);
+
+ if (d->state & (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY |
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY))
+ corners = 0;
+
+ color.r = style->bg[GTK_STATE_NORMAL].red / 65535.0;
+ color.g = style->bg[GTK_STATE_NORMAL].green / 65535.0;
+ color.b = style->bg[GTK_STATE_NORMAL].blue / 65535.0;
+
+ if (d->buffer_pixmap)
+ cr = gdk_cairo_create (GDK_DRAWABLE (d->buffer_pixmap));
+ else
+ cr = gdk_cairo_create (GDK_DRAWABLE (d->pixmap));
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ top = _win_extents.top + titlebar_height;
+
+ x1 = d->context->left_space - _win_extents.left;
+ y1 = d->context->top_space - _win_extents.top - titlebar_height;
+ x2 = d->width - d->context->right_space + _win_extents.right;
+ y2 = d->height - d->context->bottom_space + _win_extents.bottom;
+
+ h = d->height - d->context->top_space - d->context->bottom_space;
+
+ cairo_set_line_width (cr, 1.0);
+
+ draw_shadow_background (d, cr, d->shadow, d->context);
+
+ if (d->active)
+ {
+ decor_color_t *title_color = _title_color;
+
+ alpha = decoration_alpha + 0.3;
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y1 + 0.5,
+ _win_extents.left - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPLEFT & corners,
+ &title_color[0], 1.0, &title_color[1], alpha,
+ SHADE_TOP | SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x1 + _win_extents.left,
+ y1 + 0.5,
+ x2 - x1 - _win_extents.left -
+ _win_extents.right,
+ top - 0.5,
+ 5.0, 0,
+ &title_color[0], 1.0, &title_color[1], alpha,
+ SHADE_TOP);
+
+ fill_rounded_rectangle (cr,
+ x2 - _win_extents.right,
+ y1 + 0.5,
+ _win_extents.right - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPRIGHT & corners,
+ &title_color[0], 1.0, &title_color[1], alpha,
+ SHADE_TOP | SHADE_RIGHT);
+ }
+ else
+ {
+ alpha = decoration_alpha;
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y1 + 0.5,
+ _win_extents.left - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPLEFT & corners,
+ &color, 1.0, &color, alpha,
+ SHADE_TOP | SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x1 + _win_extents.left,
+ y1 + 0.5,
+ x2 - x1 - _win_extents.left -
+ _win_extents.right,
+ top - 0.5,
+ 5.0, 0,
+ &color, 1.0, &color, alpha,
+ SHADE_TOP);
+
+ fill_rounded_rectangle (cr,
+ x2 - _win_extents.right,
+ y1 + 0.5,
+ _win_extents.right - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPRIGHT & corners,
+ &color, 1.0, &color, alpha,
+ SHADE_TOP | SHADE_RIGHT);
+ }
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y1 + top,
+ _win_extents.left - 0.5,
+ h,
+ 5.0, 0,
+ &color, 1.0, &color, alpha,
+ SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x2 - _win_extents.right,
+ y1 + top,
+ _win_extents.right - 0.5,
+ h,
+ 5.0, 0,
+ &color, 1.0, &color, alpha,
+ SHADE_RIGHT);
+
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y2 - _win_extents.bottom,
+ _win_extents.left - 0.5,
+ _win_extents.bottom - 0.5,
+ 5.0, CORNER_BOTTOMLEFT & corners,
+ &color, 1.0, &color, alpha,
+ SHADE_BOTTOM | SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x1 + _win_extents.left,
+ y2 - _win_extents.bottom,
+ x2 - x1 - _win_extents.left -
+ _win_extents.right,
+ _win_extents.bottom - 0.5,
+ 5.0, 0,
+ &color, 1.0, &color, alpha,
+ SHADE_BOTTOM);
+
+ fill_rounded_rectangle (cr,
+ x2 - _win_extents.right,
+ y2 - _win_extents.bottom,
+ _win_extents.right - 0.5,
+ _win_extents.bottom - 0.5,
+ 5.0, CORNER_BOTTOMRIGHT & corners,
+ &color, 1.0, &color, alpha,
+ SHADE_BOTTOM | SHADE_RIGHT);
+
+ cairo_rectangle (cr,
+ d->context->left_space,
+ d->context->top_space,
+ d->width - d->context->left_space -
+ d->context->right_space,
+ h);
+ gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
+ cairo_fill (cr);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
+ if (d->active)
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ 0.7);
+
+ cairo_move_to (cr, x1 + 0.5, y1 + top - 0.5);
+ cairo_rel_line_to (cr, x2 - x1 - 1.0, 0.0);
+
+ cairo_stroke (cr);
+ }
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ (CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT) & corners);
+
+ cairo_clip (cr);
+
+ cairo_translate (cr, 1.0, 1.0);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ (CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT) & corners);
+
+ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.4);
+ cairo_stroke (cr);
+
+ cairo_translate (cr, -2.0, -2.0);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ (CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT) & corners);
+
+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.1);
+ cairo_stroke (cr);
+
+ cairo_translate (cr, 1.0, 1.0);
+
+ cairo_reset_clip (cr);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ (CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT) & corners);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha);
+
+ cairo_stroke (cr);
+
+ cairo_set_line_width (cr, 2.0);
+
+ button_x = d->width - d->context->right_space - 13;
+
+ if (d->actions & WNCK_WINDOW_ACTION_CLOSE)
+ {
+ button_state_offsets (button_x,
+ y1 - 3.0 + titlebar_height / 2,
+ d->button_states[BUTTON_CLOSE], &x, &y);
+
+ button_x -= 17;
+
+ if (d->active)
+ {
+ cairo_move_to (cr, x, y);
+ draw_close_button (d, cr, 3.0);
+ button_state_paint (cr, style, &color,
+ d->button_states[BUTTON_CLOSE]);
+ }
+ else
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha * 0.75);
+ cairo_move_to (cr, x, y);
+ draw_close_button (d, cr, 3.0);
+ cairo_fill (cr);
+ }
+ }
+
+ if (d->actions & WNCK_WINDOW_ACTION_MAXIMIZE)
+ {
+ button_state_offsets (button_x,
+ y1 - 3.0 + titlebar_height / 2,
+ d->button_states[BUTTON_MAX], &x, &y);
+
+ button_x -= 17;
+
+ cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
+
+ if (d->active)
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ STROKE_ALPHA);
+ cairo_move_to (cr, x, y);
+
+ if (d->state & (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY |
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY))
+ draw_unmax_button (d, cr, 4.0);
+ else
+ draw_max_button (d, cr, 4.0);
+
+ button_state_paint (cr, style, &color,
+ d->button_states[BUTTON_MAX]);
+ }
+ else
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha * 0.75);
+ cairo_move_to (cr, x, y);
+
+ if (d->state & (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY |
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY))
+ draw_unmax_button (d, cr, 4.0);
+ else
+ draw_max_button (d, cr, 4.0);
+
+ cairo_fill (cr);
+ }
+ }
+
+ if (d->actions & WNCK_WINDOW_ACTION_MINIMIZE)
+ {
+ button_state_offsets (button_x,
+ y1 - 3.0 + titlebar_height / 2,
+ d->button_states[BUTTON_MIN], &x, &y);
+
+ button_x -= 17;
+
+ if (d->active)
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ STROKE_ALPHA);
+ cairo_move_to (cr, x, y);
+ draw_min_button (d, cr, 4.0);
+ button_state_paint (cr, style, &color,
+ d->button_states[BUTTON_MIN]);
+ }
+ else
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha * 0.75);
+ cairo_move_to (cr, x, y);
+ draw_min_button (d, cr, 4.0);
+ cairo_fill (cr);
+ }
+ }
+
+ if (d->layout)
+ {
+ if (d->active)
+ {
+ cairo_move_to (cr,
+ d->context->left_space + 21.0,
+ y1 + 2.0 + (titlebar_height - text_height) / 2.0);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ STROKE_ALPHA);
+
+ pango_cairo_layout_path (cr, d->layout);
+ cairo_stroke (cr);
+
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
+ }
+ else
+ {
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha);
+ }
+
+ cairo_move_to (cr,
+ d->context->left_space + 21.0,
+ y1 + 2.0 + (titlebar_height - text_height) / 2.0);
+
+ pango_cairo_show_layout (cr, d->layout);
+ }
+
+ if (d->icon)
+ {
+ cairo_translate (cr, d->context->left_space + 1,
+ y1 - 5.0 + titlebar_height / 2);
+ cairo_set_source (cr, d->icon);
+ cairo_rectangle (cr, 0.0, 0.0, 16.0, 16.0);
+ cairo_clip (cr);
+
+ if (d->active)
+ cairo_paint (cr);
+ else
+ cairo_paint_with_alpha (cr, alpha);
+ }
+
+ cairo_destroy (cr);
+
+ if (d->buffer_pixmap)
+ gdk_draw_drawable (d->pixmap,
+ d->gc,
+ d->buffer_pixmap,
+ 0,
+ 0,
+ 0,
+ 0,
+ d->width,
+ d->height);
+
+ if (d->prop_xid)
+ {
+ decor_update_window_property (d);
+ d->prop_xid = 0;
+ }
+}
+
+#ifdef USE_METACITY
+static void
+decor_update_meta_window_property (decor_t *d,
+ MetaTheme *theme,
+ MetaFrameFlags flags,
+ Region top,
+ Region bottom,
+ Region left,
+ Region right)
+{
+ long data[256];
+ Display *xdisplay =
+ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ gint nQuad;
+ decor_extents_t extents, max_extents;
+ decor_quad_t quads[N_QUADS_MAX];
+ gint w, lh, rh;
+ gint top_stretch_offset;
+ gint bottom_stretch_offset;
+ gint left_stretch_offset;
+ gint right_stretch_offset;
+
+ w = d->border_layout.top.x2 - d->border_layout.top.x1 -
+ d->context->left_space - d->context->right_space;
+
+ if (d->border_layout.rotation)
+ lh = d->border_layout.left.x2 - d->border_layout.left.x1;
+ else
+ lh = d->border_layout.left.y2 - d->border_layout.left.y1;
+
+ if (d->border_layout.rotation)
+ rh = d->border_layout.right.x2 - d->border_layout.right.x1;
+ else
+ rh = d->border_layout.right.y2 - d->border_layout.right.y1;
+
+ left_stretch_offset = lh / 2;
+ right_stretch_offset = rh / 2;
+ top_stretch_offset = w - d->button_width - 1;
+ bottom_stretch_offset = (d->border_layout.bottom.x2 -
+ d->border_layout.bottom.x1 -
+ d->context->left_space -
+ d->context->right_space) / 2;
+
+ nQuad = decor_set_lXrXtXbX_window_quads (quads, d->context,
+ &d->border_layout,
+ left_stretch_offset,
+ right_stretch_offset,
+ top_stretch_offset,
+ bottom_stretch_offset);
+
+ extents = _win_extents;
+ max_extents = _max_win_extents;
+
+ extents.top += titlebar_height;
+ max_extents.top += max_titlebar_height;
+
+ decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap),
+ &extents, &max_extents,
+ ICON_SPACE + d->button_width,
+ 0,
+ quads, nQuad);
+
+ gdk_error_trap_push ();
+ XChangeProperty (xdisplay, d->prop_xid,
+ win_decor_atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+
+ decor_update_blur_property (d,
+ w, lh,
+ top, top_stretch_offset,
+ bottom, bottom_stretch_offset,
+ left, left_stretch_offset,
+ right, right_stretch_offset);
+}
+
+static void
+meta_get_corner_radius (const MetaFrameGeometry *fgeom,
+ int *top_left_radius,
+ int *top_right_radius,
+ int *bottom_left_radius,
+ int *bottom_right_radius)
+{
+
+#ifdef HAVE_METACITY_2_17_0
+ *top_left_radius = fgeom->top_left_corner_rounded_radius;
+ *top_right_radius = fgeom->top_right_corner_rounded_radius;
+ *bottom_left_radius = fgeom->bottom_left_corner_rounded_radius;
+ *bottom_right_radius = fgeom->bottom_right_corner_rounded_radius;
+#else
+ *top_left_radius = fgeom->top_left_corner_rounded ? 5 : 0;
+ *top_right_radius = fgeom->top_right_corner_rounded ? 5 : 0;
+ *bottom_left_radius = fgeom->bottom_left_corner_rounded ? 5 : 0;
+ *bottom_right_radius = fgeom->bottom_right_corner_rounded ? 5 : 0;
+#endif
+
+}
+
+static int
+radius_to_width (int radius,
+ int i)
+{
+ float r1 = sqrt (radius) + radius;
+ float r2 = r1 * r1 - (r1 - (i + 0.5)) * (r1 - (i + 0.5));
+
+ return floor (0.5f + r1 - sqrt (r2));
+}
+
+static Region
+meta_get_top_border_region (const MetaFrameGeometry *fgeom,
+ int width)
+{
+ Region corners_xregion, border_xregion;
+ XRectangle xrect;
+ int top_left_radius;
+ int top_right_radius;
+ int bottom_left_radius;
+ int bottom_right_radius;
+ int w, i;
+
+ corners_xregion = XCreateRegion ();
+
+ meta_get_corner_radius (fgeom,
+ &top_left_radius,
+ &top_right_radius,
+ &bottom_left_radius,
+ &bottom_right_radius);
+
+ if (top_left_radius)
+ {
+ for (i = 0; i < top_left_radius; i++)
+ {
+ w = radius_to_width (top_left_radius, i);
+
+ xrect.x = 0;
+ xrect.y = i;
+ xrect.width = w;
+ xrect.height = 1;
+
+ XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
+ }
+ }
+
+ if (top_right_radius)
+ {
+ for (i = 0; i < top_right_radius; i++)
+ {
+ w = radius_to_width (top_right_radius, i);
+
+ xrect.x = width - w;
+ xrect.y = i;
+ xrect.width = w;
+ xrect.height = 1;
+
+ XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
+ }
+ }
+
+ border_xregion = XCreateRegion ();
+
+ xrect.x = 0;
+ xrect.y = 0;
+ xrect.width = width;
+ xrect.height = fgeom->top_height;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+ XSubtractRegion (border_xregion, corners_xregion, border_xregion);
+
+ XDestroyRegion (corners_xregion);
+
+ return border_xregion;
+}
+
+static Region
+meta_get_bottom_border_region (const MetaFrameGeometry *fgeom,
+ int width)
+{
+ Region corners_xregion, border_xregion;
+ XRectangle xrect;
+ int top_left_radius;
+ int top_right_radius;
+ int bottom_left_radius;
+ int bottom_right_radius;
+ int w, i;
+
+ corners_xregion = XCreateRegion ();
+
+ meta_get_corner_radius (fgeom,
+ &top_left_radius,
+ &top_right_radius,
+ &bottom_left_radius,
+ &bottom_right_radius);
+
+ if (bottom_left_radius)
+ {
+ for (i = 0; i < bottom_left_radius; i++)
+ {
+ w = radius_to_width (bottom_left_radius, i);
+
+ xrect.x = 0;
+ xrect.y = fgeom->bottom_height - i - 1;
+ xrect.width = w;
+ xrect.height = 1;
+
+ XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
+ }
+ }
+
+ if (bottom_right_radius)
+ {
+ for (i = 0; i < bottom_right_radius; i++)
+ {
+ w = radius_to_width (bottom_right_radius, i);
+
+ xrect.x = width - w;
+ xrect.y = fgeom->bottom_height - i - 1;
+ xrect.width = w;
+ xrect.height = 1;
+
+ XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
+ }
+ }
+
+ border_xregion = XCreateRegion ();
+
+ xrect.x = 0;
+ xrect.y = 0;
+ xrect.width = width;
+ xrect.height = fgeom->bottom_height;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+ XSubtractRegion (border_xregion, corners_xregion, border_xregion);
+
+ XDestroyRegion (corners_xregion);
+
+ return border_xregion;
+}
+
+static Region
+meta_get_left_border_region (const MetaFrameGeometry *fgeom,
+ int height)
+{
+ Region border_xregion;
+ XRectangle xrect;
+
+ border_xregion = XCreateRegion ();
+
+ xrect.x = 0;
+ xrect.y = 0;
+ xrect.width = fgeom->left_width;
+ xrect.height = height - fgeom->top_height - fgeom->bottom_height;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+ return border_xregion;
+}
+
+static Region
+meta_get_right_border_region (const MetaFrameGeometry *fgeom,
+ int height)
+{
+ Region border_xregion;
+ XRectangle xrect;
+
+ border_xregion = XCreateRegion ();
+
+ xrect.x = 0;
+ xrect.y = 0;
+ xrect.width = fgeom->right_width;
+ xrect.height = height - fgeom->top_height - fgeom->bottom_height;
+
+ XUnionRectWithRegion (&xrect, border_xregion, border_xregion);
+
+ return border_xregion;
+}
+
+static MetaButtonState
+meta_button_state (int state)
+{
+ if (state & IN_EVENT_WINDOW)
+ {
+ if (state & PRESSED_EVENT_WINDOW)
+ return META_BUTTON_STATE_PRESSED;
+
+ return META_BUTTON_STATE_PRELIGHT;
+ }
+
+ return META_BUTTON_STATE_NORMAL;
+}
+
+static MetaButtonType
+meta_function_to_type (MetaButtonFunction function)
+{
+ switch (function) {
+ case META_BUTTON_FUNCTION_MENU:
+ return META_BUTTON_TYPE_MENU;
+ case META_BUTTON_FUNCTION_MINIMIZE:
+ return META_BUTTON_TYPE_MINIMIZE;
+ case META_BUTTON_FUNCTION_MAXIMIZE:
+ return META_BUTTON_TYPE_MAXIMIZE;
+ case META_BUTTON_FUNCTION_CLOSE:
+ return META_BUTTON_TYPE_CLOSE;
+
+#ifdef HAVE_METACITY_2_17_0
+ case META_BUTTON_FUNCTION_SHADE:
+ return META_BUTTON_TYPE_SHADE;
+ case META_BUTTON_FUNCTION_ABOVE:
+ return META_BUTTON_TYPE_ABOVE;
+ case META_BUTTON_FUNCTION_STICK:
+ return META_BUTTON_TYPE_STICK;
+ case META_BUTTON_FUNCTION_UNSHADE:
+ return META_BUTTON_TYPE_UNSHADE;
+ case META_BUTTON_FUNCTION_UNABOVE:
+ return META_BUTTON_TYPE_UNABOVE;
+ case META_BUTTON_FUNCTION_UNSTICK:
+ return META_BUTTON_TYPE_UNSTICK;
+#endif
+
+ default:
+ break;
+ }
+
+ return META_BUTTON_TYPE_LAST;
+}
+
+static MetaButtonState
+meta_button_state_for_button_type (decor_t *d,
+ MetaButtonType type)
+{
+ switch (type) {
+ case META_BUTTON_TYPE_LEFT_LEFT_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.left_buttons[0]);
+ break;
+ case META_BUTTON_TYPE_LEFT_MIDDLE_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.left_buttons[1]);
+ break;
+ case META_BUTTON_TYPE_LEFT_RIGHT_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.left_buttons[2]);
+ break;
+ case META_BUTTON_TYPE_RIGHT_LEFT_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.right_buttons[0]);
+ break;
+ case META_BUTTON_TYPE_RIGHT_MIDDLE_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.right_buttons[1]);
+ break;
+ case META_BUTTON_TYPE_RIGHT_RIGHT_BACKGROUND:
+ type = meta_function_to_type (meta_button_layout.right_buttons[2]);
+ default:
+ break;
+ }
+
+ switch (type) {
+ case META_BUTTON_TYPE_CLOSE:
+ return meta_button_state (d->button_states[BUTTON_CLOSE]);
+ case META_BUTTON_TYPE_MAXIMIZE:
+ return meta_button_state (d->button_states[BUTTON_MAX]);
+ case META_BUTTON_TYPE_MINIMIZE:
+ return meta_button_state (d->button_states[BUTTON_MIN]);
+ case META_BUTTON_TYPE_MENU:
+ return meta_button_state (d->button_states[BUTTON_MENU]);
+
+#ifdef HAVE_METACITY_2_17_0
+ case META_BUTTON_TYPE_SHADE:
+ return meta_button_state (d->button_states[BUTTON_SHADE]);
+ case META_BUTTON_TYPE_ABOVE:
+ return meta_button_state (d->button_states[BUTTON_ABOVE]);
+ case META_BUTTON_TYPE_STICK:
+ return meta_button_state (d->button_states[BUTTON_STICK]);
+ case META_BUTTON_TYPE_UNSHADE:
+ return meta_button_state (d->button_states[BUTTON_UNSHADE]);
+ case META_BUTTON_TYPE_UNABOVE:
+ return meta_button_state (d->button_states[BUTTON_UNABOVE]);
+ case META_BUTTON_TYPE_UNSTICK:
+ return meta_button_state (d->button_states[BUTTON_UNSTICK]);
+#endif
+
+ default:
+ break;
+ }
+
+ return META_BUTTON_STATE_NORMAL;
+}
+
+static void
+meta_get_decoration_geometry (decor_t *d,
+ MetaTheme *theme,
+ MetaFrameFlags *flags,
+ MetaFrameGeometry *fgeom,
+ MetaButtonLayout *button_layout,
+ GdkRectangle *clip)
+{
+ gint left_width, right_width, top_height, bottom_height;
+
+ if (meta_button_layout_set)
+ {
+ *button_layout = meta_button_layout;
+ }
+ else
+ {
+ gint i;
+
+ button_layout->left_buttons[0] = META_BUTTON_FUNCTION_MENU;
+
+ for (i = 1; i < MAX_BUTTONS_PER_CORNER; i++)
+ button_layout->left_buttons[i] = META_BUTTON_FUNCTION_LAST;
+
+ button_layout->right_buttons[0] = META_BUTTON_FUNCTION_MINIMIZE;
+ button_layout->right_buttons[1] = META_BUTTON_FUNCTION_MAXIMIZE;
+ button_layout->right_buttons[2] = META_BUTTON_FUNCTION_CLOSE;
+
+ for (i = 3; i < MAX_BUTTONS_PER_CORNER; i++)
+ button_layout->right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+ }
+
+ *flags = 0;
+
+ if (d->actions & WNCK_WINDOW_ACTION_CLOSE)
+ *flags |= META_FRAME_ALLOWS_DELETE;
+
+ if (d->actions & WNCK_WINDOW_ACTION_MINIMIZE)
+ *flags |= META_FRAME_ALLOWS_MINIMIZE;
+
+ if (d->actions & WNCK_WINDOW_ACTION_MAXIMIZE)
+ *flags |= META_FRAME_ALLOWS_MAXIMIZE;
+
+ *flags |= META_FRAME_ALLOWS_MENU;
+
+ if (d->actions & WNCK_WINDOW_ACTION_RESIZE)
+ {
+ if (!(d->state & WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY))
+ *flags |= META_FRAME_ALLOWS_VERTICAL_RESIZE;
+ if (!(d->state & WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY))
+ *flags |= META_FRAME_ALLOWS_HORIZONTAL_RESIZE;
+ }
+
+ if (d->actions & WNCK_WINDOW_ACTION_MOVE)
+ *flags |= META_FRAME_ALLOWS_MOVE;
+
+ if (d->actions & WNCK_WINDOW_ACTION_MAXIMIZE)
+ *flags |= META_FRAME_ALLOWS_MAXIMIZE;
+
+ if (d->actions & WNCK_WINDOW_ACTION_SHADE)
+ *flags |= META_FRAME_ALLOWS_SHADE;
+
+ if (d->active)
+ *flags |= META_FRAME_HAS_FOCUS;
+
+#define META_MAXIMIZED (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY | \
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY)
+
+ if ((d->state & META_MAXIMIZED) == META_MAXIMIZED)
+ *flags |= META_FRAME_MAXIMIZED;
+
+ if (d->state & WNCK_WINDOW_STATE_STICKY)
+ *flags |= META_FRAME_STUCK;
+
+ if (d->state & WNCK_WINDOW_STATE_FULLSCREEN)
+ *flags |= META_FRAME_FULLSCREEN;
+
+ if (d->state & WNCK_WINDOW_STATE_SHADED)
+ *flags |= META_FRAME_SHADED;
+
+#ifdef HAVE_METACITY_2_17_0
+ if (d->state & WNCK_WINDOW_STATE_ABOVE)
+ *flags |= META_FRAME_ABOVE;
+#endif
+
+ meta_theme_get_frame_borders (theme,
+ META_FRAME_TYPE_NORMAL,
+ text_height,
+ *flags,
+ &top_height,
+ &bottom_height,
+ &left_width,
+ &right_width);
+
+ clip->x = d->context->left_space - left_width;
+ clip->y = d->context->top_space - top_height;
+
+ clip->width = d->border_layout.top.x2 - d->border_layout.top.x1;
+ clip->width -= d->context->right_space + d->context->left_space;
+
+ if (d->border_layout.rotation)
+ clip->height = d->border_layout.left.x2 - d->border_layout.left.x1;
+ else
+ clip->height = d->border_layout.left.y2 - d->border_layout.left.y1;
+
+ meta_theme_calc_geometry (theme,
+ META_FRAME_TYPE_NORMAL,
+ text_height,
+ *flags,
+ clip->width,
+ clip->height,
+ button_layout,
+ fgeom);
+
+ clip->width += left_width + right_width;
+ clip->height += top_height + bottom_height;
+}
+
+static void
+meta_draw_window_decoration (decor_t *d)
+{
+ Display *xdisplay =
+ GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ GdkPixmap *pixmap;
+ Picture src;
+ MetaButtonState button_states[META_BUTTON_TYPE_LAST];
+ MetaButtonLayout button_layout;
+ MetaFrameGeometry fgeom;
+ MetaFrameFlags flags;
+ MetaTheme *theme;
+ GtkStyle *style;
+ cairo_t *cr;
+ gint size, i;
+ GdkRectangle clip, rect;
+ GdkDrawable *drawable;
+ Region top_region = NULL;
+ Region bottom_region = NULL;
+ Region left_region = NULL;
+ Region right_region = NULL;
+ double alpha = (d->active) ? meta_active_opacity : meta_opacity;
+ gboolean shade_alpha = (d->active) ? meta_active_shade_opacity :
+ meta_shade_opacity;
+ MetaFrameStyle *frame_style;
+ GdkColor bg_color;
+ double bg_alpha;
+
+ if (!d->pixmap || !d->picture)
+ return;
+
+ if (decoration_alpha == 1.0)
+ alpha = 1.0;
+
+ style = gtk_widget_get_style (style_window);
+
+ drawable = d->buffer_pixmap ? d->buffer_pixmap : d->pixmap;
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (drawable));
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ theme = meta_theme_get_current ();
+
+ meta_get_decoration_geometry (d, theme, &flags, &fgeom, &button_layout,
+ &clip);
+
+ /* we only have to redraw the shadow background when decoration
+ changed size */
+ if (d->prop_xid || !d->buffer_pixmap)
+ draw_shadow_background (d, cr, d->shadow, d->context);
+
+ for (i = 0; i < META_BUTTON_TYPE_LAST; i++)
+ button_states[i] = meta_button_state_for_button_type (d, i);
+
+ frame_style = meta_theme_get_frame_style (theme,
+ META_FRAME_TYPE_NORMAL,
+ flags);
+
+ bg_color = style->bg[GTK_STATE_NORMAL];
+ bg_alpha = 1.0;
+
+#ifdef HAVE_METACITY_2_17_0
+ if (frame_style->window_background_color)
+ {
+ meta_color_spec_render (frame_style->window_background_color,
+ GTK_WIDGET (style_window),
+ &bg_color);
+
+ bg_alpha = frame_style->window_background_alpha / 255.0;
+ }
+#endif
+
+ cairo_destroy (cr);
+
+ rect.x = 0;
+ rect.y = 0;
+ rect.width = clip.width;
+
+ size = MAX (fgeom.top_height, fgeom.bottom_height);
+
+ if (rect.width && size)
+ {
+ pixmap = create_pixmap (rect.width, size);
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (pixmap));
+ gdk_cairo_set_source_color_alpha (cr, &bg_color, bg_alpha);
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ src = XRenderCreatePicture (xdisplay,
+ GDK_PIXMAP_XID (pixmap),
+ xformat, 0, NULL);
+
+ if (fgeom.top_height)
+ {
+ rect.height = fgeom.top_height;
+
+ cairo_paint (cr);
+
+ meta_theme_draw_frame (theme,
+ style_window,
+ pixmap,
+ &rect,
+ 0, 0,
+ META_FRAME_TYPE_NORMAL,
+ flags,
+ clip.width - fgeom.left_width -
+ fgeom.right_width,
+ clip.height - fgeom.top_height -
+ fgeom.bottom_height,
+ d->layout,
+ text_height,
+ &button_layout,
+ button_states,
+ d->icon_pixbuf,
+ NULL);
+
+ top_region = meta_get_top_border_region (&fgeom, clip.width);
+
+ decor_blend_border_picture (xdisplay,
+ d->context,
+ src,
+ 0, 0,
+ d->picture,
+ &d->border_layout,
+ BORDER_TOP,
+ top_region,
+ alpha * 0xffff,
+ shade_alpha,
+ 0);
+ }
+
+ if (fgeom.bottom_height)
+ {
+ rect.height = fgeom.bottom_height;
+
+ cairo_paint (cr);
+
+ meta_theme_draw_frame (theme,
+ style_window,
+ pixmap,
+ &rect,
+ 0,
+ -(clip.height - fgeom.bottom_height),
+ META_FRAME_TYPE_NORMAL,
+ flags,
+ clip.width - fgeom.left_width -
+ fgeom.right_width,
+ clip.height - fgeom.top_height -
+ fgeom.bottom_height,
+ d->layout,
+ text_height,
+ &button_layout,
+ button_states,
+ d->icon_pixbuf,
+ NULL);
+
+ bottom_region = meta_get_bottom_border_region (&fgeom, clip.width);
+
+ decor_blend_border_picture (xdisplay,
+ d->context,
+ src,
+ 0, 0,
+ d->picture,
+ &d->border_layout,
+ BORDER_BOTTOM,
+ bottom_region,
+ alpha * 0xffff,
+ shade_alpha,
+ 0);
+ }
+
+ cairo_destroy (cr);
+
+ g_object_unref (G_OBJECT (pixmap));
+
+ XRenderFreePicture (xdisplay, src);
+ }
+
+ rect.height = clip.height - fgeom.top_height - fgeom.bottom_height;
+
+ size = MAX (fgeom.left_width, fgeom.right_width);
+
+ if (size && rect.height)
+ {
+ pixmap = create_pixmap (size, rect.height);
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (pixmap));
+ gdk_cairo_set_source_color_alpha (cr, &bg_color, bg_alpha);
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ src = XRenderCreatePicture (xdisplay,
+ GDK_PIXMAP_XID (pixmap),
+ xformat, 0, NULL);
+
+ if (fgeom.left_width)
+ {
+ rect.width = fgeom.left_width;
+
+ cairo_paint (cr);
+
+ meta_theme_draw_frame (theme,
+ style_window,
+ pixmap,
+ &rect,
+ 0,
+ -fgeom.top_height,
+ META_FRAME_TYPE_NORMAL,
+ flags,
+ clip.width - fgeom.left_width -
+ fgeom.right_width,
+ clip.height - fgeom.top_height -
+ fgeom.bottom_height,
+ d->layout,
+ text_height,
+ &button_layout,
+ button_states,
+ d->icon_pixbuf,
+ NULL);
+
+ left_region = meta_get_left_border_region (&fgeom, clip.height);
+
+ decor_blend_border_picture (xdisplay,
+ d->context,
+ src,
+ 0, 0,
+ d->picture,
+ &d->border_layout,
+ BORDER_LEFT,
+ left_region,
+ alpha * 0xffff,
+ shade_alpha,
+ 0);
+ }
+
+ if (fgeom.right_width)
+ {
+ rect.width = fgeom.right_width;
+
+ cairo_paint (cr);
+
+ meta_theme_draw_frame (theme,
+ style_window,
+ pixmap,
+ &rect,
+ -(clip.width - fgeom.right_width),
+ -fgeom.top_height,
+ META_FRAME_TYPE_NORMAL,
+ flags,
+ clip.width - fgeom.left_width -
+ fgeom.right_width,
+ clip.height - fgeom.top_height -
+ fgeom.bottom_height,
+ d->layout,
+ text_height,
+ &button_layout,
+ button_states,
+ d->icon_pixbuf,
+ NULL);
+
+ right_region = meta_get_right_border_region (&fgeom, clip.height);
+
+ decor_blend_border_picture (xdisplay,
+ d->context,
+ src,
+ 0, 0,
+ d->picture,
+ &d->border_layout,
+ BORDER_RIGHT,
+ right_region,
+ alpha * 0xffff,
+ shade_alpha,
+ 0);
+ }
+
+ cairo_destroy (cr);
+
+ g_object_unref (G_OBJECT (pixmap));
+
+ XRenderFreePicture (xdisplay, src);
+ }
+
+ if (d->buffer_pixmap)
+ gdk_draw_drawable (d->pixmap,
+ d->gc,
+ d->buffer_pixmap,
+ 0,
+ 0,
+ 0,
+ 0,
+ d->width,
+ d->height);
+
+ if (d->prop_xid)
+ {
+ /* translate from frame to client window space */
+ if (top_region)
+ XOffsetRegion (top_region, -fgeom.left_width, -fgeom.top_height);
+ if (bottom_region)
+ XOffsetRegion (bottom_region, -fgeom.left_width, 0);
+ if (left_region)
+ XOffsetRegion (left_region, -fgeom.left_width, 0);
+
+ decor_update_meta_window_property (d, theme, flags,
+ top_region,
+ bottom_region,
+ left_region,
+ right_region);
+ d->prop_xid = 0;
+ }
+
+ if (top_region)
+ XDestroyRegion (top_region);
+ if (bottom_region)
+ XDestroyRegion (bottom_region);
+ if (left_region)
+ XDestroyRegion (left_region);
+ if (right_region)
+ XDestroyRegion (right_region);
+}
+#endif
+
+#define SWITCHER_ALPHA 0xa0a0
+
+static void
+decor_update_switcher_property (decor_t *d)
+{
+ long data[256];
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ gint nQuad;
+ decor_quad_t quads[N_QUADS_MAX];
+ GtkStyle *style;
+ long fgColor[4];
+
+ nQuad = decor_set_lSrStSbX_window_quads (quads, &switcher_context,
+ &d->border_layout,
+ d->border_layout.top.x2 -
+ d->border_layout.top.x1 -
+ switcher_context.extents.left -
+ switcher_context.extents.right -
+ 32);
+
+ decor_quads_to_property (data, GDK_PIXMAP_XID (d->pixmap),
+ &_switcher_extents, &_switcher_extents,
+ 0, 0, quads, nQuad);
+
+ style = gtk_widget_get_style (style_window);
+
+ fgColor[0] = style->fg[GTK_STATE_NORMAL].red;
+ fgColor[1] = style->fg[GTK_STATE_NORMAL].green;
+ fgColor[2] = style->fg[GTK_STATE_NORMAL].blue;
+ fgColor[3] = SWITCHER_ALPHA;
+
+ gdk_error_trap_push ();
+ XChangeProperty (xdisplay, d->prop_xid,
+ win_decor_atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ XChangeProperty (xdisplay, d->prop_xid, switcher_fg_atom,
+ XA_INTEGER, 32, PropModeReplace, (guchar *) fgColor, 4);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+}
+
+static void
+draw_switcher_background (decor_t *d)
+{
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ cairo_t *cr;
+ GtkStyle *style;
+ decor_color_t color;
+ double alpha = SWITCHER_ALPHA / 65535.0;
+ double x1, y1, x2, y2, h;
+ int top;
+ unsigned long pixel;
+ ushort a = SWITCHER_ALPHA;
+
+ if (!d->buffer_pixmap)
+ return;
+
+ style = gtk_widget_get_style (style_window);
+
+ color.r = style->bg[GTK_STATE_NORMAL].red / 65535.0;
+ color.g = style->bg[GTK_STATE_NORMAL].green / 65535.0;
+ color.b = style->bg[GTK_STATE_NORMAL].blue / 65535.0;
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (d->buffer_pixmap));
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ top = _switcher_extents.top;
+
+ x1 = switcher_context.left_space - _switcher_extents.left;
+ y1 = switcher_context.top_space - _switcher_extents.top;
+ x2 = d->width - switcher_context.right_space + _switcher_extents.right;
+ y2 = d->height - switcher_context.bottom_space + _switcher_extents.bottom;
+
+ h = y2 - y1 - _switcher_extents.top - _switcher_extents.top;
+
+ cairo_set_line_width (cr, 1.0);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ draw_shadow_background (d, cr, switcher_shadow, &switcher_context);
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y1 + 0.5,
+ _switcher_extents.left - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPLEFT,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_TOP | SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x1 + _switcher_extents.left,
+ y1 + 0.5,
+ x2 - x1 - _switcher_extents.left -
+ _switcher_extents.right,
+ top - 0.5,
+ 5.0, 0,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_TOP);
+
+ fill_rounded_rectangle (cr,
+ x2 - _switcher_extents.right,
+ y1 + 0.5,
+ _switcher_extents.right - 0.5,
+ top - 0.5,
+ 5.0, CORNER_TOPRIGHT,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_TOP | SHADE_RIGHT);
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y1 + top,
+ _switcher_extents.left - 0.5,
+ h,
+ 5.0, 0,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x2 - _switcher_extents.right,
+ y1 + top,
+ _switcher_extents.right - 0.5,
+ h,
+ 5.0, 0,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_RIGHT);
+
+ fill_rounded_rectangle (cr,
+ x1 + 0.5,
+ y2 - _switcher_extents.top,
+ _switcher_extents.left - 0.5,
+ _switcher_extents.top - 0.5,
+ 5.0, CORNER_BOTTOMLEFT,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_BOTTOM | SHADE_LEFT);
+
+ fill_rounded_rectangle (cr,
+ x1 + _switcher_extents.left,
+ y2 - _switcher_extents.top,
+ x2 - x1 - _switcher_extents.left -
+ _switcher_extents.right,
+ _switcher_extents.top - 0.5,
+ 5.0, 0,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_BOTTOM);
+
+ fill_rounded_rectangle (cr,
+ x2 - _switcher_extents.right,
+ y2 - _switcher_extents.top,
+ _switcher_extents.right - 0.5,
+ _switcher_extents.top - 0.5,
+ 5.0, CORNER_BOTTOMRIGHT,
+ &color, alpha, &color, alpha * 0.75,
+ SHADE_BOTTOM | SHADE_RIGHT);
+
+ cairo_rectangle (cr, x1 + _switcher_extents.left,
+ y1 + top,
+ x2 - x1 - _switcher_extents.left - _switcher_extents.right,
+ h);
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->bg[GTK_STATE_NORMAL],
+ alpha);
+ cairo_fill (cr);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT);
+
+ cairo_clip (cr);
+
+ cairo_translate (cr, 1.0, 1.0);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT);
+
+ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.4);
+ cairo_stroke (cr);
+
+ cairo_translate (cr, -2.0, -2.0);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT);
+
+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.1);
+ cairo_stroke (cr);
+
+ cairo_translate (cr, 1.0, 1.0);
+
+ cairo_reset_clip (cr);
+
+ rounded_rectangle (cr,
+ x1 + 0.5, y1 + 0.5,
+ x2 - x1 - 1.0, y2 - y1 - 1.0,
+ 5.0,
+ CORNER_TOPLEFT | CORNER_TOPRIGHT | CORNER_BOTTOMLEFT |
+ CORNER_BOTTOMRIGHT);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ alpha);
+
+ cairo_stroke (cr);
+
+ cairo_destroy (cr);
+
+ gdk_draw_drawable (d->pixmap,
+ d->gc,
+ d->buffer_pixmap,
+ 0,
+ 0,
+ 0,
+ 0,
+ d->width,
+ d->height);
+
+ pixel = ((((a * style->bg[GTK_STATE_NORMAL].blue ) >> 24) & 0x0000ff) |
+ (((a * style->bg[GTK_STATE_NORMAL].green) >> 16) & 0x00ff00) |
+ (((a * style->bg[GTK_STATE_NORMAL].red ) >> 8) & 0xff0000) |
+ (((a & 0xff00) << 16)));
+
+ decor_update_switcher_property (d);
+
+ gdk_error_trap_push ();
+ XSetWindowBackground (xdisplay, d->prop_xid, pixel);
+ XClearWindow (xdisplay, d->prop_xid);
+
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+
+ d->prop_xid = 0;
+}
+
+static void
+draw_switcher_foreground (decor_t *d)
+{
+ cairo_t *cr;
+ GtkStyle *style;
+ double alpha = SWITCHER_ALPHA / 65535.0;
+
+ if (!d->pixmap || !d->buffer_pixmap)
+ return;
+
+ style = gtk_widget_get_style (style_window);
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (d->buffer_pixmap));
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+
+ cairo_rectangle (cr, switcher_context.left_space,
+ d->height - switcher_context.bottom_space,
+ d->width - switcher_context.left_space -
+ switcher_context.right_space,
+ SWITCHER_SPACE);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->bg[GTK_STATE_NORMAL],
+ alpha);
+ cairo_fill (cr);
+
+ if (d->layout)
+ {
+ int w;
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
+ gdk_cairo_set_source_color_alpha (cr,
+ &style->fg[GTK_STATE_NORMAL],
+ 1.0);
+
+ pango_layout_get_pixel_size (d->layout, &w, NULL);
+
+ cairo_move_to (cr, d->width / 2 - w / 2,
+ d->height - switcher_context.bottom_space +
+ SWITCHER_SPACE / 2 - text_height / 2);
+
+ pango_cairo_show_layout (cr, d->layout);
+ }
+
+ cairo_destroy (cr);
+
+ gdk_draw_drawable (d->pixmap,
+ d->gc,
+ d->buffer_pixmap,
+ 0,
+ 0,
+ 0,
+ 0,
+ d->width,
+ d->height);
+}
+
+static void
+draw_switcher_decoration (decor_t *d)
+{
+ if (d->prop_xid)
+ draw_switcher_background (d);
+
+ draw_switcher_foreground (d);
+}
+
+static gboolean
+draw_decor_list (void *data)
+{
+ GSList *list;
+ decor_t *d;
+
+ draw_idle_id = 0;
+
+ for (list = draw_list; list; list = list->next)
+ {
+ d = (decor_t *) list->data;
+ (*d->draw) (d);
+ }
+
+ g_slist_free (draw_list);
+ draw_list = NULL;
+
+ return FALSE;
+}
+
+static void
+queue_decor_draw (decor_t *d)
+{
+ if (g_slist_find (draw_list, d))
+ return;
+
+ draw_list = g_slist_append (draw_list, d);
+
+ if (!draw_idle_id)
+ draw_idle_id = g_idle_add (draw_decor_list, NULL);
+}
+
+static GdkPixmap *
+pixmap_new_from_pixbuf (GdkPixbuf *pixbuf)
+{
+ GdkPixmap *pixmap;
+ guint width, height;
+ cairo_t *cr;
+
+ width = gdk_pixbuf_get_width (pixbuf);
+ height = gdk_pixbuf_get_height (pixbuf);
+
+ pixmap = create_pixmap (width, height);
+ if (!pixmap)
+ return NULL;
+
+ cr = (cairo_t *) gdk_cairo_create (GDK_DRAWABLE (pixmap));
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+ cairo_paint (cr);
+ cairo_destroy (cr);
+
+ return pixmap;
+}
+
+static void
+update_default_decorations (GdkScreen *screen)
+{
+ long data[256];
+ Window xroot;
+ GdkDisplay *gdkdisplay = gdk_display_get_default ();
+ Display *xdisplay = gdk_x11_display_get_xdisplay (gdkdisplay);
+ Atom bareAtom, normalAtom, activeAtom;
+ decor_t d;
+ gint nQuad;
+ decor_quad_t quads[N_QUADS_MAX];
+ decor_extents_t extents = _win_extents;
+
+ xroot = RootWindowOfScreen (gdk_x11_screen_get_xscreen (screen));
+
+ bareAtom = XInternAtom (xdisplay, DECOR_BARE_ATOM_NAME, FALSE);
+ normalAtom = XInternAtom (xdisplay, DECOR_NORMAL_ATOM_NAME, FALSE);
+ activeAtom = XInternAtom (xdisplay, DECOR_ACTIVE_ATOM_NAME, FALSE);
+
+ if (no_border_shadow)
+ {
+ decor_layout_t layout;
+
+ decor_get_default_layout (&shadow_context, 1, 1, &layout);
+
+ nQuad = decor_set_lSrStSbS_window_quads (quads, &shadow_context,
+ &layout);
+
+ decor_quads_to_property (data, no_border_shadow->pixmap,
+ &_shadow_extents, &_shadow_extents,
+ 0, 0, quads, nQuad);
+
+ XChangeProperty (xdisplay, xroot,
+ bareAtom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+
+ if (minimal)
+ {
+ XChangeProperty (xdisplay, xroot,
+ normalAtom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ XChangeProperty (xdisplay, xroot,
+ activeAtom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ }
+ }
+ else
+ {
+ XDeleteProperty (xdisplay, xroot, bareAtom);
+
+ if (minimal)
+ {
+ XDeleteProperty (xdisplay, xroot, normalAtom);
+ XDeleteProperty (xdisplay, xroot, activeAtom);
+ }
+ }
+
+ if (minimal)
+ return;
+
+ memset (&d, 0, sizeof (d));
+
+ d.context = &window_context;
+ d.shadow = border_shadow;
+ d.layout = pango_layout_new (pango_context);
+
+ decor_get_default_layout (d.context, 1, 1, &d.border_layout);
+
+ d.width = d.border_layout.width;
+ d.height = d.border_layout.height;
+
+ extents.top += titlebar_height;
+
+ d.draw = theme_draw_window_decoration;
+
+ if (decor_normal_pixmap)
+ g_object_unref (G_OBJECT (decor_normal_pixmap));
+
+ nQuad = decor_set_lSrStSbS_window_quads (quads, d.context,
+ &d.border_layout);
+
+ decor_normal_pixmap = create_pixmap (d.width, d.height);
+ if (decor_normal_pixmap)
+ {
+ d.pixmap = decor_normal_pixmap;
+ d.active = FALSE;
+ d.picture = XRenderCreatePicture (xdisplay,
+ GDK_PIXMAP_XID (d.pixmap),
+ xformat, 0, NULL);
+
+ (*d.draw) (&d);
+
+ XRenderFreePicture (xdisplay, d.picture);
+
+ decor_quads_to_property (data, GDK_PIXMAP_XID (d.pixmap),
+ &extents, &extents, 0, 0, quads, nQuad);
+
+ XChangeProperty (xdisplay, xroot,
+ normalAtom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ }
+
+ if (decor_active_pixmap)
+ g_object_unref (G_OBJECT (decor_active_pixmap));
+
+ decor_active_pixmap = create_pixmap (d.width, d.height);
+ if (decor_active_pixmap)
+ {
+ d.pixmap = decor_active_pixmap;
+ d.active = TRUE;
+ d.picture = XRenderCreatePicture (xdisplay,
+ GDK_PIXMAP_XID (d.pixmap),
+ xformat, 0, NULL);
+
+ (*d.draw) (&d);
+
+ XRenderFreePicture (xdisplay, d.picture);
+
+ decor_quads_to_property (data, GDK_PIXMAP_XID (d.pixmap),
+ &extents, &extents, 0, 0, quads, nQuad);
+
+ XChangeProperty (xdisplay, xroot,
+ activeAtom,
+ XA_INTEGER,
+ 32, PropModeReplace, (guchar *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ }
+
+ if (d.layout)
+ g_object_unref (G_OBJECT (d.layout));
+}
+
+static gboolean
+get_window_prop (Window xwindow,
+ Atom atom,
+ Window *val)
+{
+ Atom type;
+ int format;
+ gulong nitems;
+ gulong bytes_after;
+ Window *w;
+ int err, result;
+
+ *val = 0;
+
+ gdk_error_trap_push ();
+
+ type = None;
+ result = XGetWindowProperty (gdk_display,
+ xwindow,
+ atom,
+ 0, G_MAXLONG,
+ False, XA_WINDOW, &type, &format, &nitems,
+ &bytes_after, (void*) &w);
+ err = gdk_error_trap_pop ();
+ if (err != Success || result != Success)
+ return FALSE;
+
+ if (type != XA_WINDOW)
+ {
+ XFree (w);
+ return FALSE;
+ }
+
+ *val = *w;
+ XFree (w);
+
+ return TRUE;
+}
+
+static unsigned int
+get_mwm_prop (Window xwindow)
+{
+ Display *xdisplay;
+ Atom actual;
+ int err, result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ unsigned int decor = MWM_DECOR_ALL;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ gdk_error_trap_push ();
+
+ result = XGetWindowProperty (xdisplay, xwindow, mwm_hints_atom,
+ 0L, 20L, FALSE, mwm_hints_atom,
+ &actual, &format, &n, &left, &data);
+
+ err = gdk_error_trap_pop ();
+ if (err != Success || result != Success)
+ return decor;
+
+ if (data)
+ {
+ MwmHints *mwm_hints = (MwmHints *) data;
+
+ if (n >= PROP_MOTIF_WM_HINT_ELEMENTS)
+ {
+ if (mwm_hints->flags & MWM_HINTS_DECORATIONS)
+ decor = mwm_hints->decorations;
+ }
+
+ XFree (data);
+ }
+
+ return decor;
+}
+
+static void
+get_event_window_position (decor_t *d,
+ gint i,
+ gint j,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h)
+{
+ *x = pos[i][j].x + pos[i][j].xw * width;
+ *y = pos[i][j].y + pos[i][j].yh * height + pos[i][j].yth *
+ (titlebar_height - 17);
+
+ if ((d->state & WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY) &&
+ (j == 0 || j == 2))
+ {
+ *w = 0;
+ }
+ else
+ {
+ *w = pos[i][j].w + pos[i][j].ww * width;
+ }
+
+ if ((d->state & WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY) &&
+ (i == 0 || i == 2))
+ {
+ *h = 0;
+ }
+ else
+ {
+ *h = pos[i][j].h + pos[i][j].hh * height + pos[i][j].hth *
+ (titlebar_height - 17);
+ }
+}
+
+static gboolean
+get_button_position (decor_t *d,
+ gint i,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h)
+{
+ if (i > BUTTON_MENU)
+ return FALSE;
+
+ *x = bpos[i].x + bpos[i].xw * width;
+ *y = bpos[i].y + bpos[i].yh * height + bpos[i].yth *
+ (titlebar_height - 17);
+ *w = bpos[i].w + bpos[i].ww * width;
+ *h = bpos[i].h + bpos[i].hh * height + bpos[i].hth +
+ (titlebar_height - 17);
+
+ /* hack to position multiple buttons on the right */
+ if (i != BUTTON_MENU)
+ *x -= 10 + 16 * i;
+
+ return TRUE;
+}
+
+#ifdef USE_METACITY
+
+#define TOP_RESIZE_HEIGHT 2
+#define RESIZE_EXTENDS 15
+
+static void
+meta_get_event_window_position (decor_t *d,
+ gint i,
+ gint j,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h)
+{
+ MetaButtonLayout button_layout;
+ MetaFrameGeometry fgeom;
+ MetaFrameFlags flags;
+ MetaTheme *theme;
+ GdkRectangle clip;
+
+ theme = meta_theme_get_current ();
+
+ meta_get_decoration_geometry (d, theme, &flags, &fgeom, &button_layout,
+ &clip);
+
+ width += fgeom.right_width + fgeom.left_width;
+ height += fgeom.top_height + fgeom.bottom_height;
+
+ switch (i) {
+ case 2: /* bottom */
+ switch (j) {
+ case 2: /* bottom right */
+ *x = width - fgeom.right_width - RESIZE_EXTENDS;
+ *y = height - fgeom.bottom_height - RESIZE_EXTENDS;
+ *w = fgeom.right_width + RESIZE_EXTENDS;
+ *h = fgeom.bottom_height + RESIZE_EXTENDS;
+ break;
+ case 1: /* bottom */
+ *x = fgeom.left_width + RESIZE_EXTENDS;
+ *y = height - fgeom.bottom_height;
+ *w = width - fgeom.left_width - fgeom.right_width -
+ (2 * RESIZE_EXTENDS);
+ *h = fgeom.bottom_height;
+ break;
+ case 0: /* bottom left */
+ default:
+ *x = 0;
+ *y = height - fgeom.bottom_height - RESIZE_EXTENDS;
+ *w = fgeom.left_width + RESIZE_EXTENDS;
+ *h = fgeom.bottom_height + RESIZE_EXTENDS;
+ break;
+ }
+ break;
+ case 1: /* middle */
+ switch (j) {
+ case 2: /* right */
+ *x = width - fgeom.right_width;
+ *y = fgeom.top_height + RESIZE_EXTENDS;
+ *w = fgeom.right_width;
+ *h = height - fgeom.top_height - fgeom.bottom_height -
+ (2 * RESIZE_EXTENDS);
+ break;
+ case 1: /* middle */
+ *x = fgeom.left_width;
+ *y = fgeom.title_rect.y + TOP_RESIZE_HEIGHT;
+ *w = width - fgeom.left_width - fgeom.right_width;
+ *h = height - fgeom.top_titlebar_edge - fgeom.bottom_height;
+ break;
+ case 0: /* left */
+ default:
+ *x = 0;
+ *y = fgeom.top_height + RESIZE_EXTENDS;
+ *w = fgeom.left_width;
+ *h = height - fgeom.top_height - fgeom.bottom_height -
+ (2 * RESIZE_EXTENDS);
+ break;
+ }
+ break;
+ case 0: /* top */
+ default:
+ switch (j) {
+ case 2: /* top right */
+ *x = width - fgeom.right_width - RESIZE_EXTENDS;
+ *y = 0;
+ *w = fgeom.right_width + RESIZE_EXTENDS;
+ *h = fgeom.top_height + RESIZE_EXTENDS;
+ break;
+ case 1: /* top */
+ *x = fgeom.left_width + RESIZE_EXTENDS;
+ *y = 0;
+ *w = width - fgeom.left_width - fgeom.right_width -
+ (2 * RESIZE_EXTENDS);
+ *h = fgeom.title_rect.y + TOP_RESIZE_HEIGHT;
+ break;
+ case 0: /* top left */
+ default:
+ *x = 0;
+ *y = 0;
+ *w = fgeom.left_width + RESIZE_EXTENDS;
+ *h = fgeom.top_height + RESIZE_EXTENDS;
+ break;
+ }
+ }
+
+ if (!(flags & META_FRAME_ALLOWS_VERTICAL_RESIZE))
+ {
+ /* turn off top and bottom event windows */
+ if (i == 0 || i == 2)
+ *w = *h = 0;
+ }
+
+ if (!(flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE))
+ {
+ /* turn off left and right event windows */
+ if (j == 0 || j == 2)
+ *w = *h = 0;
+ }
+}
+
+static gboolean
+meta_button_present (MetaButtonLayout *button_layout,
+ MetaButtonFunction function)
+{
+ int i;
+
+ for (i = 0; i < MAX_BUTTONS_PER_CORNER; i++)
+ if (button_layout->left_buttons[i] == function)
+ return TRUE;
+
+ for (i = 0; i < MAX_BUTTONS_PER_CORNER; i++)
+ if (button_layout->right_buttons[i] == function)
+ return TRUE;
+
+ return FALSE;
+}
+
+static gboolean
+meta_get_button_position (decor_t *d,
+ gint i,
+ gint width,
+ gint height,
+ gint *x,
+ gint *y,
+ gint *w,
+ gint *h)
+{
+ MetaButtonLayout button_layout;
+ MetaFrameGeometry fgeom;
+ MetaFrameFlags flags;
+ MetaTheme *theme;
+ GdkRectangle clip;
+
+#ifdef HAVE_METACITY_2_15_21
+ MetaButtonSpace *space;
+#else
+ GdkRectangle *space;
+#endif
+
+ if (!d->context)
+ {
+ /* undecorated windows implicitly have no buttons */
+ return FALSE;
+ }
+
+ theme = meta_theme_get_current ();
+
+ meta_get_decoration_geometry (d, theme, &flags, &fgeom, &button_layout,
+ &clip);
+
+ switch (i) {
+ case BUTTON_MENU:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_MENU))
+ return FALSE;
+
+ space = &fgeom.menu_rect;
+ break;
+ case BUTTON_MIN:
+ if (!meta_button_present (&button_layout,
+ META_BUTTON_FUNCTION_MINIMIZE))
+ return FALSE;
+
+ space = &fgeom.min_rect;
+ break;
+ case BUTTON_MAX:
+ if (!meta_button_present (&button_layout,
+ META_BUTTON_FUNCTION_MAXIMIZE))
+ return FALSE;
+
+ space = &fgeom.max_rect;
+ break;
+ case BUTTON_CLOSE:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_CLOSE))
+ return FALSE;
+
+ space = &fgeom.close_rect;
+ break;
+
+#if defined (HAVE_METACITY_2_17_0) && defined (HAVE_LIBWNCK_2_18_1)
+ case BUTTON_SHADE:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_SHADE))
+ return FALSE;
+
+ space = &fgeom.shade_rect;
+ break;
+ case BUTTON_ABOVE:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_ABOVE))
+ return FALSE;
+
+ space = &fgeom.above_rect;
+ break;
+ case BUTTON_STICK:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_STICK))
+ return FALSE;
+
+ space = &fgeom.stick_rect;
+ break;
+ case BUTTON_UNSHADE:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_UNSHADE))
+ return FALSE;
+
+ space = &fgeom.unshade_rect;
+ break;
+ case BUTTON_UNABOVE:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_UNABOVE))
+ return FALSE;
+
+ space = &fgeom.unabove_rect;
+ break;
+ case BUTTON_UNSTICK:
+ if (!meta_button_present (&button_layout, META_BUTTON_FUNCTION_UNSTICK))
+ return FALSE;
+
+ space = &fgeom.unstick_rect;
+ break;
+#endif
+
+ default:
+ return FALSE;
+ }
+
+#ifdef HAVE_METACITY_2_15_21
+ if (!space->clickable.width && !space->clickable.height)
+ return FALSE;
+
+ *x = space->clickable.x;
+ *y = space->clickable.y;
+ *w = space->clickable.width;
+ *h = space->clickable.height;
+#else
+ if (!space->width && !space->height)
+ return FALSE;
+
+ *x = space->x;
+ *y = space->y;
+ *w = space->width;
+ *h = space->height;
+#endif
+
+ return TRUE;
+}
+
+#endif
+
+static void
+update_event_windows (WnckWindow *win)
+{
+ Display *xdisplay;
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ gint x0, y0, width, height, x, y, w, h;
+ gint i, j, k, l;
+ gint actions = d->actions;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ wnck_window_get_client_window_geometry (win, &x0, &y0, &width, &height);
+
+ if (d->state & WNCK_WINDOW_STATE_SHADED)
+ {
+ height = 0;
+ k = l = 1;
+ }
+ else
+ {
+ k = 0;
+ l = 2;
+ }
+
+ gdk_error_trap_push ();
+
+ for (i = 0; i < 3; i++)
+ {
+ static guint event_window_actions[3][3] = {
+ {
+ WNCK_WINDOW_ACTION_RESIZE,
+ WNCK_WINDOW_ACTION_RESIZE,
+ WNCK_WINDOW_ACTION_RESIZE
+ }, {
+ WNCK_WINDOW_ACTION_RESIZE,
+ WNCK_WINDOW_ACTION_MOVE,
+ WNCK_WINDOW_ACTION_RESIZE
+ }, {
+ WNCK_WINDOW_ACTION_RESIZE,
+ WNCK_WINDOW_ACTION_RESIZE,
+ WNCK_WINDOW_ACTION_RESIZE
+ }
+ };
+
+ for (j = 0; j < 3; j++)
+ {
+ w = 0;
+ h = 0;
+
+ if (actions & event_window_actions[i][j] && i >= k && i <= l)
+ (*theme_get_event_window_position) (d, i, j, width, height,
+ &x, &y, &w, &h);
+
+ if (w != 0 && h != 0)
+ {
+ XMapWindow (xdisplay, d->event_windows[i][j]);
+ XMoveResizeWindow (xdisplay, d->event_windows[i][j],
+ x, y, w, h);
+ }
+ else
+ {
+ XUnmapWindow (xdisplay, d->event_windows[i][j]);
+ }
+ }
+ }
+
+ /* no button event windows if width is less than minimum width */
+ if (width < ICON_SPACE + d->button_width)
+ actions = 0;
+
+ for (i = 0; i < BUTTON_NUM; i++)
+ {
+ static guint button_actions[BUTTON_NUM] = {
+ WNCK_WINDOW_ACTION_CLOSE,
+ WNCK_WINDOW_ACTION_MAXIMIZE,
+ WNCK_WINDOW_ACTION_MINIMIZE,
+ 0,
+ WNCK_WINDOW_ACTION_SHADE,
+
+#ifdef HAVE_LIBWNCK_2_18_1
+ WNCK_WINDOW_ACTION_ABOVE,
+ WNCK_WINDOW_ACTION_STICK,
+ WNCK_WINDOW_ACTION_UNSHADE,
+ WNCK_WINDOW_ACTION_ABOVE,
+ WNCK_WINDOW_ACTION_UNSTICK
+#else
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+#endif
+
+ };
+
+ if (button_actions[i] && !(actions & button_actions[i]))
+ {
+ XUnmapWindow (xdisplay, d->button_windows[i]);
+ continue;
+ }
+
+ if ((*theme_get_button_position) (d, i, width, height, &x, &y, &w, &h))
+ {
+ XMapWindow (xdisplay, d->button_windows[i]);
+ XMoveResizeWindow (xdisplay, d->button_windows[i], x, y, w, h);
+ }
+ else
+ {
+ XUnmapWindow (xdisplay, d->button_windows[i]);
+ }
+ }
+
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+}
+
+#ifdef HAVE_WNCK_WINDOW_HAS_NAME
+static const char *
+wnck_window_get_real_name (WnckWindow *win)
+{
+ return wnck_window_has_name (win) ? wnck_window_get_name (win) : NULL;
+}
+#define wnck_window_get_name wnck_window_get_real_name
+#endif
+
+static gint
+max_window_name_width (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ const gchar *name;
+ gint w;
+
+ if (!d->layout)
+ {
+ d->layout = pango_layout_new (pango_context);
+ if (!d->layout)
+ return 0;
+
+ pango_layout_set_wrap (d->layout, PANGO_WRAP_CHAR);
+ }
+
+ name = wnck_window_get_name (win);
+ if (!name)
+ return 0;
+
+ pango_layout_set_auto_dir (d->layout, FALSE);
+ pango_layout_set_width (d->layout, -1);
+ pango_layout_set_text (d->layout, name, strlen (name));
+ pango_layout_get_pixel_size (d->layout, &w, NULL);
+
+ if (d->name)
+ pango_layout_set_text (d->layout, d->name, strlen (d->name));
+
+ return w + 6;
+}
+
+static void
+update_window_decoration_name (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ const gchar *name;
+ glong name_length;
+ PangoLayoutLine *line;
+
+ if (d->name)
+ {
+ g_free (d->name);
+ d->name = NULL;
+ }
+
+ name = wnck_window_get_name (win);
+ if (name && (name_length = strlen (name)))
+ {
+ gint w;
+
+ if (theme_draw_window_decoration != draw_window_decoration)
+ {
+ w = SHRT_MAX;
+ }
+ else
+ {
+ gint width;
+
+ wnck_window_get_client_window_geometry (win, NULL, NULL, &width,
+ NULL);
+
+ w = width - ICON_SPACE - 2 - d->button_width;
+ if (w < 1)
+ w = 1;
+ }
+
+ pango_layout_set_auto_dir (d->layout, FALSE);
+ pango_layout_set_width (d->layout, w * PANGO_SCALE);
+ pango_layout_set_text (d->layout, name, name_length);
+
+ line = pango_layout_get_line (d->layout, 0);
+
+ name_length = line->length;
+ if (pango_layout_get_line_count (d->layout) > 1)
+ {
+ if (name_length < 4)
+ {
+ pango_layout_set_text (d->layout, NULL, 0);
+ return;
+ }
+
+ d->name = g_strndup (name, name_length);
+ strcpy (d->name + name_length - 3, "...");
+ }
+ else
+ d->name = g_strndup (name, name_length);
+
+ pango_layout_set_text (d->layout, d->name, name_length);
+ }
+}
+
+static void
+update_window_decoration_icon (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->icon)
+ {
+ cairo_pattern_destroy (d->icon);
+ d->icon = NULL;
+ }
+
+ if (d->icon_pixmap)
+ {
+ g_object_unref (G_OBJECT (d->icon_pixmap));
+ d->icon_pixmap = NULL;
+ }
+
+ if (d->icon_pixbuf)
+ g_object_unref (G_OBJECT (d->icon_pixbuf));
+
+ d->icon_pixbuf = wnck_window_get_mini_icon (win);
+ if (d->icon_pixbuf)
+ {
+ cairo_t *cr;
+
+ g_object_ref (G_OBJECT (d->icon_pixbuf));
+
+ d->icon_pixmap = pixmap_new_from_pixbuf (d->icon_pixbuf);
+ cr = gdk_cairo_create (GDK_DRAWABLE (d->icon_pixmap));
+ d->icon = cairo_pattern_create_for_surface (cairo_get_target (cr));
+ cairo_destroy (cr);
+ }
+}
+
+static void
+update_window_decoration_state (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ d->state = wnck_window_get_state (win);
+}
+
+static void
+update_window_decoration_actions (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ d->actions = wnck_window_get_actions (win);
+}
+
+static void
+calc_button_size (decor_t *d)
+{
+ gint button_width;
+
+ button_width = 0;
+
+ if (d->actions & WNCK_WINDOW_ACTION_CLOSE)
+ button_width += 17;
+
+ if (d->actions & (WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY |
+ WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY |
+ WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY |
+ WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY))
+ button_width += 17;
+
+ if (d->actions & (WNCK_WINDOW_ACTION_MINIMIZE |
+ WNCK_WINDOW_ACTION_MINIMIZE))
+ button_width += 17;
+
+ if (button_width)
+ button_width++;
+
+ d->button_width = button_width;
+}
+
+static gboolean
+calc_decoration_size (decor_t *d,
+ gint w,
+ gint h,
+ gint name_width,
+ gint *width,
+ gint *height)
+{
+ decor_layout_t layout;
+ int top_width;
+
+ calc_button_size (d);
+
+ if (w < ICON_SPACE + d->button_width)
+ return FALSE;
+
+ top_width = name_width + d->button_width + ICON_SPACE;
+ if (w < top_width)
+ top_width = MAX (ICON_SPACE + d->button_width, w);
+
+ decor_get_default_layout (&window_context, top_width, 1, &layout);
+
+ if (!d->context || memcmp (&layout, &d->border_layout, sizeof (layout)))
+ {
+ *width = layout.width;
+ *height = layout.height;
+
+ d->border_layout = layout;
+ d->context = &window_context;
+ d->shadow = border_shadow;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+#ifdef USE_METACITY
+
+static void
+meta_calc_button_size (decor_t *d)
+{
+ gint i, min_x, x, y, w, h, width;
+
+ width = d->border_layout.top.x2 - d->border_layout.top.x1 -
+ d->context->left_space - d->context->right_space;
+ min_x = width;
+
+ for (i = 0; i < 3; i++)
+ {
+ static guint button_actions[3] = {
+ WNCK_WINDOW_ACTION_CLOSE,
+ WNCK_WINDOW_ACTION_MAXIMIZE,
+ WNCK_WINDOW_ACTION_MINIMIZE
+ };
+
+ if (d->actions & button_actions[i])
+ {
+ if (meta_get_button_position (d,
+ i,
+ width,
+ 256,
+ &x, &y, &w, &h))
+ {
+ if (x > width / 2 && x < min_x)
+ min_x = x;
+ }
+ }
+ }
+
+ d->button_width = width - min_x + 6;
+}
+
+static gboolean
+meta_calc_decoration_size (decor_t *d,
+ gint w,
+ gint h,
+ gint name_width,
+ gint *width,
+ gint *height)
+{
+ decor_layout_t layout;
+ decor_context_t *context;
+ decor_shadow_t *shadow;
+
+ if ((d->state & META_MAXIMIZED) == META_MAXIMIZED)
+ {
+ context = &max_window_context;
+ shadow = max_border_shadow;
+ }
+ else
+ {
+ context = &window_context;
+ shadow = border_shadow;
+ }
+
+ decor_get_best_layout (context, w, h, &layout);
+
+ if (context != d->context ||
+ memcmp (&layout, &d->border_layout, sizeof (layout)))
+ {
+ *width = layout.width;
+ *height = layout.height;
+
+ d->border_layout = layout;
+ d->context = context;
+ d->shadow = shadow;
+
+ meta_calc_button_size (d);
+
+ return TRUE;
+ }
+
+
+ return FALSE;
+}
+#endif
+
+static gboolean
+update_window_decoration_size (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ GdkPixmap *pixmap, *buffer_pixmap = NULL;
+ Picture picture;
+ gint width, height;
+ gint w, h, name_width;
+ Display *xdisplay;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ wnck_window_get_client_window_geometry (win, NULL, NULL, &w, &h);
+
+ name_width = max_window_name_width (win);
+
+ if (!(*theme_calc_decoration_size) (d, w, h, name_width, &width, &height))
+ {
+ update_window_decoration_name (win);
+ return FALSE;
+ }
+
+ pixmap = create_pixmap (width, height);
+ if (!pixmap)
+ return FALSE;
+
+ buffer_pixmap = create_pixmap (width, height);
+ if (!buffer_pixmap)
+ {
+ g_object_unref (G_OBJECT (pixmap));
+ return FALSE;
+ }
+
+ picture = XRenderCreatePicture (xdisplay, GDK_PIXMAP_XID (buffer_pixmap),
+ xformat, 0, NULL);
+
+ if (d->pixmap)
+ g_object_unref (G_OBJECT (d->pixmap));
+
+ if (d->buffer_pixmap)
+ g_object_unref (G_OBJECT (d->buffer_pixmap));
+
+ if (d->gc)
+ g_object_unref (G_OBJECT (d->gc));
+
+ if (d->picture)
+ XRenderFreePicture (xdisplay, d->picture);
+
+ d->pixmap = pixmap;
+ d->buffer_pixmap = buffer_pixmap;
+ d->gc = gdk_gc_new (pixmap);
+
+ d->picture = picture;
+
+ d->width = width;
+ d->height = height;
+
+ d->prop_xid = wnck_window_get_xid (win);
+
+ update_window_decoration_name (win);
+
+ queue_decor_draw (d);
+
+ return TRUE;
+}
+
+static void
+add_frame_window (WnckWindow *win,
+ Window frame)
+{
+ Display *xdisplay;
+ XSetWindowAttributes attr;
+ gulong xid = wnck_window_get_xid (win);
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ gint i, j;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ d->active = wnck_window_is_active (win);
+
+ attr.event_mask = ButtonPressMask | EnterWindowMask | LeaveWindowMask;
+ attr.override_redirect = TRUE;
+
+ gdk_error_trap_push ();
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ d->event_windows[i][j] =
+ XCreateWindow (xdisplay,
+ frame,
+ 0, 0, 1, 1, 0,
+ CopyFromParent, CopyFromParent, CopyFromParent,
+ CWOverrideRedirect | CWEventMask, &attr);
+
+ if (cursor[i][j].cursor)
+ XDefineCursor (xdisplay, d->event_windows[i][j],
+ cursor[i][j].cursor);
+ }
+ }
+
+ attr.event_mask |= ButtonReleaseMask;
+
+ for (i = 0; i < BUTTON_NUM; i++)
+ {
+ d->button_windows[i] =
+ XCreateWindow (xdisplay,
+ frame,
+ 0, 0, 1, 1, 0,
+ CopyFromParent, CopyFromParent, CopyFromParent,
+ CWOverrideRedirect | CWEventMask, &attr);
+
+ d->button_states[i] = 0;
+ }
+
+ gdk_display_sync (gdk_display_get_default ());
+ if (!gdk_error_trap_pop ())
+ {
+ if (get_mwm_prop (xid) & (MWM_DECOR_ALL | MWM_DECOR_TITLE))
+ d->decorated = TRUE;
+
+ for (i = 0; i < 3; i++)
+ for (j = 0; j < 3; j++)
+ g_hash_table_insert (frame_table,
+ GINT_TO_POINTER (d->event_windows[i][j]),
+ GINT_TO_POINTER (xid));
+
+ for (i = 0; i < BUTTON_NUM; i++)
+ g_hash_table_insert (frame_table,
+ GINT_TO_POINTER (d->button_windows[i]),
+ GINT_TO_POINTER (xid));
+
+ update_window_decoration_state (win);
+ update_window_decoration_actions (win);
+ update_window_decoration_icon (win);
+ update_window_decoration_size (win);
+
+ update_event_windows (win);
+ }
+ else
+ {
+ memset (d->event_windows, 0, sizeof (d->event_windows));
+ }
+}
+
+static gboolean
+update_switcher_window (WnckWindow *win,
+ Window selected)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ GdkPixmap *pixmap, *buffer_pixmap = NULL;
+ gint height, width = 0;
+ WnckWindow *selected_win;
+ Display *xdisplay;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ wnck_window_get_client_window_geometry (win, NULL, NULL, &width, NULL);
+
+ decor_get_default_layout (&switcher_context, width, 1, &d->border_layout);
+
+ width = d->border_layout.width;
+ height = d->border_layout.height;
+
+ d->decorated = FALSE;
+ d->draw = draw_switcher_decoration;
+
+ if (!d->pixmap && switcher_pixmap)
+ {
+ g_object_ref (G_OBJECT (switcher_pixmap));
+ d->pixmap = switcher_pixmap;
+ }
+
+ if (!d->buffer_pixmap && switcher_buffer_pixmap)
+ {
+ g_object_ref (G_OBJECT (switcher_buffer_pixmap));
+ d->buffer_pixmap = switcher_buffer_pixmap;
+ }
+
+ if (!d->width)
+ d->width = switcher_width;
+
+ if (!d->height)
+ d->height = switcher_height;
+
+ selected_win = wnck_window_get (selected);
+ if (selected_win)
+ {
+ glong name_length;
+ PangoLayoutLine *line;
+ const gchar *name;
+
+ if (d->name)
+ {
+ g_free (d->name);
+ d->name = NULL;
+ }
+
+ name = wnck_window_get_name (selected_win);
+ if (name && (name_length = strlen (name)))
+ {
+ if (!d->layout)
+ {
+ d->layout = pango_layout_new (pango_context);
+ if (d->layout)
+ pango_layout_set_wrap (d->layout, PANGO_WRAP_CHAR);
+ }
+
+ if (d->layout)
+ {
+ int tw;
+
+ tw = width - switcher_context.left_space -
+ switcher_context.right_space - 64;
+ pango_layout_set_auto_dir (d->layout, FALSE);
+ pango_layout_set_width (d->layout, tw * PANGO_SCALE);
+ pango_layout_set_text (d->layout, name, name_length);
+
+ line = pango_layout_get_line (d->layout, 0);
+
+ name_length = line->length;
+ if (pango_layout_get_line_count (d->layout) > 1)
+ {
+ if (name_length < 4)
+ {
+ g_object_unref (G_OBJECT (d->layout));
+ d->layout = NULL;
+ }
+ else
+ {
+ d->name = g_strndup (name, name_length);
+ strcpy (d->name + name_length - 3, "...");
+ }
+ }
+ else
+ d->name = g_strndup (name, name_length);
+
+ if (d->layout)
+ pango_layout_set_text (d->layout, d->name, name_length);
+ }
+ }
+ else if (d->layout)
+ {
+ g_object_unref (G_OBJECT (d->layout));
+ d->layout = NULL;
+ }
+ }
+
+ if (selected != switcher_selected_window)
+ {
+ gtk_label_set_text (GTK_LABEL (switcher_label), "");
+ if (selected_win && d->name)
+ gtk_label_set_text (GTK_LABEL (switcher_label), d->name);
+ switcher_selected_window = selected;
+ }
+
+ if (width == d->width && height == d->height)
+ {
+ if (!d->gc)
+ d->gc = gdk_gc_new (d->pixmap);
+
+ if (!d->picture)
+ d->picture =
+ XRenderCreatePicture (xdisplay,
+ GDK_PIXMAP_XID (d->buffer_pixmap),
+ xformat, 0, NULL);
+
+ queue_decor_draw (d);
+ return FALSE;
+ }
+
+ pixmap = create_pixmap (width, height);
+ if (!pixmap)
+ return FALSE;
+
+ buffer_pixmap = create_pixmap (width, height);
+ if (!buffer_pixmap)
+ {
+ g_object_unref (G_OBJECT (pixmap));
+ return FALSE;
+ }
+
+ if (switcher_pixmap)
+ g_object_unref (G_OBJECT (switcher_pixmap));
+
+ if (switcher_buffer_pixmap)
+ g_object_unref (G_OBJECT (switcher_buffer_pixmap));
+
+ if (d->pixmap)
+ g_object_unref (G_OBJECT (d->pixmap));
+
+ if (d->buffer_pixmap)
+ g_object_unref (G_OBJECT (d->buffer_pixmap));
+
+ if (d->gc)
+ g_object_unref (G_OBJECT (d->gc));
+
+ if (d->picture)
+ XRenderFreePicture (xdisplay, d->picture);
+
+ switcher_pixmap = pixmap;
+ switcher_buffer_pixmap = buffer_pixmap;
+
+ switcher_width = width;
+ switcher_height = height;
+
+ g_object_ref (G_OBJECT (pixmap));
+ g_object_ref (G_OBJECT (buffer_pixmap));
+
+ d->pixmap = pixmap;
+ d->buffer_pixmap = buffer_pixmap;
+ d->gc = gdk_gc_new (pixmap);
+
+ d->picture = XRenderCreatePicture (xdisplay, GDK_PIXMAP_XID (buffer_pixmap),
+ xformat, 0, NULL);
+
+ d->width = width;
+ d->height = height;
+
+ d->prop_xid = wnck_window_get_xid (win);
+
+ queue_decor_draw (d);
+
+ return TRUE;
+}
+
+static void
+remove_frame_window (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ Display *xdisplay;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ if (d->pixmap)
+ {
+ g_object_unref (G_OBJECT (d->pixmap));
+ d->pixmap = NULL;
+ }
+
+ if (d->buffer_pixmap)
+ {
+ g_object_unref (G_OBJECT (d->buffer_pixmap));
+ d->buffer_pixmap = NULL;
+ }
+
+ if (d->gc)
+ {
+ g_object_unref (G_OBJECT (d->gc));
+ d->gc = NULL;
+ }
+
+ if (d->picture)
+ {
+ XRenderFreePicture (xdisplay, d->picture);
+ d->picture = 0;
+ }
+
+ if (d->name)
+ {
+ g_free (d->name);
+ d->name = NULL;
+ }
+
+ if (d->layout)
+ {
+ g_object_unref (G_OBJECT (d->layout));
+ d->layout = NULL;
+ }
+
+ if (d->icon)
+ {
+ cairo_pattern_destroy (d->icon);
+ d->icon = NULL;
+ }
+
+ if (d->icon_pixmap)
+ {
+ g_object_unref (G_OBJECT (d->icon_pixmap));
+ d->icon_pixmap = NULL;
+ }
+
+ if (d->icon_pixbuf)
+ {
+ g_object_unref (G_OBJECT (d->icon_pixbuf));
+ d->icon_pixbuf = NULL;
+ }
+
+ if (d->force_quit_dialog)
+ {
+ GtkWidget *dialog = d->force_quit_dialog;
+
+ d->force_quit_dialog = NULL;
+ gtk_widget_destroy (dialog);
+ }
+
+ d->width = 0;
+ d->height = 0;
+
+ d->decorated = FALSE;
+
+ d->state = 0;
+ d->actions = 0;
+
+ d->context = NULL;
+ d->shadow = NULL;
+
+ draw_list = g_slist_remove (draw_list, d);
+}
+
+static void
+window_name_changed (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ if (!update_window_decoration_size (win))
+ queue_decor_draw (d);
+ }
+}
+
+static void
+window_geometry_changed (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ int width, height;
+
+ wnck_window_get_client_window_geometry (win, NULL, NULL, &width,
+ &height);
+
+ if (width != d->client_width || height != d->client_height)
+ {
+ d->client_width = width;
+ d->client_height = height;
+
+ update_window_decoration_size (win);
+ update_event_windows (win);
+ }
+ }
+}
+
+static void
+window_icon_changed (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ update_window_decoration_icon (win);
+ queue_decor_draw (d);
+ }
+}
+
+static void
+window_state_changed (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ update_window_decoration_state (win);
+ if (!update_window_decoration_size (win))
+ queue_decor_draw (d);
+
+ update_event_windows (win);
+ }
+}
+
+static void
+window_actions_changed (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ update_window_decoration_actions (win);
+ if (!update_window_decoration_size (win))
+ queue_decor_draw (d);
+
+ update_event_windows (win);
+ }
+}
+
+static void
+connect_window (WnckWindow *win)
+{
+ g_signal_connect_object (win, "name_changed",
+ G_CALLBACK (window_name_changed),
+ 0, 0);
+ g_signal_connect_object (win, "geometry_changed",
+ G_CALLBACK (window_geometry_changed),
+ 0, 0);
+ g_signal_connect_object (win, "icon_changed",
+ G_CALLBACK (window_icon_changed),
+ 0, 0);
+ g_signal_connect_object (win, "state_changed",
+ G_CALLBACK (window_state_changed),
+ 0, 0);
+ g_signal_connect_object (win, "actions_changed",
+ G_CALLBACK (window_actions_changed),
+ 0, 0);
+}
+
+static void
+active_window_changed (WnckScreen *screen)
+{
+ WnckWindow *win;
+ decor_t *d;
+
+ win = wnck_screen_get_previously_active_window (screen);
+ if (win)
+ {
+ d = g_object_get_data (G_OBJECT (win), "decor");
+ if (d && d->pixmap)
+ {
+ d->active = wnck_window_is_active (win);
+ queue_decor_draw (d);
+ }
+ }
+
+ win = wnck_screen_get_active_window (screen);
+ if (win)
+ {
+ d = g_object_get_data (G_OBJECT (win), "decor");
+ if (d && d->pixmap)
+ {
+ d->active = wnck_window_is_active (win);
+ queue_decor_draw (d);
+ }
+ }
+}
+
+static void
+window_opened (WnckScreen *screen,
+ WnckWindow *win)
+{
+ decor_t *d;
+ Window window;
+ gulong xid;
+
+ d = calloc (1, sizeof (decor_t));
+ if (!d)
+ return;
+
+ wnck_window_get_client_window_geometry (win, NULL, NULL,
+ &d->client_width,
+ &d->client_height);
+
+ d->draw = theme_draw_window_decoration;
+
+ g_object_set_data (G_OBJECT (win), "decor", d);
+
+ connect_window (win);
+
+ xid = wnck_window_get_xid (win);
+
+ if (get_window_prop (xid, select_window_atom, &window))
+ {
+ d->prop_xid = wnck_window_get_xid (win);
+ update_switcher_window (win, window);
+ }
+ else if (get_window_prop (xid, frame_window_atom, &window))
+ {
+ add_frame_window (win, window);
+ }
+}
+
+static void
+window_closed (WnckScreen *screen,
+ WnckWindow *win)
+{
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ remove_frame_window (win);
+
+ g_object_set_data (G_OBJECT (win), "decor", NULL);
+
+ gdk_error_trap_push ();
+ XDeleteProperty (xdisplay, wnck_window_get_xid (win), win_decor_atom);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+
+ g_free (d);
+}
+
+static void
+connect_screen (WnckScreen *screen)
+{
+ GList *windows;
+
+ g_signal_connect_object (G_OBJECT (screen), "active_window_changed",
+ G_CALLBACK (active_window_changed),
+ 0, 0);
+ g_signal_connect_object (G_OBJECT (screen), "window_opened",
+ G_CALLBACK (window_opened),
+ 0, 0);
+ g_signal_connect_object (G_OBJECT (screen), "window_closed",
+ G_CALLBACK (window_closed),
+ 0, 0);
+
+ windows = wnck_screen_get_windows (screen);
+ while (windows != NULL)
+ {
+ window_opened (screen, windows->data);
+ windows = windows->next;
+ }
+}
+
+static void
+move_resize_window (WnckWindow *win,
+ int direction,
+ XEvent *xevent)
+{
+ Display *xdisplay;
+ GdkDisplay *gdkdisplay;
+ GdkScreen *screen;
+ Window xroot;
+ XEvent ev;
+
+ gdkdisplay = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdkdisplay);
+ screen = gdk_display_get_default_screen (gdkdisplay);
+ xroot = RootWindowOfScreen (gdk_x11_screen_get_xscreen (screen));
+
+ if (action_menu_mapped)
+ {
+ gtk_object_destroy (GTK_OBJECT (action_menu));
+ action_menu_mapped = FALSE;
+ action_menu = NULL;
+ return;
+ }
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.display = xdisplay;
+
+ ev.xclient.serial = 0;
+ ev.xclient.send_event = TRUE;
+
+ ev.xclient.window = wnck_window_get_xid (win);
+ ev.xclient.message_type = wm_move_resize_atom;
+ ev.xclient.format = 32;
+
+ ev.xclient.data.l[0] = xevent->xbutton.x_root;
+ ev.xclient.data.l[1] = xevent->xbutton.y_root;
+ ev.xclient.data.l[2] = direction;
+ ev.xclient.data.l[3] = xevent->xbutton.button;
+ ev.xclient.data.l[4] = 1;
+
+ XUngrabPointer (xdisplay, xevent->xbutton.time);
+ XUngrabKeyboard (xdisplay, xevent->xbutton.time);
+
+ XSendEvent (xdisplay, xroot, FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &ev);
+
+ XSync (xdisplay, FALSE);
+}
+
+static void
+restack_window (WnckWindow *win,
+ int stack_mode)
+{
+ Display *xdisplay;
+ GdkDisplay *gdkdisplay;
+ GdkScreen *screen;
+ Window xroot;
+ XEvent ev;
+
+ gdkdisplay = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdkdisplay);
+ screen = gdk_display_get_default_screen (gdkdisplay);
+ xroot = RootWindowOfScreen (gdk_x11_screen_get_xscreen (screen));
+
+ if (action_menu_mapped)
+ {
+ gtk_object_destroy (GTK_OBJECT (action_menu));
+ action_menu_mapped = FALSE;
+ action_menu = NULL;
+ return;
+ }
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.display = xdisplay;
+
+ ev.xclient.serial = 0;
+ ev.xclient.send_event = TRUE;
+
+ ev.xclient.window = wnck_window_get_xid (win);
+ ev.xclient.message_type = restack_window_atom;
+ ev.xclient.format = 32;
+
+ ev.xclient.data.l[0] = 2;
+ ev.xclient.data.l[1] = None;
+ ev.xclient.data.l[2] = stack_mode;
+ ev.xclient.data.l[3] = 0;
+ ev.xclient.data.l[4] = 0;
+
+ XSendEvent (xdisplay, xroot, FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &ev);
+
+ XSync (xdisplay, FALSE);
+}
+
+/* stolen from gtktooltip.c */
+
+#define DEFAULT_DELAY 500 /* Default delay in ms */
+#define STICKY_DELAY 0 /* Delay before popping up next tip
+ * if we're sticky
+ */
+#define STICKY_REVERT_DELAY 1000 /* Delay before sticky tooltips revert
+ * to normal
+ */
+
+static void
+show_tooltip (const char *text)
+{
+ GdkDisplay *gdkdisplay;
+ GtkRequisition requisition;
+ gint x, y, w, h;
+ GdkScreen *screen;
+ gint monitor_num;
+ GdkRectangle monitor;
+
+ gdkdisplay = gdk_display_get_default ();
+
+ gtk_label_set_text (GTK_LABEL (tip_label), text);
+
+ gtk_widget_size_request (tip_window, &requisition);
+
+ w = requisition.width;
+ h = requisition.height;
+
+ gdk_display_get_pointer (gdkdisplay, &screen, &x, &y, NULL);
+
+ x -= (w / 2 + 4);
+
+ monitor_num = gdk_screen_get_monitor_at_point (screen, x, y);
+ gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+
+ if ((x + w) > monitor.x + monitor.width)
+ x -= (x + w) - (monitor.x + monitor.width);
+ else if (x < monitor.x)
+ x = monitor.x;
+
+ if ((y + h + 16) > monitor.y + monitor.height)
+ y = y - h - 16;
+ else
+ y = y + 16;
+
+ gtk_window_move (GTK_WINDOW (tip_window), x, y);
+ gtk_widget_show (tip_window);
+}
+
+static void
+hide_tooltip (void)
+{
+ if (GTK_WIDGET_VISIBLE (tip_window))
+ g_get_current_time (&tooltip_last_popdown);
+
+ gtk_widget_hide (tip_window);
+
+ if (tooltip_timer_tag)
+ {
+ g_source_remove (tooltip_timer_tag);
+ tooltip_timer_tag = 0;
+ }
+}
+
+static gboolean
+tooltip_recently_shown (void)
+{
+ GTimeVal now;
+ glong msec;
+
+ g_get_current_time (&now);
+
+ msec = now.tv_sec - tooltip_last_popdown.tv_sec;
+ if (msec > STICKY_REVERT_DELAY / 1000)
+ return FALSE;
+
+ msec = msec * 1000 + (now.tv_usec - tooltip_last_popdown.tv_usec) / 1000;
+
+ return (msec < STICKY_REVERT_DELAY);
+}
+
+static gint
+tooltip_timeout (gpointer data)
+{
+ tooltip_timer_tag = 0;
+
+ show_tooltip ((const char *) data);
+
+ return FALSE;
+}
+
+static void
+tooltip_start_delay (const char *text)
+{
+ guint delay = DEFAULT_DELAY;
+
+ if (tooltip_timer_tag)
+ return;
+
+ if (tooltip_recently_shown ())
+ delay = STICKY_DELAY;
+
+ tooltip_timer_tag = g_timeout_add (delay,
+ tooltip_timeout,
+ (gpointer) text);
+}
+
+static gint
+tooltip_paint_window (GtkWidget *tooltip)
+{
+ GtkRequisition req;
+
+ gtk_widget_size_request (tip_window, &req);
+ gtk_paint_flat_box (tip_window->style, tip_window->window,
+ GTK_STATE_NORMAL, GTK_SHADOW_OUT,
+ NULL, GTK_WIDGET (tip_window), "tooltip",
+ 0, 0, req.width, req.height);
+
+ return FALSE;
+}
+
+static gboolean
+create_tooltip_window (void)
+{
+ tip_window = gtk_window_new (GTK_WINDOW_POPUP);
+
+ gtk_widget_set_app_paintable (tip_window, TRUE);
+ gtk_window_set_resizable (GTK_WINDOW (tip_window), FALSE);
+ gtk_widget_set_name (tip_window, "gtk-tooltips");
+ gtk_container_set_border_width (GTK_CONTAINER (tip_window), 4);
+
+#if GTK_CHECK_VERSION (2, 10, 0)
+ if (!gtk_check_version (2, 10, 0))
+ gtk_window_set_type_hint (GTK_WINDOW (tip_window),
+ GDK_WINDOW_TYPE_HINT_TOOLTIP);
+#endif
+
+ g_signal_connect_swapped (tip_window,
+ "expose_event",
+ G_CALLBACK (tooltip_paint_window),
+ 0);
+
+ tip_label = gtk_label_new (NULL);
+ gtk_label_set_line_wrap (GTK_LABEL (tip_label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (tip_label), 0.5, 0.5);
+ gtk_widget_show (tip_label);
+
+ gtk_container_add (GTK_CONTAINER (tip_window), tip_label);
+
+ gtk_widget_ensure_style (tip_window);
+
+ return TRUE;
+}
+
+static void
+handle_tooltip_event (WnckWindow *win,
+ XEvent *xevent,
+ guint state,
+ const char *tip)
+{
+ switch (xevent->type) {
+ case ButtonPress:
+ hide_tooltip ();
+ break;
+ case ButtonRelease:
+ break;
+ case EnterNotify:
+ if (!(state & PRESSED_EVENT_WINDOW))
+ {
+ if (wnck_window_is_active (win))
+ tooltip_start_delay (tip);
+ }
+ break;
+ case LeaveNotify:
+ hide_tooltip ();
+ break;
+ }
+}
+
+static void
+common_button_event (WnckWindow *win,
+ XEvent *xevent,
+ int button,
+ int max,
+ char *tooltip)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[button];
+
+ handle_tooltip_event (win, xevent, state, tooltip);
+
+ switch (xevent->type) {
+ case ButtonPress:
+ if (xevent->xbutton.button <= max)
+ d->button_states[button] |= PRESSED_EVENT_WINDOW;
+ break;
+ case ButtonRelease:
+ if (xevent->xbutton.button <= max)
+ d->button_states[button] &= ~PRESSED_EVENT_WINDOW;
+ break;
+ case EnterNotify:
+ d->button_states[button] |= IN_EVENT_WINDOW;
+ break;
+ case LeaveNotify:
+ d->button_states[button] &= ~IN_EVENT_WINDOW;
+ break;
+ }
+
+ if (state != d->button_states[button])
+ queue_decor_draw (d);
+}
+
+#define BUTTON_EVENT_ACTION_STATE (PRESSED_EVENT_WINDOW | IN_EVENT_WINDOW)
+
+static void
+close_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_CLOSE];
+
+ common_button_event (win, xevent, BUTTON_CLOSE, 1, _("Close Window"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_close (win, xevent->xbutton.time);
+ }
+ break;
+ }
+}
+
+static void
+max_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_MAX];
+
+ if (wnck_window_is_maximized (win))
+ common_button_event (win, xevent, BUTTON_MAX,
+ 3, _("Unmaximize Window"));
+ else
+ common_button_event (win, xevent, BUTTON_MAX,
+ 3, _("Maximize Window"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button <= 3)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ {
+ if (xevent->xbutton.button == 2)
+ {
+ if (wnck_window_is_maximized_vertically (win))
+ wnck_window_unmaximize_vertically (win);
+ else
+ wnck_window_maximize_vertically (win);
+ }
+ else if (xevent->xbutton.button == 3)
+ {
+ if (wnck_window_is_maximized_horizontally (win))
+ wnck_window_unmaximize_horizontally (win);
+ else
+ wnck_window_maximize_horizontally (win);
+ }
+ else
+ {
+ if (wnck_window_is_maximized (win))
+ wnck_window_unmaximize (win);
+ else
+ wnck_window_maximize (win);
+ }
+ }
+ }
+ break;
+ }
+}
+
+static void
+min_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_MIN];
+
+ common_button_event (win, xevent, BUTTON_MIN, 1, _("Minimize Window"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_minimize (win);
+ }
+ break;
+ }
+}
+
+static void
+action_menu_unmap (GObject *object)
+{
+ action_menu_mapped = FALSE;
+}
+
+static void
+position_action_menu (GtkMenu *menu,
+ gint *x,
+ gint *y,
+ gboolean *push_in,
+ gpointer user_data)
+{
+ WnckWindow *win = (WnckWindow *) user_data;
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ gint bx, by, width, height;
+
+ wnck_window_get_client_window_geometry (win, x, y, &width, &height);
+
+ if ((*theme_get_button_position) (d, BUTTON_MENU, width, height,
+ &bx, &by, &width, &height))
+ *x = *x - _win_extents.left + bx;
+
+ if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
+ {
+ GtkRequisition req;
+
+ gtk_widget_size_request (GTK_WIDGET (menu), &req);
+ *x = MAX (0, *x - req.width + width);
+ }
+
+ *push_in = TRUE;
+}
+
+static void
+action_menu_map (WnckWindow *win,
+ long button,
+ Time time)
+{
+ GdkDisplay *gdkdisplay;
+ GdkScreen *screen;
+
+ gdkdisplay = gdk_display_get_default ();
+ screen = gdk_display_get_default_screen (gdkdisplay);
+
+ if (action_menu)
+ {
+ if (action_menu_mapped)
+ {
+ gtk_widget_destroy (action_menu);
+ action_menu_mapped = FALSE;
+ action_menu = NULL;
+ return;
+ }
+ else
+ gtk_widget_destroy (action_menu);
+ }
+
+ switch (wnck_window_get_window_type (win)) {
+ case WNCK_WINDOW_DESKTOP:
+ case WNCK_WINDOW_DOCK:
+ /* don't allow window action */
+ return;
+ case WNCK_WINDOW_NORMAL:
+ case WNCK_WINDOW_DIALOG:
+
+#ifndef HAVE_LIBWNCK_2_19_4
+ case WNCK_WINDOW_MODAL_DIALOG:
+#endif
+
+ case WNCK_WINDOW_TOOLBAR:
+ case WNCK_WINDOW_MENU:
+ case WNCK_WINDOW_UTILITY:
+ case WNCK_WINDOW_SPLASHSCREEN:
+ /* allow window action menu */
+ break;
+ }
+
+ action_menu = wnck_create_window_action_menu (win);
+
+ gtk_menu_set_screen (GTK_MENU (action_menu), screen);
+
+ g_signal_connect_object (G_OBJECT (action_menu), "unmap",
+ G_CALLBACK (action_menu_unmap),
+ 0, 0);
+
+ gtk_widget_show (action_menu);
+
+ if (!button || button == 1)
+ {
+ gtk_menu_popup (GTK_MENU (action_menu),
+ NULL, NULL,
+ position_action_menu, (gpointer) win,
+ button,
+ time);
+ }
+ else
+ {
+ gtk_menu_popup (GTK_MENU (action_menu),
+ NULL, NULL,
+ NULL, NULL,
+ button,
+ time);
+ }
+
+ action_menu_mapped = TRUE;
+}
+
+static void
+menu_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ common_button_event (win, xevent, BUTTON_MENU, 1, _("Window Menu"));
+
+ switch (xevent->type) {
+ case ButtonPress:
+ if (xevent->xbutton.button == 1)
+ action_menu_map (win,
+ xevent->xbutton.button,
+ xevent->xbutton.time);
+ break;
+ }
+}
+
+static void
+shade_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_SHADE];
+
+ common_button_event (win, xevent, BUTTON_SHADE, 1, _("Shade"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_shade (win);
+ }
+ break;
+ }
+}
+
+static void
+above_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_ABOVE];
+
+ common_button_event (win, xevent, BUTTON_ABOVE, 1, _("Make Above"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ {
+
+#ifdef HAVE_LIBWNCK_2_18_1
+ wnck_window_make_above (win);
+#endif
+
+ }
+ }
+ break;
+ }
+}
+
+static void
+stick_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_STICK];
+
+ common_button_event (win, xevent, BUTTON_STICK, 1, _("Stick"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_stick (win);
+ }
+ break;
+ }
+}
+
+static void
+unshade_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_UNSHADE];
+
+ common_button_event (win, xevent, BUTTON_UNSHADE, 1, _("Unshade"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_unshade (win);
+ }
+ break;
+ }
+}
+
+static void
+unabove_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_UNABOVE];
+
+ common_button_event (win, xevent, BUTTON_UNABOVE, 1, _("Unmake Above"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ {
+
+#ifdef HAVE_LIBWNCK_2_18_1
+ wnck_window_unmake_above (win);
+#endif
+
+ }
+ }
+ break;
+ }
+}
+
+static void
+unstick_button_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ guint state = d->button_states[BUTTON_UNSTICK];
+
+ common_button_event (win, xevent, BUTTON_UNSTICK, 1, _("Unstick"));
+
+ switch (xevent->type) {
+ case ButtonRelease:
+ if (xevent->xbutton.button == 1)
+ {
+ if (state == BUTTON_EVENT_ACTION_STATE)
+ wnck_window_unstick (win);
+ }
+ break;
+ }
+}
+
+static void
+handle_title_button_event (WnckWindow *win,
+ int action,
+ XButtonEvent *event)
+{
+ switch (action) {
+ case CLICK_ACTION_SHADE:
+ if (wnck_window_is_shaded (win))
+ wnck_window_unshade (win);
+ else
+ wnck_window_shade (win);
+ break;
+ case CLICK_ACTION_MAXIMIZE:
+ if (wnck_window_is_maximized (win))
+ wnck_window_unmaximize (win);
+ else
+ wnck_window_maximize (win);
+ break;
+ case CLICK_ACTION_MAXIMIZE_HORZ:
+ if (wnck_window_is_maximized_horizontally (win))
+ wnck_window_unmaximize_horizontally (win);
+ else
+ wnck_window_maximize_horizontally (win);
+ break;
+ case CLICK_ACTION_MAXIMIZE_VERT:
+ if (wnck_window_is_maximized_vertically (win))
+ wnck_window_unmaximize_vertically (win);
+ else
+ wnck_window_maximize_vertically (win);
+ break;
+ case CLICK_ACTION_MINIMIZE:
+ if (!wnck_window_is_minimized (win))
+ wnck_window_minimize (win);
+ break;
+ case CLICK_ACTION_RAISE:
+ restack_window (win, Above);
+ break;
+ case CLICK_ACTION_LOWER:
+ restack_window (win, Below);
+ break;
+ case CLICK_ACTION_MENU:
+ action_menu_map (win, event->button, event->time);
+ break;
+ }
+}
+
+static void
+handle_mouse_wheel_title_event (WnckWindow *win,
+ unsigned int button)
+{
+ switch (wheel_action) {
+ case WHEEL_ACTION_SHADE:
+ if (button == 4)
+ {
+ if (!wnck_window_is_shaded (win))
+ wnck_window_shade (win);
+ }
+ else if (button == 5)
+ {
+ if (wnck_window_is_shaded (win))
+ wnck_window_unshade (win);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+static double
+square (double x)
+{
+ return x * x;
+}
+
+static double
+dist (double x1, double y1,
+ double x2, double y2)
+{
+ return sqrt (square (x1 - x2) + square (y1 - y2));
+}
+
+static void
+title_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ static int last_button_num = 0;
+ static Window last_button_xwindow = None;
+ static Time last_button_time = 0;
+ static int last_button_x = 0;
+ static int last_button_y = 0;
+
+ if (xevent->type != ButtonPress)
+ return;
+
+ if (xevent->xbutton.button == 1)
+ {
+ if (xevent->xbutton.button == last_button_num &&
+ xevent->xbutton.window == last_button_xwindow &&
+ xevent->xbutton.time < last_button_time + double_click_timeout &&
+ dist (xevent->xbutton.x, xevent->xbutton.y,
+ last_button_x, last_button_y) < DOUBLE_CLICK_DISTANCE)
+ {
+ handle_title_button_event (win, double_click_action,
+ &xevent->xbutton);
+
+ last_button_num = 0;
+ last_button_xwindow = None;
+ last_button_time = 0;
+ last_button_x = 0;
+ last_button_y = 0;
+ }
+ else
+ {
+ last_button_num = xevent->xbutton.button;
+ last_button_xwindow = xevent->xbutton.window;
+ last_button_time = xevent->xbutton.time;
+ last_button_x = xevent->xbutton.x;
+ last_button_y = xevent->xbutton.y;
+
+ restack_window (win, Above);
+
+ move_resize_window (win, WM_MOVERESIZE_MOVE, xevent);
+ }
+ }
+ else if (xevent->xbutton.button == 2)
+ {
+ handle_title_button_event (win, middle_click_action,
+ &xevent->xbutton);
+ }
+ else if (xevent->xbutton.button == 3)
+ {
+ handle_title_button_event (win, right_click_action,
+ &xevent->xbutton);
+ }
+ else if (xevent->xbutton.button == 4 ||
+ xevent->xbutton.button == 5)
+ {
+ handle_mouse_wheel_title_event (win, xevent->xbutton.button);
+ }
+}
+
+static void
+frame_common_event (WnckWindow *win,
+ int direction,
+ XEvent *xevent)
+{
+ if (xevent->type != ButtonPress)
+ return;
+
+ switch (xevent->xbutton.button) {
+ case 1:
+ move_resize_window (win, direction, xevent);
+ restack_window (win, Above);
+ break;
+ case 2:
+ handle_title_button_event (win, middle_click_action,
+ &xevent->xbutton);
+ break;
+ case 3:
+ handle_title_button_event (win, right_click_action,
+ &xevent->xbutton);
+ break;
+ }
+}
+
+static void
+top_left_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_TOPLEFT, xevent);
+}
+
+static void
+top_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_TOP, xevent);
+}
+
+static void
+top_right_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_TOPRIGHT, xevent);
+}
+
+static void
+left_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_LEFT, xevent);
+}
+
+static void
+right_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_RIGHT, xevent);
+}
+
+static void
+bottom_left_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_BOTTOMLEFT, xevent);
+}
+
+static void
+bottom_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_BOTTOM, xevent);
+}
+
+static void
+bottom_right_event (WnckWindow *win,
+ XEvent *xevent)
+{
+ frame_common_event (win, WM_MOVERESIZE_SIZE_BOTTOMRIGHT, xevent);
+}
+
+static void
+force_quit_dialog_realize (GtkWidget *dialog,
+ void *data)
+{
+ WnckWindow *win = data;
+
+ gdk_error_trap_push ();
+ XSetTransientForHint (gdk_display,
+ GDK_WINDOW_XID (dialog->window),
+ wnck_window_get_xid (win));
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+}
+
+static char *
+get_client_machine (Window xwindow)
+{
+ Atom atom, type;
+ gulong nitems, bytes_after;
+ guchar *str = NULL;
+ int format, result;
+ char *retval;
+
+ atom = XInternAtom (gdk_display, "WM_CLIENT_MACHINE", FALSE);
+
+ gdk_error_trap_push ();
+
+ result = XGetWindowProperty (gdk_display,
+ xwindow, atom,
+ 0, G_MAXLONG,
+ FALSE, XA_STRING, &type, &format, &nitems,
+ &bytes_after, &str);
+
+ gdk_error_trap_pop ();
+
+ if (result != Success)
+ return NULL;
+
+ if (type != XA_STRING)
+ {
+ XFree (str);
+ return NULL;
+ }
+
+ retval = g_strdup ((gchar *) str);
+
+ XFree (str);
+
+ return retval;
+}
+
+static void
+kill_window (WnckWindow *win)
+{
+ WnckApplication *app;
+
+ app = wnck_window_get_application (win);
+ if (app)
+ {
+ gchar buf[257], *client_machine;
+ int pid;
+
+ pid = wnck_application_get_pid (app);
+ client_machine = get_client_machine (wnck_application_get_xid (app));
+
+ if (client_machine && pid > 0)
+ {
+ if (gethostname (buf, sizeof (buf) - 1) == 0)
+ {
+ if (strcmp (buf, client_machine) == 0)
+ kill (pid, 9);
+ }
+ }
+
+ if (client_machine)
+ g_free (client_machine);
+ }
+
+ gdk_error_trap_push ();
+ XKillClient (gdk_display, wnck_window_get_xid (win));
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+}
+
+static void
+force_quit_dialog_response (GtkWidget *dialog,
+ gint response,
+ void *data)
+{
+ WnckWindow *win = data;
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (response == GTK_RESPONSE_ACCEPT)
+ kill_window (win);
+
+ if (d->force_quit_dialog)
+ {
+ d->force_quit_dialog = NULL;
+ gtk_widget_destroy (dialog);
+ }
+}
+
+static void
+show_force_quit_dialog (WnckWindow *win,
+ Time timestamp)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ GtkWidget *dialog;
+ gchar *str, *tmp;
+
+ if (d->force_quit_dialog)
+ return;
+
+ tmp = g_markup_escape_text (wnck_window_get_name (win), -1);
+ str = g_strdup_printf (_("The window \"%s\" is not responding."), tmp);
+
+ g_free (tmp);
+
+ dialog = gtk_message_dialog_new (NULL, 0,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_NONE,
+ "<b>%s</b>\n\n%s",
+ str,
+ _("Forcing this application to "
+ "quit will cause you to lose any "
+ "unsaved changes."));
+ g_free (str);
+
+ gtk_window_set_icon_name (GTK_WINDOW (dialog), "force-quit");
+
+ gtk_label_set_use_markup (GTK_LABEL (GTK_MESSAGE_DIALOG (dialog)->label),
+ TRUE);
+ gtk_label_set_line_wrap (GTK_LABEL (GTK_MESSAGE_DIALOG (dialog)->label),
+ TRUE);
+
+ gtk_dialog_add_buttons (GTK_DIALOG (dialog),
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT,
+ _("_Force Quit"),
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_REJECT);
+
+ g_signal_connect (G_OBJECT (dialog), "realize",
+ G_CALLBACK (force_quit_dialog_realize),
+ win);
+
+ g_signal_connect (G_OBJECT (dialog), "response",
+ G_CALLBACK (force_quit_dialog_response),
+ win);
+
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+ gtk_widget_realize (dialog);
+
+ gdk_x11_window_set_user_time (dialog->window, timestamp);
+
+ gtk_widget_show (dialog);
+
+ d->force_quit_dialog = dialog;
+}
+
+static void
+hide_force_quit_dialog (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->force_quit_dialog)
+ {
+ gtk_widget_destroy (d->force_quit_dialog);
+ d->force_quit_dialog = NULL;
+ }
+}
+
+static GdkFilterReturn
+event_filter_func (GdkXEvent *gdkxevent,
+ GdkEvent *event,
+ gpointer data)
+{
+ Display *xdisplay;
+ GdkDisplay *gdkdisplay;
+ XEvent *xevent = gdkxevent;
+ gulong xid = 0;
+
+ gdkdisplay = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdkdisplay);
+
+ switch (xevent->type) {
+ case ButtonPress:
+ case ButtonRelease:
+ xid = (gulong)
+ g_hash_table_lookup (frame_table,
+ GINT_TO_POINTER (xevent->xbutton.window));
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ xid = (gulong)
+ g_hash_table_lookup (frame_table,
+ GINT_TO_POINTER (xevent->xcrossing.window));
+ break;
+ case MotionNotify:
+ xid = (gulong)
+ g_hash_table_lookup (frame_table,
+ GINT_TO_POINTER (xevent->xmotion.window));
+ break;
+ case PropertyNotify:
+ if (xevent->xproperty.atom == frame_window_atom)
+ {
+ WnckWindow *win;
+
+ xid = xevent->xproperty.window;
+
+ win = wnck_window_get (xid);
+ if (win)
+ {
+ Window frame, window;
+
+ if (!get_window_prop (xid, select_window_atom, &window))
+ {
+ if (get_window_prop (xid, frame_window_atom, &frame))
+ add_frame_window (win, frame);
+ else
+ remove_frame_window (win);
+ }
+ }
+ }
+ else if (xevent->xproperty.atom == mwm_hints_atom)
+ {
+ WnckWindow *win;
+
+ xid = xevent->xproperty.window;
+
+ win = wnck_window_get (xid);
+ if (win)
+ {
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ gboolean decorated = FALSE;
+
+ if (get_mwm_prop (xid) & (MWM_DECOR_ALL | MWM_DECOR_TITLE))
+ decorated = TRUE;
+
+ if (decorated != d->decorated)
+ {
+ d->decorated = decorated;
+ if (decorated)
+ {
+ d->context = NULL;
+ d->width = d->height = 0;
+
+ update_window_decoration_size (win);
+ update_event_windows (win);
+ }
+ else
+ {
+ gdk_error_trap_push ();
+ XDeleteProperty (xdisplay, xid, win_decor_atom);
+ gdk_display_sync (gdk_display_get_default ());
+ gdk_error_trap_pop ();
+ }
+ }
+ }
+ }
+ else if (xevent->xproperty.atom == select_window_atom)
+ {
+ WnckWindow *win;
+
+ xid = xevent->xproperty.window;
+
+ win = wnck_window_get (xid);
+ if (win)
+ {
+ Window select;
+
+ if (get_window_prop (xid, select_window_atom, &select))
+ update_switcher_window (win, select);
+ }
+ }
+ break;
+ case DestroyNotify:
+ g_hash_table_remove (frame_table,
+ GINT_TO_POINTER (xevent->xproperty.window));
+ break;
+ case ClientMessage:
+ if (xevent->xclient.message_type == toolkit_action_atom)
+ {
+ long action;
+
+ action = xevent->xclient.data.l[0];
+ if (action == toolkit_action_window_menu_atom)
+ {
+ WnckWindow *win;
+
+ win = wnck_window_get (xevent->xclient.window);
+ if (win)
+ {
+ action_menu_map (win,
+ xevent->xclient.data.l[2],
+ xevent->xclient.data.l[1]);
+ }
+ }
+ else if (action == toolkit_action_force_quit_dialog_atom)
+ {
+ WnckWindow *win;
+
+ win = wnck_window_get (xevent->xclient.window);
+ if (win)
+ {
+ if (xevent->xclient.data.l[2])
+ show_force_quit_dialog (win,
+ xevent->xclient.data.l[1]);
+ else
+ hide_force_quit_dialog (win);
+ }
+ }
+ }
+ default:
+ break;
+ }
+
+ if (xid)
+ {
+ WnckWindow *win;
+
+ win = wnck_window_get (xid);
+ if (win)
+ {
+ static event_callback callback[3][3] = {
+ { top_left_event, top_event, top_right_event },
+ { left_event, title_event, right_event },
+ { bottom_left_event, bottom_event, bottom_right_event }
+ };
+ static event_callback button_callback[BUTTON_NUM] = {
+ close_button_event,
+ max_button_event,
+ min_button_event,
+ menu_button_event,
+ shade_button_event,
+ above_button_event,
+ stick_button_event,
+ unshade_button_event,
+ unabove_button_event,
+ unstick_button_event
+ };
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ gint i, j;
+
+ for (i = 0; i < 3; i++)
+ for (j = 0; j < 3; j++)
+ if (d->event_windows[i][j] == xevent->xany.window)
+ (*callback[i][j]) (win, xevent);
+
+ for (i = 0; i < BUTTON_NUM; i++)
+ if (d->button_windows[i] == xevent->xany.window)
+ (*button_callback[i]) (win, xevent);
+ }
+ }
+ }
+
+ return GDK_FILTER_CONTINUE;
+}
+
+static GdkFilterReturn
+selection_event_filter_func (GdkXEvent *gdkxevent,
+ GdkEvent *event,
+ gpointer data)
+{
+ Display *xdisplay;
+ GdkDisplay *gdkdisplay;
+ XEvent *xevent = gdkxevent;
+ int status;
+
+ gdkdisplay = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdkdisplay);
+
+ switch (xevent->type) {
+ case SelectionRequest:
+ decor_handle_selection_request (xdisplay, xevent, dm_sn_timestamp);
+ break;
+ case SelectionClear:
+ status = decor_handle_selection_clear (xdisplay, xevent, 0);
+ if (status == DECOR_SELECTION_GIVE_UP)
+ exit (0);
+ default:
+ break;
+ }
+
+ return GDK_FILTER_CONTINUE;
+}
+
+
+/* from clearlooks theme */
+static void
+rgb_to_hls (gdouble *r,
+ gdouble *g,
+ gdouble *b)
+{
+ gdouble min;
+ gdouble max;
+ gdouble red;
+ gdouble green;
+ gdouble blue;
+ gdouble h, l, s;
+ gdouble delta;
+
+ red = *r;
+ green = *g;
+ blue = *b;
+
+ if (red > green)
+ {
+ if (red > blue)
+ max = red;
+ else
+ max = blue;
+
+ if (green < blue)
+ min = green;
+ else
+ min = blue;
+ }
+ else
+ {
+ if (green > blue)
+ max = green;
+ else
+ max = blue;
+
+ if (red < blue)
+ min = red;
+ else
+ min = blue;
+ }
+
+ l = (max + min) / 2;
+ s = 0;
+ h = 0;
+
+ if (max != min)
+ {
+ if (l <= 0.5)
+ s = (max - min) / (max + min);
+ else
+ s = (max - min) / (2 - max - min);
+
+ delta = max -min;
+ if (red == max)
+ h = (green - blue) / delta;
+ else if (green == max)
+ h = 2 + (blue - red) / delta;
+ else if (blue == max)
+ h = 4 + (red - green) / delta;
+
+ h *= 60;
+ if (h < 0.0)
+ h += 360;
+ }
+
+ *r = h;
+ *g = l;
+ *b = s;
+}
+
+static void
+hls_to_rgb (gdouble *h,
+ gdouble *l,
+ gdouble *s)
+{
+ gdouble hue;
+ gdouble lightness;
+ gdouble saturation;
+ gdouble m1, m2;
+ gdouble r, g, b;
+
+ lightness = *l;
+ saturation = *s;
+
+ if (lightness <= 0.5)
+ m2 = lightness * (1 + saturation);
+ else
+ m2 = lightness + saturation - lightness * saturation;
+
+ m1 = 2 * lightness - m2;
+
+ if (saturation == 0)
+ {
+ *h = lightness;
+ *l = lightness;
+ *s = lightness;
+ }
+ else
+ {
+ hue = *h + 120;
+ while (hue > 360)
+ hue -= 360;
+ while (hue < 0)
+ hue += 360;
+
+ if (hue < 60)
+ r = m1 + (m2 - m1) * hue / 60;
+ else if (hue < 180)
+ r = m2;
+ else if (hue < 240)
+ r = m1 + (m2 - m1) * (240 - hue) / 60;
+ else
+ r = m1;
+
+ hue = *h;
+ while (hue > 360)
+ hue -= 360;
+ while (hue < 0)
+ hue += 360;
+
+ if (hue < 60)
+ g = m1 + (m2 - m1) * hue / 60;
+ else if (hue < 180)
+ g = m2;
+ else if (hue < 240)
+ g = m1 + (m2 - m1) * (240 - hue) / 60;
+ else
+ g = m1;
+
+ hue = *h - 120;
+ while (hue > 360)
+ hue -= 360;
+ while (hue < 0)
+ hue += 360;
+
+ if (hue < 60)
+ b = m1 + (m2 - m1) * hue / 60;
+ else if (hue < 180)
+ b = m2;
+ else if (hue < 240)
+ b = m1 + (m2 - m1) * (240 - hue) / 60;
+ else
+ b = m1;
+
+ *h = r;
+ *l = g;
+ *s = b;
+ }
+}
+
+static void
+shade (const decor_color_t *a,
+ decor_color_t *b,
+ float k)
+{
+ double red;
+ double green;
+ double blue;
+
+ red = a->r;
+ green = a->g;
+ blue = a->b;
+
+ rgb_to_hls (&red, &green, &blue);
+
+ green *= k;
+ if (green > 1.0)
+ green = 1.0;
+ else if (green < 0.0)
+ green = 0.0;
+
+ blue *= k;
+ if (blue > 1.0)
+ blue = 1.0;
+ else if (blue < 0.0)
+ blue = 0.0;
+
+ hls_to_rgb (&red, &green, &blue);
+
+ b->r = red;
+ b->g = green;
+ b->b = blue;
+}
+
+static void
+update_style (GtkWidget *widget)
+{
+ GtkStyle *style;
+ decor_color_t spot_color;
+
+ style = gtk_widget_get_style (widget);
+ g_object_ref (G_OBJECT (style));
+
+ style = gtk_style_attach (style, widget->window);
+
+ spot_color.r = style->bg[GTK_STATE_SELECTED].red / 65535.0;
+ spot_color.g = style->bg[GTK_STATE_SELECTED].green / 65535.0;
+ spot_color.b = style->bg[GTK_STATE_SELECTED].blue / 65535.0;
+
+ g_object_unref (G_OBJECT (style));
+
+ shade (&spot_color, &_title_color[0], 1.05);
+ shade (&_title_color[0], &_title_color[1], 0.85);
+}
+
+/* to save some memory, value is specific to current decorations */
+#define TRANSLUCENT_CORNER_SIZE 3
+
+static void
+draw_border_shape (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *c,
+ void *closure)
+{
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ GdkScreen *screen;
+ GdkColormap *colormap;
+ decor_t d;
+ double save_decoration_alpha;
+
+ memset (&d, 0, sizeof (d));
+
+ d.pixmap = gdk_pixmap_foreign_new_for_display (gdk_display_get_default (),
+ pixmap);
+ d.width = width;
+ d.height = height;
+ d.active = TRUE;
+ d.draw = theme_draw_window_decoration;
+ d.picture = picture;
+ d.context = c;
+
+ /* we use closure argument if maximized */
+ if (closure)
+ d.state |=
+ WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY |
+ WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY;
+
+ decor_get_default_layout (c, 1, 1, &d.border_layout);
+
+ screen = gdk_display_get_default_screen (gdk_display_get_default ());
+ colormap = gdk_screen_get_rgba_colormap (screen);
+
+ gdk_drawable_set_colormap (d.pixmap, colormap);
+
+ /* create shadow from opaque decoration */
+ save_decoration_alpha = decoration_alpha;
+ decoration_alpha = 1.0;
+
+ (*d.draw) (&d);
+
+ decoration_alpha = save_decoration_alpha;
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ c->left_space,
+ c->top_space,
+ width - c->left_space - c->right_space,
+ height - c->top_space - c->bottom_space);
+
+ g_object_unref (G_OBJECT (d.pixmap));
+}
+
+static int
+update_shadow (void)
+{
+ decor_shadow_options_t opt;
+ Display *xdisplay = gdk_display;
+ GdkDisplay *display = gdk_display_get_default ();
+ GdkScreen *screen = gdk_display_get_default_screen (display);
+
+ opt.shadow_radius = shadow_radius;
+ opt.shadow_opacity = shadow_opacity;
+
+ memcpy (opt.shadow_color, shadow_color, sizeof (shadow_color));
+
+ opt.shadow_offset_x = shadow_offset_x;
+ opt.shadow_offset_y = shadow_offset_y;
+
+ if (no_border_shadow)
+ {
+ decor_shadow_destroy (xdisplay, no_border_shadow);
+ no_border_shadow = NULL;
+ }
+
+ no_border_shadow = decor_shadow_create (xdisplay,
+ gdk_x11_screen_get_xscreen (screen),
+ 1, 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0, 0, 0,
+ &opt,
+ &shadow_context,
+ decor_draw_simple,
+ 0);
+
+ if (border_shadow)
+ {
+ decor_shadow_destroy (xdisplay, border_shadow);
+ border_shadow = NULL;
+ }
+
+ border_shadow = decor_shadow_create (xdisplay,
+ gdk_x11_screen_get_xscreen (screen),
+ 1, 1,
+ _win_extents.left,
+ _win_extents.right,
+ _win_extents.top + titlebar_height,
+ _win_extents.bottom,
+ _win_extents.left -
+ TRANSLUCENT_CORNER_SIZE,
+ _win_extents.right -
+ TRANSLUCENT_CORNER_SIZE,
+ _win_extents.top + titlebar_height -
+ TRANSLUCENT_CORNER_SIZE,
+ _win_extents.bottom -
+ TRANSLUCENT_CORNER_SIZE,
+ &opt,
+ &window_context,
+ draw_border_shape,
+ 0);
+
+ if (max_border_shadow)
+ {
+ decor_shadow_destroy (xdisplay, max_border_shadow);
+ max_border_shadow = NULL;
+ }
+
+ max_border_shadow =
+ decor_shadow_create (xdisplay,
+ gdk_x11_screen_get_xscreen (screen),
+ 1, 1,
+ _max_win_extents.left,
+ _max_win_extents.right,
+ _max_win_extents.top + max_titlebar_height,
+ _max_win_extents.bottom,
+ _max_win_extents.left - TRANSLUCENT_CORNER_SIZE,
+ _max_win_extents.right - TRANSLUCENT_CORNER_SIZE,
+ _max_win_extents.top + max_titlebar_height -
+ TRANSLUCENT_CORNER_SIZE,
+ _max_win_extents.bottom - TRANSLUCENT_CORNER_SIZE,
+ &opt,
+ &max_window_context,
+ draw_border_shape,
+ (void *) 1);
+
+ if (switcher_shadow)
+ {
+ decor_shadow_destroy (xdisplay, switcher_shadow);
+ switcher_shadow = NULL;
+ }
+
+ switcher_shadow = decor_shadow_create (xdisplay,
+ gdk_x11_screen_get_xscreen (screen),
+ 1, 1,
+ _switcher_extents.left,
+ _switcher_extents.right,
+ _switcher_extents.top,
+ _switcher_extents.bottom,
+ _switcher_extents.left -
+ TRANSLUCENT_CORNER_SIZE,
+ _switcher_extents.right -
+ TRANSLUCENT_CORNER_SIZE,
+ _switcher_extents.top -
+ TRANSLUCENT_CORNER_SIZE,
+ _switcher_extents.bottom -
+ TRANSLUCENT_CORNER_SIZE,
+ &opt,
+ &switcher_context,
+ decor_draw_simple,
+ 0);
+
+ return 1;
+}
+
+static void
+update_window_decoration (WnckWindow *win)
+{
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+
+ if (d->decorated)
+ {
+ /* force size update */
+ d->context = NULL;
+ d->width = d->height = 0;
+
+ update_window_decoration_size (win);
+ update_event_windows (win);
+ }
+ else
+ {
+ Window xid = wnck_window_get_xid (win);
+ Window select;
+
+ if (get_window_prop (xid, select_window_atom, &select))
+ {
+ /* force size update */
+ d->context = NULL;
+ d->width = d->height = 0;
+ switcher_width = switcher_height = 0;
+
+ update_switcher_window (win, select);
+ }
+ }
+}
+
+static const PangoFontDescription *
+get_titlebar_font (void)
+{
+ if (use_system_font)
+ {
+ return NULL;
+ }
+ else
+ return titlebar_font;
+}
+
+#ifdef USE_GCONF
+static void
+titlebar_font_changed (GConfClient *client)
+{
+ gchar *str;
+
+ str = gconf_client_get_string (client,
+ COMPIZ_TITLEBAR_FONT_KEY,
+ NULL);
+ if (!str)
+ str = g_strdup ("Sans Bold 12");
+
+ if (titlebar_font)
+ pango_font_description_free (titlebar_font);
+
+ titlebar_font = pango_font_description_from_string (str);
+
+ g_free (str);
+}
+
+static void
+titlebar_click_action_changed (GConfClient *client,
+ const gchar *key,
+ int *action_value,
+ int default_value)
+{
+ gchar *action;
+
+ *action_value = default_value;
+
+ action = gconf_client_get_string (client, key, NULL);
+ if (action)
+ {
+ if (strcmp (action, "toggle_shade") == 0)
+ *action_value = CLICK_ACTION_SHADE;
+ else if (strcmp (action, "toggle_maximize") == 0)
+ *action_value = CLICK_ACTION_MAXIMIZE;
+ else if (strcmp (action, "toggle_maximize_horizontally") == 0)
+ *action_value = CLICK_ACTION_MAXIMIZE_HORZ;
+ else if (strcmp (action, "toggle_maximize_vertically") == 0)
+ *action_value = CLICK_ACTION_MAXIMIZE_VERT;
+ else if (strcmp (action, "minimize") == 0)
+ *action_value = CLICK_ACTION_MINIMIZE;
+ else if (strcmp (action, "raise") == 0)
+ *action_value = CLICK_ACTION_RAISE;
+ else if (strcmp (action, "lower") == 0)
+ *action_value = CLICK_ACTION_LOWER;
+ else if (strcmp (action, "menu") == 0)
+ *action_value = CLICK_ACTION_MENU;
+ else if (strcmp (action, "none") == 0)
+ *action_value = CLICK_ACTION_NONE;
+
+ g_free (action);
+ }
+}
+
+static void
+wheel_action_changed (GConfClient *client)
+{
+ gchar *action;
+
+ wheel_action = WHEEL_ACTION_DEFAULT;
+
+ action = gconf_client_get_string (client, WHEEL_ACTION_KEY, NULL);
+ if (action)
+ {
+ if (strcmp (action, "shade") == 0)
+ wheel_action = WHEEL_ACTION_SHADE;
+ else if (strcmp (action, "none") == 0)
+ wheel_action = WHEEL_ACTION_NONE;
+
+ g_free (action);
+ }
+}
+#endif
+
+#ifdef USE_METACITY
+static MetaButtonFunction
+meta_button_function_from_string (const char *str)
+{
+ if (strcmp (str, "menu") == 0)
+ return META_BUTTON_FUNCTION_MENU;
+ else if (strcmp (str, "minimize") == 0)
+ return META_BUTTON_FUNCTION_MINIMIZE;
+ else if (strcmp (str, "maximize") == 0)
+ return META_BUTTON_FUNCTION_MAXIMIZE;
+ else if (strcmp (str, "close") == 0)
+ return META_BUTTON_FUNCTION_CLOSE;
+
+#ifdef HAVE_METACITY_2_17_0
+ else if (strcmp (str, "shade") == 0)
+ return META_BUTTON_FUNCTION_SHADE;
+ else if (strcmp (str, "above") == 0)
+ return META_BUTTON_FUNCTION_ABOVE;
+ else if (strcmp (str, "stick") == 0)
+ return META_BUTTON_FUNCTION_STICK;
+ else if (strcmp (str, "unshade") == 0)
+ return META_BUTTON_FUNCTION_UNSHADE;
+ else if (strcmp (str, "unabove") == 0)
+ return META_BUTTON_FUNCTION_UNABOVE;
+ else if (strcmp (str, "unstick") == 0)
+ return META_BUTTON_FUNCTION_UNSTICK;
+#endif
+
+ else
+ return META_BUTTON_FUNCTION_LAST;
+}
+
+static MetaButtonFunction
+meta_button_opposite_function (MetaButtonFunction ofwhat)
+{
+ switch (ofwhat)
+ {
+#ifdef HAVE_METACITY_2_17_0
+ case META_BUTTON_FUNCTION_SHADE:
+ return META_BUTTON_FUNCTION_UNSHADE;
+ case META_BUTTON_FUNCTION_UNSHADE:
+ return META_BUTTON_FUNCTION_SHADE;
+
+ case META_BUTTON_FUNCTION_ABOVE:
+ return META_BUTTON_FUNCTION_UNABOVE;
+ case META_BUTTON_FUNCTION_UNABOVE:
+ return META_BUTTON_FUNCTION_ABOVE;
+
+ case META_BUTTON_FUNCTION_STICK:
+ return META_BUTTON_FUNCTION_UNSTICK;
+ case META_BUTTON_FUNCTION_UNSTICK:
+ return META_BUTTON_FUNCTION_STICK;
+#endif
+
+ default:
+ return META_BUTTON_FUNCTION_LAST;
+ }
+}
+
+static void
+meta_initialize_button_layout (MetaButtonLayout *layout)
+{
+ int i;
+
+ for (i = 0; i < MAX_BUTTONS_PER_CORNER; i++)
+ {
+ layout->left_buttons[i] = META_BUTTON_FUNCTION_LAST;
+ layout->right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+#ifdef HAVE_METACITY_2_23_2
+ layout->left_buttons_has_spacer[i] = FALSE;
+ layout->right_buttons_has_spacer[i] = FALSE;
+#endif
+ }
+}
+
+static void
+meta_update_button_layout (const char *value)
+{
+ MetaButtonLayout new_layout;
+ MetaButtonFunction f;
+ char **sides;
+ int i;
+
+ meta_initialize_button_layout (&new_layout);
+
+ sides = g_strsplit (value, ":", 2);
+
+ if (sides[0] != NULL)
+ {
+ char **buttons;
+ int b;
+ gboolean used[META_BUTTON_FUNCTION_LAST];
+
+ for (i = 0; i < META_BUTTON_FUNCTION_LAST; i++)
+ used[i] = FALSE;
+
+ buttons = g_strsplit (sides[0], ",", -1);
+
+ i = b = 0;
+ while (buttons[b] != NULL)
+ {
+ f = meta_button_function_from_string (buttons[b]);
+#ifdef HAVE_METACITY_2_23_2
+ if (i > 0 && strcmp("spacer", buttons[b]) == 0)
+ {
+ new_layout.left_buttons_has_spacer[i - 1] = TRUE;
+ f = meta_button_opposite_function (f);
+
+ if (f != META_BUTTON_FUNCTION_LAST)
+ new_layout.left_buttons_has_spacer[i - 2] = TRUE;
+ }
+ else
+#endif
+ {
+ if (f != META_BUTTON_FUNCTION_LAST && !used[f])
+ {
+ used[f] = TRUE;
+ new_layout.left_buttons[i++] = f;
+
+ f = meta_button_opposite_function (f);
+
+ if (f != META_BUTTON_FUNCTION_LAST)
+ new_layout.left_buttons[i++] = f;
+
+ }
+ else
+ {
+ fprintf (stderr, "%s: Ignoring unknown or already-used "
+ "button name \"%s\"\n", program_name, buttons[b]);
+ }
+ }
+ b++;
+ }
+
+ new_layout.left_buttons[i] = META_BUTTON_FUNCTION_LAST;
+
+ g_strfreev (buttons);
+
+ if (sides[1] != NULL)
+ {
+ for (i = 0; i < META_BUTTON_FUNCTION_LAST; i++)
+ used[i] = FALSE;
+
+ buttons = g_strsplit (sides[1], ",", -1);
+
+ i = b = 0;
+ while (buttons[b] != NULL)
+ {
+ f = meta_button_function_from_string (buttons[b]);
+#ifdef HAVE_METACITY_2_23_2
+ if (i > 0 && strcmp("spacer", buttons[b]) == 0)
+ {
+ new_layout.right_buttons_has_spacer[i - 1] = TRUE;
+ f = meta_button_opposite_function (f);
+ if (f != META_BUTTON_FUNCTION_LAST)
+ new_layout.right_buttons_has_spacer[i - 2] = TRUE;
+ }
+ else
+#endif
+ {
+ if (f != META_BUTTON_FUNCTION_LAST && !used[f])
+ {
+ used[f] = TRUE;
+ new_layout.right_buttons[i++] = f;
+
+ f = meta_button_opposite_function (f);
+
+ if (f != META_BUTTON_FUNCTION_LAST)
+ new_layout.right_buttons[i++] = f;
+ }
+ else
+ {
+ fprintf (stderr, "%s: Ignoring unknown or "
+ "already-used button name \"%s\"\n",
+ program_name, buttons[b]);
+ }
+ }
+ b++;
+ }
+ new_layout.right_buttons[i] = META_BUTTON_FUNCTION_LAST;
+
+ g_strfreev (buttons);
+ }
+ }
+
+ g_strfreev (sides);
+
+ /* Invert the button layout for RTL languages */
+ if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
+ {
+ MetaButtonLayout rtl_layout;
+ int j;
+
+ meta_initialize_button_layout (&rtl_layout);
+
+ i = 0;
+ while (new_layout.left_buttons[i] != META_BUTTON_FUNCTION_LAST)
+ i++;
+
+ for (j = 0; j < i; j++)
+ {
+ rtl_layout.right_buttons[j] = new_layout.left_buttons[i - j - 1];
+#ifdef HAVE_METACITY_2_23_2
+ if (j == 0)
+ rtl_layout.right_buttons_has_spacer[i - 1] =
+ new_layout.left_buttons_has_spacer[i - j - 1];
+ else
+ rtl_layout.right_buttons_has_spacer[j - 1] =
+ new_layout.left_buttons_has_spacer[i - j - 1];
+#endif
+ }
+
+ i = 0;
+ while (new_layout.right_buttons[i] != META_BUTTON_FUNCTION_LAST)
+ i++;
+
+ for (j = 0; j < i; j++)
+ {
+ rtl_layout.left_buttons[j] = new_layout.right_buttons[i - j - 1];
+#ifdef HAVE_METACITY_2_23_2
+ if (j == 0)
+ rtl_layout.left_buttons_has_spacer[i - 1] =
+ new_layout.right_buttons_has_spacer[i - j - 1];
+ else
+ rtl_layout.left_buttons_has_spacer[j - 1] =
+ new_layout.right_buttons_has_spacer[i - j - 1];
+#endif
+ }
+
+ new_layout = rtl_layout;
+ }
+
+ meta_button_layout = new_layout;
+}
+#endif
+
+static void
+update_border_extents (gint text_height)
+{
+ _win_extents = _default_win_extents;
+ _max_win_extents = _default_win_extents;
+ max_titlebar_height = titlebar_height =
+ (text_height < 17) ? 17 : text_height;
+}
+
+#ifdef USE_METACITY
+static void
+meta_update_border_extents (gint text_height)
+{
+ MetaTheme *theme;
+ gint top_height, bottom_height, left_width, right_width;
+
+ theme = meta_theme_get_current ();
+
+ meta_theme_get_frame_borders (theme,
+ META_FRAME_TYPE_NORMAL,
+ text_height, 0,
+ &top_height,
+ &bottom_height,
+ &left_width,
+ &right_width);
+
+ _win_extents.top = _default_win_extents.top;
+ _win_extents.bottom = bottom_height;
+ _win_extents.left = left_width;
+ _win_extents.right = right_width;
+
+ titlebar_height = top_height - _win_extents.top;
+
+ meta_theme_get_frame_borders (theme,
+ META_FRAME_TYPE_NORMAL,
+ text_height, META_FRAME_MAXIMIZED,
+ &top_height,
+ &bottom_height,
+ &left_width,
+ &right_width);
+
+ _max_win_extents.top = _default_win_extents.top;
+ _max_win_extents.bottom = bottom_height;
+ _max_win_extents.left = left_width;
+ _max_win_extents.right = right_width;
+
+ max_titlebar_height = top_height - _max_win_extents.top;
+}
+#endif
+
+static void
+update_titlebar_font (void)
+{
+ const PangoFontDescription *font_desc;
+ PangoFontMetrics *metrics;
+ PangoLanguage *lang;
+
+ font_desc = get_titlebar_font ();
+ if (!font_desc)
+ {
+ GtkStyle *default_style;
+
+ default_style = gtk_widget_get_default_style ();
+ font_desc = default_style->font_desc;
+ }
+
+ pango_context_set_font_description (pango_context, font_desc);
+
+ lang = pango_context_get_language (pango_context);
+ metrics = pango_context_get_metrics (pango_context, font_desc, lang);
+
+ text_height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
+ pango_font_metrics_get_descent (metrics));
+
+ pango_font_metrics_unref (metrics);
+}
+
+static void
+decorations_changed (WnckScreen *screen)
+{
+ GdkDisplay *gdkdisplay;
+ GdkScreen *gdkscreen;
+ GList *windows;
+
+ gdkdisplay = gdk_display_get_default ();
+ gdkscreen = gdk_display_get_default_screen (gdkdisplay);
+
+ update_titlebar_font ();
+ (*theme_update_border_extents) (text_height);
+ update_shadow ();
+
+ update_default_decorations (gdkscreen);
+
+ if (minimal)
+ return;
+
+ windows = wnck_screen_get_windows (screen);
+ while (windows != NULL)
+ {
+ decor_t *d = g_object_get_data (G_OBJECT (windows->data), "decor");
+
+ if (d->decorated)
+ {
+
+#ifdef USE_METACITY
+ if (d->draw == draw_window_decoration ||
+ d->draw == meta_draw_window_decoration)
+ d->draw = theme_draw_window_decoration;
+#endif
+
+ }
+
+ update_window_decoration (WNCK_WINDOW (windows->data));
+ windows = windows->next;
+ }
+}
+
+static void
+style_changed (GtkWidget *widget)
+{
+ GdkDisplay *gdkdisplay;
+ GdkScreen *gdkscreen;
+ WnckScreen *screen;
+
+ gdkdisplay = gdk_display_get_default ();
+ gdkscreen = gdk_display_get_default_screen (gdkdisplay);
+ screen = wnck_screen_get_default ();
+
+ update_style (widget);
+
+ pango_cairo_context_set_resolution (pango_context,
+ gdk_screen_get_resolution (gdkscreen));
+
+ decorations_changed (screen);
+}
+
+#ifdef USE_GCONF
+static gboolean
+shadow_settings_changed (GConfClient *client)
+{
+ double radius, opacity;
+ int offset;
+ gchar *color;
+ gboolean changed = FALSE;
+
+ radius = gconf_client_get_float (client,
+ COMPIZ_SHADOW_RADIUS_KEY,
+ NULL);
+ radius = MAX (0.0, MIN (radius, 48.0));
+ if (shadow_radius != radius)
+ {
+ shadow_radius = radius;
+ changed = TRUE;
+ }
+
+ opacity = gconf_client_get_float (client,
+ COMPIZ_SHADOW_OPACITY_KEY,
+ NULL);
+ opacity = MAX (0.0, MIN (opacity, 6.0));
+ if (shadow_opacity != opacity)
+ {
+ shadow_opacity = opacity;
+ changed = TRUE;
+ }
+
+ color = gconf_client_get_string (client,
+ COMPIZ_SHADOW_COLOR_KEY,
+ NULL);
+ if (color)
+ {
+ int c[4];
+
+ if (sscanf (color, "#%2x%2x%2x%2x", &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ shadow_color[0] = c[0] << 8 | c[0];
+ shadow_color[1] = c[1] << 8 | c[1];
+ shadow_color[2] = c[2] << 8 | c[2];
+ changed = TRUE;
+ }
+
+ g_free (color);
+ }
+
+ offset = gconf_client_get_int (client,
+ COMPIZ_SHADOW_OFFSET_X_KEY,
+ NULL);
+ offset = MAX (-16, MIN (offset, 16));
+ if (shadow_offset_x != offset)
+ {
+ shadow_offset_x = offset;
+ changed = TRUE;
+ }
+
+ offset = gconf_client_get_int (client,
+ COMPIZ_SHADOW_OFFSET_Y_KEY,
+ NULL);
+ offset = MAX (-16, MIN (offset, 16));
+ if (shadow_offset_y != offset)
+ {
+ shadow_offset_y = offset;
+ changed = TRUE;
+ }
+
+ return changed;
+}
+
+static gboolean
+blur_settings_changed (GConfClient *client)
+{
+ gchar *type;
+ int new_type = blur_type;
+
+ if (cmdline_options & CMDLINE_BLUR)
+ return FALSE;
+
+ type = gconf_client_get_string (client,
+ BLUR_TYPE_KEY,
+ NULL);
+
+ if (type)
+ {
+ if (strcmp (type, "titlebar") == 0)
+ new_type = BLUR_TYPE_TITLEBAR;
+ else if (strcmp (type, "all") == 0)
+ new_type = BLUR_TYPE_ALL;
+ else if (strcmp (type, "none") == 0)
+ new_type = BLUR_TYPE_NONE;
+
+ g_free (type);
+ }
+
+ if (new_type != blur_type)
+ {
+ blur_type = new_type;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+theme_changed (GConfClient *client)
+{
+
+#ifdef USE_METACITY
+ gboolean use_meta_theme;
+
+ if (cmdline_options & CMDLINE_THEME)
+ return FALSE;
+
+ use_meta_theme = gconf_client_get_bool (client,
+ USE_META_THEME_KEY,
+ NULL);
+
+ if (use_meta_theme)
+ {
+ gchar *theme;
+
+ theme = gconf_client_get_string (client,
+ META_THEME_KEY,
+ NULL);
+
+ if (theme)
+ {
+ meta_theme_set_current (theme, TRUE);
+ if (!meta_theme_get_current ())
+ use_meta_theme = FALSE;
+
+ g_free (theme);
+ }
+ else
+ {
+ use_meta_theme = FALSE;
+ }
+ }
+
+ if (use_meta_theme)
+ {
+ theme_draw_window_decoration = meta_draw_window_decoration;
+ theme_calc_decoration_size = meta_calc_decoration_size;
+ theme_update_border_extents = meta_update_border_extents;
+ theme_get_event_window_position = meta_get_event_window_position;
+ theme_get_button_position = meta_get_button_position;
+ }
+ else
+ {
+ theme_draw_window_decoration = draw_window_decoration;
+ theme_calc_decoration_size = calc_decoration_size;
+ theme_update_border_extents = update_border_extents;
+ theme_get_event_window_position = get_event_window_position;
+ theme_get_button_position = get_button_position;
+ }
+
+ return TRUE;
+#else
+ theme_draw_window_decoration = draw_window_decoration;
+ theme_calc_decoration_size = calc_decoration_size;
+ theme_update_border_extents = update_border_extents;
+ theme_get_event_window_position = get_event_window_position;
+ theme_get_button_position = get_button_position;
+
+ return FALSE;
+#endif
+
+}
+
+static gboolean
+theme_opacity_changed (GConfClient *client)
+{
+
+#ifdef USE_METACITY
+ gboolean shade_opacity, changed = FALSE;
+ gdouble opacity;
+
+ opacity = gconf_client_get_float (client,
+ META_THEME_OPACITY_KEY,
+ NULL);
+
+ if (!(cmdline_options & CMDLINE_OPACITY) &&
+ opacity != meta_opacity)
+ {
+ meta_opacity = opacity;
+ changed = TRUE;
+ }
+
+ if (opacity < 1.0)
+ {
+ shade_opacity = gconf_client_get_bool (client,
+ META_THEME_SHADE_OPACITY_KEY,
+ NULL);
+
+ if (!(cmdline_options & CMDLINE_OPACITY_SHADE) &&
+ shade_opacity != meta_shade_opacity)
+ {
+ meta_shade_opacity = shade_opacity;
+ changed = TRUE;
+ }
+ }
+
+ opacity = gconf_client_get_float (client,
+ META_THEME_ACTIVE_OPACITY_KEY,
+ NULL);
+
+ if (!(cmdline_options & CMDLINE_ACTIVE_OPACITY) &&
+ opacity != meta_active_opacity)
+ {
+ meta_active_opacity = opacity;
+ changed = TRUE;
+ }
+
+ if (opacity < 1.0)
+ {
+ shade_opacity =
+ gconf_client_get_bool (client,
+ META_THEME_ACTIVE_SHADE_OPACITY_KEY,
+ NULL);
+
+ if (!(cmdline_options & CMDLINE_ACTIVE_OPACITY_SHADE) &&
+ shade_opacity != meta_active_shade_opacity)
+ {
+ meta_active_shade_opacity = shade_opacity;
+ changed = TRUE;
+ }
+ }
+
+ return changed;
+#else
+ return FALSE;
+#endif
+
+}
+
+static gboolean
+button_layout_changed (GConfClient *client)
+{
+
+#ifdef USE_METACITY
+ gchar *button_layout;
+
+ button_layout = gconf_client_get_string (client,
+ META_BUTTON_LAYOUT_KEY,
+ NULL);
+
+ if (button_layout)
+ {
+ meta_update_button_layout (button_layout);
+
+ meta_button_layout_set = TRUE;
+
+ g_free (button_layout);
+
+ return TRUE;
+ }
+
+ if (meta_button_layout_set)
+ {
+ meta_button_layout_set = FALSE;
+ return TRUE;
+ }
+#endif
+
+ return FALSE;
+}
+
+static void
+value_changed (GConfClient *client,
+ const gchar *key,
+ GConfValue *value,
+ void *data)
+{
+ gboolean changed = FALSE;
+
+ if (strcmp (key, COMPIZ_USE_SYSTEM_FONT_KEY) == 0)
+ {
+ if (gconf_client_get_bool (client,
+ COMPIZ_USE_SYSTEM_FONT_KEY,
+ NULL) != use_system_font)
+ {
+ use_system_font = !use_system_font;
+ changed = TRUE;
+ }
+ }
+ else if (strcmp (key, COMPIZ_TITLEBAR_FONT_KEY) == 0)
+ {
+ titlebar_font_changed (client);
+ changed = !use_system_font;
+ }
+ else if (strcmp (key, COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY) == 0)
+ {
+ titlebar_click_action_changed (client, key,
+ &double_click_action,
+ DOUBLE_CLICK_ACTION_DEFAULT);
+ }
+ else if (strcmp (key, COMPIZ_MIDDLE_CLICK_TITLEBAR_KEY) == 0)
+ {
+ titlebar_click_action_changed (client, key,
+ &middle_click_action,
+ MIDDLE_CLICK_ACTION_DEFAULT);
+ }
+ else if (strcmp (key, COMPIZ_RIGHT_CLICK_TITLEBAR_KEY) == 0)
+ {
+ titlebar_click_action_changed (client, key,
+ &right_click_action,
+ RIGHT_CLICK_ACTION_DEFAULT);
+ }
+ else if (strcmp (key, WHEEL_ACTION_KEY) == 0)
+ {
+ wheel_action_changed (client);
+ }
+ else if (strcmp (key, COMPIZ_SHADOW_RADIUS_KEY) == 0 ||
+ strcmp (key, COMPIZ_SHADOW_OPACITY_KEY) == 0 ||
+ strcmp (key, COMPIZ_SHADOW_OFFSET_X_KEY) == 0 ||
+ strcmp (key, COMPIZ_SHADOW_OFFSET_Y_KEY) == 0 ||
+ strcmp (key, COMPIZ_SHADOW_COLOR_KEY) == 0)
+ {
+ if (shadow_settings_changed (client))
+ changed = TRUE;
+ }
+ else if (strcmp (key, BLUR_TYPE_KEY) == 0)
+ {
+ if (blur_settings_changed (client))
+ changed = TRUE;
+ }
+ else if (strcmp (key, USE_META_THEME_KEY) == 0 ||
+ strcmp (key, META_THEME_KEY) == 0)
+ {
+ if (theme_changed (client))
+ changed = TRUE;
+ }
+ else if (strcmp (key, META_BUTTON_LAYOUT_KEY) == 0)
+ {
+ if (button_layout_changed (client))
+ changed = TRUE;
+ }
+ else if (strcmp (key, META_THEME_OPACITY_KEY) == 0 ||
+ strcmp (key, META_THEME_SHADE_OPACITY_KEY) == 0 ||
+ strcmp (key, META_THEME_ACTIVE_OPACITY_KEY) == 0 ||
+ strcmp (key, META_THEME_ACTIVE_SHADE_OPACITY_KEY) == 0)
+ {
+ if (theme_opacity_changed (client))
+ changed = TRUE;
+ }
+
+ if (changed)
+ decorations_changed (data);
+}
+
+#elif USE_DBUS_GLIB
+
+static DBusHandlerResult
+dbus_handle_message (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data)
+{
+ WnckScreen *screen = user_data;
+ char **path;
+ const char *interface, *member;
+ DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ interface = dbus_message_get_interface (message);
+ member = dbus_message_get_member (message);
+
+ (void) connection;
+
+ if (!interface || !member)
+ return result;
+
+ if (!dbus_message_is_signal (message, interface, member))
+ return result;
+
+ if (strcmp (member, "changed"))
+ return result;
+
+ if (!dbus_message_get_path_decomposed (message, &path))
+ return result;
+
+ if (!path[0] || !path[1] || !path[2] || !path[3] || !path[4] || !path[5])
+ {
+ dbus_free_string_array (path);
+ return result;
+ }
+
+ if (!strcmp (path[0], "org") &&
+ !strcmp (path[1], "freedesktop") &&
+ !strcmp (path[2], "compiz") &&
+ !strcmp (path[3], "decoration") &&
+ !strcmp (path[4], "allscreens"))
+ {
+ result = DBUS_HANDLER_RESULT_HANDLED;
+
+ if (strcmp (path[5], "shadow_radius") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_DOUBLE, &shadow_radius,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_opacity") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_DOUBLE, &shadow_opacity,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_color") == 0)
+ {
+ DBusError error;
+ char *str;
+
+ dbus_error_init (&error);
+
+ dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+
+ if (!dbus_error_is_set (&error))
+ {
+ int c[4];
+
+ if (sscanf (str, "#%2x%2x%2x%2x",
+ &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ shadow_color[0] = c[0] << 8 | c[0];
+ shadow_color[1] = c[1] << 8 | c[1];
+ shadow_color[2] = c[2] << 8 | c[2];
+ }
+ }
+
+ dbus_error_free (&error);
+ }
+ else if (strcmp (path[5], "shadow_x_offset") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_INT32, &shadow_offset_x,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_y_offset") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_INT32, &shadow_offset_y,
+ DBUS_TYPE_INVALID);
+ }
+
+ decorations_changed (screen);
+ }
+
+ dbus_free_string_array (path);
+
+ return result;
+}
+
+static DBusMessage *
+send_and_block_for_shadow_option_reply (DBusConnection *connection,
+ char *path)
+{
+ DBusMessage *message;
+
+ message = dbus_message_new_method_call (NULL,
+ path,
+ DBUS_INTERFACE,
+ DBUS_METHOD_GET);
+ if (message)
+ {
+ DBusMessage *reply;
+ DBusError error;
+
+ dbus_message_set_destination (message, DBUS_DEST);
+
+ dbus_error_init (&error);
+ reply = dbus_connection_send_with_reply_and_block (connection,
+ message, -1,
+ &error);
+ dbus_message_unref (message);
+
+ if (!dbus_error_is_set (&error))
+ return reply;
+ }
+
+ return NULL;
+}
+
+#endif
+
+static gboolean
+init_settings (WnckScreen *screen)
+{
+ GtkSettings *settings;
+ GdkScreen *gdkscreen;
+ GdkColormap *colormap;
+ AtkObject *switcher_label_obj;
+
+#ifdef USE_GCONF
+ GConfClient *gconf;
+
+ gconf = gconf_client_get_default ();
+
+ gconf_client_add_dir (gconf,
+ GCONF_DIR,
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ gconf_client_add_dir (gconf,
+ METACITY_GCONF_DIR,
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ gconf_client_add_dir (gconf,
+ COMPIZ_GCONF_DIR1,
+ GCONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ g_signal_connect (G_OBJECT (gconf),
+ "value_changed",
+ G_CALLBACK (value_changed),
+ screen);
+#elif USE_DBUS_GLIB
+ DBusConnection *connection;
+ DBusMessage *reply;
+ DBusError error;
+
+ dbus_error_init (&error);
+
+ connection = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!dbus_error_is_set (&error))
+ {
+ dbus_bus_add_match (connection, "type='signal'", &error);
+
+ dbus_connection_add_filter (connection,
+ dbus_handle_message,
+ screen, NULL);
+
+ dbus_connection_setup_with_g_main (connection, NULL);
+ }
+
+ reply = send_and_block_for_shadow_option_reply (connection, DBUS_PATH
+ "/shadow_radius");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_DOUBLE, &shadow_radius,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_unref (reply);
+ }
+
+ reply = send_and_block_for_shadow_option_reply (connection, DBUS_PATH
+ "/shadow_opacity");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_DOUBLE, &shadow_opacity,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+
+ reply = send_and_block_for_shadow_option_reply (connection, DBUS_PATH
+ "/shadow_color");
+ if (reply)
+ {
+ DBusError error;
+ char *str;
+
+ dbus_error_init (&error);
+
+ dbus_message_get_args (reply, &error,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+
+ if (!dbus_error_is_set (&error))
+ {
+ int c[4];
+
+ if (sscanf (str, "#%2x%2x%2x%2x", &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ shadow_color[0] = c[0] << 8 | c[0];
+ shadow_color[1] = c[1] << 8 | c[1];
+ shadow_color[2] = c[2] << 8 | c[2];
+ }
+ }
+
+ dbus_error_free (&error);
+
+ dbus_message_unref (reply);
+ }
+
+ reply = send_and_block_for_shadow_option_reply (connection, DBUS_PATH
+ "/shadow_x_offset");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_INT32, &shadow_offset_x,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+
+ reply = send_and_block_for_shadow_option_reply (connection, DBUS_PATH
+ "/shadow_y_offset");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_INT32, &shadow_offset_y,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+#endif
+
+ style_window = gtk_window_new (GTK_WINDOW_POPUP);
+
+ gdkscreen = gdk_display_get_default_screen (gdk_display_get_default ());
+ colormap = gdk_screen_get_rgba_colormap (gdkscreen);
+ if (colormap)
+ gtk_widget_set_colormap (style_window, colormap);
+
+ gtk_widget_realize (style_window);
+
+ switcher_label = gtk_label_new ("");
+ switcher_label_obj = gtk_widget_get_accessible (switcher_label);
+ atk_object_set_role (switcher_label_obj, ATK_ROLE_STATUSBAR);
+ gtk_container_add (GTK_CONTAINER (style_window), switcher_label);
+
+ gtk_widget_set_size_request (style_window, 0, 0);
+ gtk_window_move (GTK_WINDOW (style_window), -100, -100);
+ gtk_widget_show_all (style_window);
+
+ g_signal_connect_object (style_window, "style-set",
+ G_CALLBACK (style_changed),
+ 0, 0);
+
+ settings = gtk_widget_get_settings (style_window);
+
+ g_object_get (G_OBJECT (settings), "gtk-double-click-time",
+ &double_click_timeout, NULL);
+
+ pango_context = gtk_widget_create_pango_context (style_window);
+
+#ifdef USE_GCONF
+ use_system_font = gconf_client_get_bool (gconf,
+ COMPIZ_USE_SYSTEM_FONT_KEY,
+ NULL);
+ theme_changed (gconf);
+ theme_opacity_changed (gconf);
+ button_layout_changed (gconf);
+#endif
+
+ update_style (style_window);
+
+#ifdef USE_GCONF
+ titlebar_font_changed (gconf);
+#endif
+
+ update_titlebar_font ();
+
+#ifdef USE_GCONF
+ titlebar_click_action_changed (gconf,
+ COMPIZ_DOUBLE_CLICK_TITLEBAR_KEY,
+ &double_click_action,
+ DOUBLE_CLICK_ACTION_DEFAULT);
+ titlebar_click_action_changed (gconf,
+ COMPIZ_MIDDLE_CLICK_TITLEBAR_KEY,
+ &middle_click_action,
+ MIDDLE_CLICK_ACTION_DEFAULT);
+ titlebar_click_action_changed (gconf,
+ COMPIZ_RIGHT_CLICK_TITLEBAR_KEY,
+ &right_click_action,
+ RIGHT_CLICK_ACTION_DEFAULT);
+ wheel_action_changed (gconf);
+ shadow_settings_changed (gconf);
+ blur_settings_changed (gconf);
+#endif
+
+ (*theme_update_border_extents) (text_height);
+
+ update_shadow ();
+
+ return TRUE;
+}
+
+int
+main (int argc, char *argv[])
+{
+ GdkDisplay *gdkdisplay;
+ Display *xdisplay;
+ GdkScreen *gdkscreen;
+ WnckScreen *screen;
+ gint i, j, status;
+ gboolean replace = FALSE;
+
+#ifdef USE_METACITY
+ char *meta_theme = NULL;
+#endif
+
+ program_name = argv[0];
+
+ gtk_init (&argc, &argv);
+
+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+
+ for (i = 0; i < argc; i++)
+ {
+ if (strcmp (argv[i], "--minimal") == 0)
+ {
+ minimal = TRUE;
+ }
+ else if (strcmp (argv[i], "--replace") == 0)
+ {
+ replace = TRUE;
+ }
+ else if (strcmp (argv[i], "--blur") == 0)
+ {
+ if (argc > ++i)
+ {
+ if (strcmp (argv[i], "titlebar") == 0)
+ blur_type = BLUR_TYPE_TITLEBAR;
+ else if (strcmp (argv[i], "all") == 0)
+ blur_type = BLUR_TYPE_ALL;
+ }
+ cmdline_options |= CMDLINE_BLUR;
+ }
+
+#ifdef USE_METACITY
+ else if (strcmp (argv[i], "--opacity") == 0)
+ {
+ if (argc > ++i)
+ meta_opacity = atof (argv[i]);
+ cmdline_options |= CMDLINE_OPACITY;
+ }
+ else if (strcmp (argv[i], "--no-opacity-shade") == 0)
+ {
+ meta_shade_opacity = FALSE;
+ cmdline_options |= CMDLINE_OPACITY_SHADE;
+ }
+ else if (strcmp (argv[i], "--active-opacity") == 0)
+ {
+ if (argc > ++i)
+ meta_active_opacity = atof (argv[i]);
+ cmdline_options |= CMDLINE_ACTIVE_OPACITY;
+ }
+ else if (strcmp (argv[i], "--no-active-opacity-shade") == 0)
+ {
+ meta_active_shade_opacity = FALSE;
+ cmdline_options |= CMDLINE_ACTIVE_OPACITY_SHADE;
+ }
+ else if (strcmp (argv[i], "--metacity-theme") == 0)
+ {
+ if (argc > ++i)
+ meta_theme = argv[i];
+ cmdline_options |= CMDLINE_THEME;
+ }
+#endif
+
+ else if (strcmp (argv[i], "--help") == 0)
+ {
+ fprintf (stderr, "%s "
+ "[--minimal] "
+ "[--replace] "
+ "[--blur none|titlebar|all] "
+
+#ifdef USE_METACITY
+ "[--opacity OPACITY] "
+ "[--no-opacity-shade] "
+ "[--active-opacity OPACITY] "
+ "[--no-active-opacity-shade] "
+ "[--metacity-theme THEME] "
+#endif
+
+ "[--help]"
+
+ "\n", program_name);
+ return 0;
+ }
+ }
+
+ theme_draw_window_decoration = draw_window_decoration;
+ theme_calc_decoration_size = calc_decoration_size;
+ theme_update_border_extents = update_border_extents;
+ theme_get_event_window_position = get_event_window_position;
+ theme_get_button_position = get_button_position;
+
+#ifdef USE_METACITY
+ if (meta_theme)
+ {
+ meta_theme_set_current (meta_theme, TRUE);
+ if (meta_theme_get_current ())
+ {
+ theme_draw_window_decoration = meta_draw_window_decoration;
+ theme_calc_decoration_size = meta_calc_decoration_size;
+ theme_update_border_extents = meta_update_border_extents;
+ theme_get_event_window_position = meta_get_event_window_position;
+ theme_get_button_position = meta_get_button_position;
+ }
+ }
+#endif
+
+ gdkdisplay = gdk_display_get_default ();
+ xdisplay = gdk_x11_display_get_xdisplay (gdkdisplay);
+ gdkscreen = gdk_display_get_default_screen (gdkdisplay);
+
+ frame_window_atom = XInternAtom (xdisplay, "_NET_FRAME_WINDOW", FALSE);
+ win_decor_atom = XInternAtom (xdisplay, DECOR_WINDOW_ATOM_NAME, FALSE);
+ win_blur_decor_atom = XInternAtom (xdisplay, DECOR_BLUR_ATOM_NAME, FALSE);
+ wm_move_resize_atom = XInternAtom (xdisplay, "_NET_WM_MOVERESIZE", FALSE);
+ restack_window_atom = XInternAtom (xdisplay, "_NET_RESTACK_WINDOW", FALSE);
+ select_window_atom = XInternAtom (xdisplay, DECOR_SWITCH_WINDOW_ATOM_NAME,
+ FALSE);
+ mwm_hints_atom = XInternAtom (xdisplay, "_MOTIF_WM_HINTS", FALSE);
+ switcher_fg_atom = XInternAtom (xdisplay,
+ DECOR_SWITCH_FOREGROUND_COLOR_ATOM_NAME,
+ FALSE);
+
+ toolkit_action_atom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION", FALSE);
+ toolkit_action_window_menu_atom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_WINDOW_MENU", FALSE);
+ toolkit_action_force_quit_dialog_atom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_FORCE_QUIT_DIALOG",
+ FALSE);
+
+ status = decor_acquire_dm_session (xdisplay,
+ gdk_screen_get_number (gdkscreen),
+ "gwd", replace, &dm_sn_timestamp);
+ if (status != DECOR_ACQUIRE_STATUS_SUCCESS)
+ {
+ if (status == DECOR_ACQUIRE_STATUS_FAILED)
+ {
+ fprintf (stderr,
+ "%s: Could not acquire decoration manager "
+ "selection on screen %d display \"%s\"\n",
+ program_name, gdk_screen_get_number (gdkscreen),
+ DisplayString (xdisplay));
+ }
+ else if (status == DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING)
+ {
+ fprintf (stderr,
+ "%s: Screen %d on display \"%s\" already "
+ "has a decoration manager; try using the "
+ "--replace option to replace the current "
+ "decoration manager.\n",
+ program_name, gdk_screen_get_number (gdkscreen),
+ DisplayString (xdisplay));
+ }
+
+ return 1;
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ if (cursor[i][j].shape != XC_left_ptr)
+ cursor[i][j].cursor =
+ XCreateFontCursor (xdisplay, cursor[i][j].shape);
+ }
+ }
+
+ xformat = XRenderFindStandardFormat (xdisplay, PictStandardARGB32);
+
+ frame_table = g_hash_table_new (NULL, NULL);
+
+ if (!create_tooltip_window ())
+ {
+ fprintf (stderr, "%s, Couldn't create tooltip window\n", argv[0]);
+ return 1;
+ }
+
+ screen = wnck_screen_get_default ();
+ wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER);
+
+ gdk_window_add_filter (NULL,
+ selection_event_filter_func,
+ NULL);
+
+ if (!minimal)
+ {
+ gdk_window_add_filter (NULL,
+ event_filter_func,
+ NULL);
+
+ connect_screen (screen);
+ }
+
+ if (!init_settings (screen))
+ {
+ fprintf (stderr, "%s: Failed to get necessary gtk settings\n", argv[0]);
+ return 1;
+ }
+
+ decor_set_dm_check_hint (xdisplay, gdk_screen_get_number (gdkscreen));
+
+ update_default_decorations (gdkscreen);
+
+ gtk_main ();
+
+ return 0;
+}
diff --git a/gtk/window-decorator/gwd.schemas.in b/gtk/window-decorator/gwd.schemas.in
new file mode 100644
index 0000000..89b8c9c
--- /dev/null
+++ b/gtk/window-decorator/gwd.schemas.in
@@ -0,0 +1,81 @@
+<gconfschemafile>
+ <schemalist>
+ <schema>
+ <key>/schemas/apps/gwd/blur_type</key>
+ <applyto>/apps/gwd/blur_type</applyto>
+ <owner>gwd</owner>
+ <type>string</type>
+ <default>none</default>
+ <locale name="C">
+ <short>Blur type</short>
+ <long>Type of blur used for window decorations</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/use_metacity_theme</key>
+ <applyto>/apps/gwd/use_metacity_theme</applyto>
+ <owner>gwd</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Use metacity theme</short>
+ <long>Use metacity theme when drawing window decorations</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/mouse_wheel_action</key>
+ <applyto>/apps/gwd/mouse_wheel_action</applyto>
+ <owner>gwd</owner>
+ <type>string</type>
+ <default>none</default>
+ <locale name="C">
+ <short>Title bar mouse wheel action</short>
+ <long>Action to take when scrolling the mouse wheel on a window title bar.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/metacity_theme_opacity</key>
+ <applyto>/apps/gwd/metacity_theme_opacity</applyto>
+ <owner>gwd</owner>
+ <type>float</type>
+ <default>0.75</default>
+ <locale name="C">
+ <short>Metacity theme opacity</short>
+ <long>Opacity to use for metacity theme decorations</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/metacity_theme_shade_opacity</key>
+ <applyto>/apps/gwd/metacity_theme_shade_opacity</applyto>
+ <owner>gwd</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Metacity theme opacity shade</short>
+ <long>Shade windows with metacity theme decorations from opaque to translucent</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/metacity_theme_active_opacity</key>
+ <applyto>/apps/gwd/metacity_theme_active_opacity</applyto>
+ <owner>gwd</owner>
+ <type>float</type>
+ <default>1.0</default>
+ <locale name="C">
+ <short>Metacity theme active window opacity</short>
+ <long>Opacity to use for active windows with metacity theme decorations</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gwd/metacity_theme_active_shade_opacity</key>
+ <applyto>/apps/gwd/metacity_theme_active_shade_opacity</applyto>
+ <owner>gwd</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Metacity theme active window opacity shade</short>
+ <long>Shade active windows with metacity theme decorations from opaque to translucent</long>
+ </locale>
+ </schema>
+ </schemalist>
+</gconfschemafile>
diff --git a/images/Makefile.am b/images/Makefile.am
new file mode 100644
index 0000000..9f03184
--- /dev/null
+++ b/images/Makefile.am
@@ -0,0 +1,8 @@
+imagesdir = $(imagedir)
+images_DATA = \
+ icon.png \
+ freedesktop.png
+
+EXTRA_DIST = \
+ icon.png \
+ freedesktop.png
diff --git a/images/Makefile.in b/images/Makefile.in
new file mode 100644
index 0000000..50d695a
--- /dev/null
+++ b/images/Makefile.in
@@ -0,0 +1,472 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = images
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(imagesdir)"
+imagesDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(images_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+imagesdir = $(imagedir)
+images_DATA = \
+ icon.png \
+ freedesktop.png
+
+EXTRA_DIST = \
+ icon.png \
+ freedesktop.png
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu images/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu images/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-imagesDATA: $(images_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)"
+ @list='$(images_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(imagesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(imagesdir)/$$f'"; \
+ $(imagesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(imagesdir)/$$f"; \
+ done
+
+uninstall-imagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(images_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(imagesdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(imagesdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(imagesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-imagesDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-imagesDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-imagesDATA install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-imagesDATA
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/images/freedesktop.png b/images/freedesktop.png
new file mode 100644
index 0000000..9d8b69d
--- /dev/null
+++ b/images/freedesktop.png
Binary files differ
diff --git a/images/icon.png b/images/icon.png
new file mode 100644
index 0000000..e3688d5
--- /dev/null
+++ b/images/icon.png
Binary files differ
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644
index 0000000..6b79d2c
--- /dev/null
+++ b/include/Makefile.am
@@ -0,0 +1,13 @@
+compizincludedir = $(includedir)/compiz
+compizinclude_HEADERS = \
+ compiz.h \
+ compiz-plugin.h \
+ compiz-core.h \
+ compiz-cube.h \
+ compiz-scale.h \
+ decoration.h
+
+nodist_compizinclude_HEADERS = \
+ compiz-common.h
+
+DISTCLEANFILES = compiz-common.h \ No newline at end of file
diff --git a/include/Makefile.in b/include/Makefile.in
new file mode 100644
index 0000000..bb1d592
--- /dev/null
+++ b/include/Makefile.in
@@ -0,0 +1,545 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = include
+DIST_COMMON = $(compizinclude_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(compizincludedir)" \
+ "$(DESTDIR)$(compizincludedir)"
+compizincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+nodist_compizincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(compizinclude_HEADERS) $(nodist_compizinclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+compizincludedir = $(includedir)/compiz
+compizinclude_HEADERS = \
+ compiz.h \
+ compiz-plugin.h \
+ compiz-core.h \
+ compiz-cube.h \
+ compiz-scale.h \
+ decoration.h
+
+nodist_compizinclude_HEADERS = \
+ compiz-common.h
+
+DISTCLEANFILES = compiz-common.h
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-compizincludeHEADERS: $(compizinclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(compizincludedir)" || $(MKDIR_P) "$(DESTDIR)$(compizincludedir)"
+ @list='$(compizinclude_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(compizincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(compizincludedir)/$$f'"; \
+ $(compizincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(compizincludedir)/$$f"; \
+ done
+
+uninstall-compizincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(compizinclude_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(compizincludedir)/$$f'"; \
+ rm -f "$(DESTDIR)$(compizincludedir)/$$f"; \
+ done
+install-nodist_compizincludeHEADERS: $(nodist_compizinclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(compizincludedir)" || $(MKDIR_P) "$(DESTDIR)$(compizincludedir)"
+ @list='$(nodist_compizinclude_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(nodist_compizincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(compizincludedir)/$$f'"; \
+ $(nodist_compizincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(compizincludedir)/$$f"; \
+ done
+
+uninstall-nodist_compizincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_compizinclude_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(compizincludedir)/$$f'"; \
+ rm -f "$(DESTDIR)$(compizincludedir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(compizincludedir)" "$(DESTDIR)$(compizincludedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-compizincludeHEADERS \
+ install-nodist_compizincludeHEADERS
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-compizincludeHEADERS \
+ uninstall-nodist_compizincludeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool ctags distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am \
+ install-compizincludeHEADERS install-data install-data-am \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-nodist_compizincludeHEADERS install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-compizincludeHEADERS \
+ uninstall-nodist_compizincludeHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/compiz-core.h b/include/compiz-core.h
new file mode 100644
index 0000000..05409f5
--- /dev/null
+++ b/include/compiz-core.h
@@ -0,0 +1,3483 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _COMPIZ_CORE_H
+#define _COMPIZ_CORE_H
+
+#include <compiz-plugin.h>
+
+#define CORE_ABIVERSION 20090207
+
+#include <stdio.h>
+#include <sys/time.h>
+
+#include <X11/Xutil.h>
+#include <X11/extensions/Xdamage.h>
+#include <X11/extensions/Xcomposite.h>
+#include <X11/extensions/Xinerama.h>
+#include <X11/extensions/sync.h>
+#include <X11/Xregion.h>
+#include <X11/XKBlib.h>
+
+#define SN_API_NOT_YET_FROZEN
+#include <libsn/sn.h>
+
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+COMPIZ_BEGIN_DECLS
+
+#if COMPOSITE_MAJOR > 0 || COMPOSITE_MINOR > 2
+#define USE_COW
+#endif
+
+/*
+ * WORDS_BIGENDIAN should be defined before including this file for
+ * IMAGE_BYTE_ORDER and BITMAP_BIT_ORDER to be set correctly.
+ */
+#define LSBFirst 0
+#define MSBFirst 1
+
+#ifdef WORDS_BIGENDIAN
+# define IMAGE_BYTE_ORDER MSBFirst
+# define BITMAP_BIT_ORDER MSBFirst
+#else
+# define IMAGE_BYTE_ORDER LSBFirst
+# define BITMAP_BIT_ORDER LSBFirst
+#endif
+
+typedef struct _CompTexture CompTexture;
+typedef struct _CompIcon CompIcon;
+typedef struct _CompWindowExtents CompWindowExtents;
+typedef struct _CompWindowExtents CompFullscreenMonitorSet;
+typedef struct _CompProgram CompProgram;
+typedef struct _CompFunction CompFunction;
+typedef struct _CompFunctionData CompFunctionData;
+typedef struct _FragmentAttrib FragmentAttrib;
+typedef struct _CompCursor CompCursor;
+typedef struct _CompMatch CompMatch;
+typedef struct _CompOutput CompOutput;
+typedef struct _CompWalker CompWalker;
+
+/* virtual modifiers */
+
+#define CompModAlt 0
+#define CompModMeta 1
+#define CompModSuper 2
+#define CompModHyper 3
+#define CompModModeSwitch 4
+#define CompModNumLock 5
+#define CompModScrollLock 6
+#define CompModNum 7
+
+#define CompAltMask (1 << 16)
+#define CompMetaMask (1 << 17)
+#define CompSuperMask (1 << 18)
+#define CompHyperMask (1 << 19)
+#define CompModeSwitchMask (1 << 20)
+#define CompNumLockMask (1 << 21)
+#define CompScrollLockMask (1 << 22)
+
+#define CompNoMask (1 << 25)
+
+#define CompWindowProtocolDeleteMask (1 << 0)
+#define CompWindowProtocolTakeFocusMask (1 << 1)
+#define CompWindowProtocolPingMask (1 << 2)
+#define CompWindowProtocolSyncRequestMask (1 << 3)
+
+#define CompWindowTypeDesktopMask (1 << 0)
+#define CompWindowTypeDockMask (1 << 1)
+#define CompWindowTypeToolbarMask (1 << 2)
+#define CompWindowTypeMenuMask (1 << 3)
+#define CompWindowTypeUtilMask (1 << 4)
+#define CompWindowTypeSplashMask (1 << 5)
+#define CompWindowTypeDialogMask (1 << 6)
+#define CompWindowTypeNormalMask (1 << 7)
+#define CompWindowTypeDropdownMenuMask (1 << 8)
+#define CompWindowTypePopupMenuMask (1 << 9)
+#define CompWindowTypeTooltipMask (1 << 10)
+#define CompWindowTypeNotificationMask (1 << 11)
+#define CompWindowTypeComboMask (1 << 12)
+#define CompWindowTypeDndMask (1 << 13)
+#define CompWindowTypeModalDialogMask (1 << 14)
+#define CompWindowTypeFullscreenMask (1 << 15)
+#define CompWindowTypeUnknownMask (1 << 16)
+
+#define NO_FOCUS_MASK (CompWindowTypeDesktopMask | \
+ CompWindowTypeDockMask | \
+ CompWindowTypeSplashMask)
+
+#define CompWindowStateModalMask (1 << 0)
+#define CompWindowStateStickyMask (1 << 1)
+#define CompWindowStateMaximizedVertMask (1 << 2)
+#define CompWindowStateMaximizedHorzMask (1 << 3)
+#define CompWindowStateShadedMask (1 << 4)
+#define CompWindowStateSkipTaskbarMask (1 << 5)
+#define CompWindowStateSkipPagerMask (1 << 6)
+#define CompWindowStateHiddenMask (1 << 7)
+#define CompWindowStateFullscreenMask (1 << 8)
+#define CompWindowStateAboveMask (1 << 9)
+#define CompWindowStateBelowMask (1 << 10)
+#define CompWindowStateDemandsAttentionMask (1 << 11)
+#define CompWindowStateDisplayModalMask (1 << 12)
+
+#define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
+ CompWindowStateMaximizedVertMask)
+
+#define CompWindowActionMoveMask (1 << 0)
+#define CompWindowActionResizeMask (1 << 1)
+#define CompWindowActionStickMask (1 << 2)
+#define CompWindowActionMinimizeMask (1 << 3)
+#define CompWindowActionMaximizeHorzMask (1 << 4)
+#define CompWindowActionMaximizeVertMask (1 << 5)
+#define CompWindowActionFullscreenMask (1 << 6)
+#define CompWindowActionCloseMask (1 << 7)
+#define CompWindowActionShadeMask (1 << 8)
+#define CompWindowActionChangeDesktopMask (1 << 9)
+#define CompWindowActionAboveMask (1 << 10)
+#define CompWindowActionBelowMask (1 << 11)
+
+#define MwmFuncAll (1L << 0)
+#define MwmFuncResize (1L << 1)
+#define MwmFuncMove (1L << 2)
+#define MwmFuncIconify (1L << 3)
+#define MwmFuncMaximize (1L << 4)
+#define MwmFuncClose (1L << 5)
+
+#define MwmDecorAll (1L << 0)
+#define MwmDecorBorder (1L << 1)
+#define MwmDecorHandle (1L << 2)
+#define MwmDecorTitle (1L << 3)
+#define MwmDecorMenu (1L << 4)
+#define MwmDecorMinimize (1L << 5)
+#define MwmDecorMaximize (1L << 6)
+
+#define WmMoveResizeSizeTopLeft 0
+#define WmMoveResizeSizeTop 1
+#define WmMoveResizeSizeTopRight 2
+#define WmMoveResizeSizeRight 3
+#define WmMoveResizeSizeBottomRight 4
+#define WmMoveResizeSizeBottom 5
+#define WmMoveResizeSizeBottomLeft 6
+#define WmMoveResizeSizeLeft 7
+#define WmMoveResizeMove 8
+#define WmMoveResizeSizeKeyboard 9
+#define WmMoveResizeMoveKeyboard 10
+#define WmMoveResizeCancel 11
+
+/* EWMH source indication client types */
+#define ClientTypeUnknown 0
+#define ClientTypeApplication 1
+#define ClientTypePager 2
+
+#define OPAQUE 0xffff
+#define COLOR 0xffff
+#define BRIGHT 0xffff
+
+#define RED_SATURATION_WEIGHT 0.30f
+#define GREEN_SATURATION_WEIGHT 0.59f
+#define BLUE_SATURATION_WEIGHT 0.11f
+
+extern char *programName;
+extern char **programArgv;
+extern int programArgc;
+extern char *backgroundImage;
+extern REGION emptyRegion;
+extern REGION infiniteRegion;
+extern GLushort defaultColor[4];
+extern Window currentRoot;
+extern Bool shutDown;
+extern Bool restartSignal;
+extern CompWindow *lastFoundWindow;
+extern CompWindow *lastDamagedWindow;
+extern Bool replaceCurrentWm;
+extern Bool indirectRendering;
+extern Bool strictBinding;
+extern Bool useCow;
+extern Bool noDetection;
+extern Bool useDesktopHints;
+extern Bool onlyCurrentScreen;
+
+extern int defaultRefreshRate;
+extern char *defaultTextureFilter;
+
+extern int lastPointerX;
+extern int lastPointerY;
+extern int pointerX;
+extern int pointerY;
+
+extern CompCore core;
+extern CompMetadata coreMetadata;
+
+#define RESTRICT_VALUE(value, min, max) \
+ (((value) < (min)) ? (min): ((value) > (max)) ? (max) : (value))
+
+#define MOD(a,b) ((a) < 0 ? ((b) - ((-(a) - 1) % (b))) - 1 : (a) % (b))
+
+
+/* privates.c */
+
+#define WRAP(priv, real, func, wrapFunc) \
+ (priv)->func = (real)->func; \
+ (real)->func = (wrapFunc)
+
+#define UNWRAP(priv, real, func) \
+ (real)->func = (priv)->func
+
+typedef union _CompPrivate {
+ void *ptr;
+ long val;
+ unsigned long uval;
+ void *(*fptr) (void);
+} CompPrivate;
+
+typedef int (*ReallocPrivatesProc) (int size, void *closure);
+
+int
+allocatePrivateIndex (int *len,
+ char **indices,
+ ReallocPrivatesProc reallocProc,
+ void *closure);
+
+void
+freePrivateIndex (int len,
+ char *indices,
+ int index);
+
+
+/* object.c */
+
+typedef unsigned int CompObjectType;
+
+#define COMP_OBJECT_TYPE_CORE 0
+#define COMP_OBJECT_TYPE_DISPLAY 1
+#define COMP_OBJECT_TYPE_SCREEN 2
+#define COMP_OBJECT_TYPE_WINDOW 3
+
+struct _CompObject {
+ CompObjectType type;
+ CompPrivate *privates;
+ CompObject *parent;
+};
+
+typedef CompBool (*ObjectCallBackProc) (CompObject *object,
+ void *closure);
+
+typedef CompBool (*ObjectTypeCallBackProc) (CompObjectType type,
+ CompObject *parent,
+ void *closure);
+
+void
+compObjectInit (CompObject *object,
+ CompPrivate *privates,
+ CompObjectType type);
+
+void
+compObjectFini (CompObject *object);
+
+int
+compObjectAllocatePrivateIndex (CompObject *parent,
+ CompObjectType type);
+
+void
+compObjectFreePrivateIndex (CompObject *parent,
+ CompObjectType type,
+ int index);
+
+CompBool
+compObjectForEach (CompObject *parent,
+ CompObjectType type,
+ ObjectCallBackProc proc,
+ void *closure);
+
+CompBool
+compObjectForEachType (CompObject *parent,
+ ObjectTypeCallBackProc proc,
+ void *closure);
+
+const char *
+compObjectTypeName (CompObjectType type);
+
+char *
+compObjectName (CompObject *object);
+
+CompObject *
+compObjectFind (CompObject *parent,
+ CompObjectType type,
+ const char *name);
+
+#define ARRAY_SIZE(array) \
+ (sizeof (array) / sizeof (array[0]))
+
+#define DISPATCH_CHECK(object, dispTab, tabSize) \
+ ((object)->type < (tabSize) && (dispTab)[(object)->type])
+
+#define DISPATCH(object, dispTab, tabSize, args) \
+ if (DISPATCH_CHECK (object, dispTab, tabSize)) \
+ (*(dispTab)[(object)->type]) args
+
+#define RETURN_DISPATCH(object, dispTab, tabSize, def, args) \
+ if (DISPATCH_CHECK (object, dispTab, tabSize)) \
+ return (*(dispTab)[(object)->type]) args; \
+ else \
+ return (def)
+
+/* session.c */
+
+typedef enum {
+ CompSessionEventSaveYourself = 0,
+ CompSessionEventSaveComplete,
+ CompSessionEventDie,
+ CompSessionEventShutdownCancelled
+} CompSessionEvent;
+
+typedef enum {
+ CompSessionClientId = 0,
+ CompSessionPrevClientId
+} CompSessionClientIdType;
+
+typedef void (*SessionEventProc) (CompCore *c,
+ CompSessionEvent event,
+ CompOption *arguments,
+ unsigned int nArguments);
+
+void
+initSession (char *smPrevClientId);
+
+void
+closeSession (void);
+
+void
+sessionEvent (CompCore *c,
+ CompSessionEvent event,
+ CompOption *arguments,
+ unsigned int nArguments);
+
+char *
+getSessionClientId (CompSessionClientIdType type);
+
+/* option.c */
+
+typedef enum {
+ CompBindingTypeNone = 0,
+ CompBindingTypeKey = 1 << 0,
+ CompBindingTypeButton = 1 << 1,
+ CompBindingTypeEdgeButton = 1 << 2
+} CompBindingType;
+
+typedef enum {
+ CompActionStateInitKey = 1 << 0,
+ CompActionStateTermKey = 1 << 1,
+ CompActionStateInitButton = 1 << 2,
+ CompActionStateTermButton = 1 << 3,
+ CompActionStateInitBell = 1 << 4,
+ CompActionStateInitEdge = 1 << 5,
+ CompActionStateTermEdge = 1 << 6,
+ CompActionStateInitEdgeDnd = 1 << 7,
+ CompActionStateTermEdgeDnd = 1 << 8,
+ CompActionStateCommit = 1 << 9,
+ CompActionStateCancel = 1 << 10,
+ CompActionStateAutoGrab = 1 << 11,
+ CompActionStateNoEdgeDelay = 1 << 12
+} CompActionState;
+
+typedef enum {
+ CompLogLevelFatal = 0,
+ CompLogLevelError,
+ CompLogLevelWarn,
+ CompLogLevelInfo,
+ CompLogLevelDebug
+} CompLogLevel;
+
+typedef struct _CompKeyBinding {
+ int keycode;
+ unsigned int modifiers;
+} CompKeyBinding;
+
+typedef struct _CompButtonBinding {
+ int button;
+ unsigned int modifiers;
+} CompButtonBinding;
+
+typedef struct _CompAction CompAction;
+
+typedef Bool (*CompActionCallBackProc) (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption);
+
+struct _CompAction {
+ CompActionCallBackProc initiate;
+ CompActionCallBackProc terminate;
+
+ CompActionState state;
+
+ CompBindingType type;
+ CompKeyBinding key;
+ CompButtonBinding button;
+
+ Bool bell;
+
+ unsigned int edgeMask;
+
+ CompPrivate priv;
+};
+
+typedef union _CompMatchOp CompMatchOp;
+
+struct _CompMatch {
+ CompDisplay *display;
+ CompMatchOp *op;
+ int nOp;
+};
+
+typedef struct {
+ CompOptionType type;
+ CompOptionValue *value;
+ int nValue;
+} CompListValue;
+
+union _CompOptionValue {
+ Bool b;
+ int i;
+ float f;
+ char *s;
+ unsigned short c[4];
+ CompAction action;
+ CompMatch match;
+ CompListValue list;
+};
+
+typedef struct _CompOptionIntRestriction {
+ int min;
+ int max;
+} CompOptionIntRestriction;
+
+typedef struct _CompOptionFloatRestriction {
+ float min;
+ float max;
+ float precision;
+} CompOptionFloatRestriction;
+
+typedef union {
+ CompOptionIntRestriction i;
+ CompOptionFloatRestriction f;
+} CompOptionRestriction;
+
+struct _CompOption {
+ char *name;
+ CompOptionType type;
+ CompOptionValue value;
+ CompOptionRestriction rest;
+};
+
+typedef CompOption *(*DisplayOptionsProc) (CompDisplay *display, int *count);
+typedef CompOption *(*ScreenOptionsProc) (CompScreen *screen, int *count);
+
+Bool
+getBoolOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ Bool defaultValue);
+
+int
+getIntOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ int defaultValue);
+
+float
+getFloatOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ float defaultValue);
+
+char *
+getStringOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ char *defaultValue);
+
+unsigned short *
+getColorOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ unsigned short *defaultValue);
+
+CompMatch *
+getMatchOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ CompMatch *defaultValue);
+
+char *
+keyBindingToString (CompDisplay *d,
+ CompKeyBinding *key);
+
+char *
+buttonBindingToString (CompDisplay *d,
+ CompButtonBinding *button);
+
+char *
+keyActionToString (CompDisplay *d,
+ CompAction *action);
+
+char *
+buttonActionToString (CompDisplay *d,
+ CompAction *action);
+
+Bool
+stringToKeyBinding (CompDisplay *d,
+ const char *binding,
+ CompKeyBinding *key);
+
+Bool
+stringToButtonBinding (CompDisplay *d,
+ const char *binding,
+ CompButtonBinding *button);
+
+void
+stringToKeyAction (CompDisplay *d,
+ const char *binding,
+ CompAction *action);
+
+void
+stringToButtonAction (CompDisplay *d,
+ const char *binding,
+ CompAction *action);
+
+const char *
+edgeToString (unsigned int edge);
+
+unsigned int
+stringToEdgeMask (const char *edge);
+
+char *
+edgeMaskToString (unsigned int edgeMask);
+
+Bool
+stringToColor (const char *color,
+ unsigned short *rgba);
+
+char *
+colorToString (unsigned short *rgba);
+
+const char *
+optionTypeToString (CompOptionType type);
+
+Bool
+isActionOption (CompOption *option);
+
+
+/* core.c */
+
+typedef CompBool (*InitPluginForObjectProc) (CompPlugin *plugin,
+ CompObject *object);
+typedef void (*FiniPluginForObjectProc) (CompPlugin *plugin,
+ CompObject *object);
+
+typedef CompBool (*SetOptionForPluginProc) (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value);
+
+typedef void (*ObjectAddProc) (CompObject *parent,
+ CompObject *object);
+typedef void (*ObjectRemoveProc) (CompObject *parent,
+ CompObject *object);
+
+#define NOTIFY_CREATE_MASK (1 << 0)
+#define NOTIFY_DELETE_MASK (1 << 1)
+#define NOTIFY_MOVE_MASK (1 << 2)
+#define NOTIFY_MODIFY_MASK (1 << 3)
+
+typedef void (*FileWatchCallBackProc) (const char *name,
+ void *closure);
+
+typedef int CompFileWatchHandle;
+
+typedef struct _CompFileWatch {
+ struct _CompFileWatch *next;
+ char *path;
+ int mask;
+ FileWatchCallBackProc callBack;
+ void *closure;
+ CompFileWatchHandle handle;
+} CompFileWatch;
+
+typedef void (*FileWatchAddedProc) (CompCore *core,
+ CompFileWatch *fileWatch);
+
+typedef void (*FileWatchRemovedProc) (CompCore *core,
+ CompFileWatch *fileWatch);
+
+typedef struct _CompTimeout {
+ struct _CompTimeout *next;
+ int minTime;
+ int maxTime;
+ int minLeft;
+ int maxLeft;
+ CallBackProc callBack;
+ void *closure;
+ CompTimeoutHandle handle;
+} CompTimeout;
+
+typedef struct _CompWatchFd {
+ struct _CompWatchFd *next;
+ int fd;
+ CallBackProc callBack;
+ void *closure;
+ CompWatchFdHandle handle;
+} CompWatchFd;
+
+typedef void (*LogMessageProc) (const char *componentName,
+ CompLogLevel level,
+ const char *message);
+
+struct _CompCore {
+ CompObject base;
+
+ CompDisplay *displays;
+
+ Region tmpRegion;
+ Region outputRegion;
+
+ CompFileWatch *fileWatch;
+ CompFileWatchHandle lastFileWatchHandle;
+
+ CompTimeout *timeouts;
+ struct timeval lastTimeout;
+ CompTimeoutHandle lastTimeoutHandle;
+
+ CompWatchFd *watchFds;
+ CompWatchFdHandle lastWatchFdHandle;
+ struct pollfd *watchPollFds;
+ int nWatchFds;
+
+ InitPluginForObjectProc initPluginForObject;
+ FiniPluginForObjectProc finiPluginForObject;
+
+ SetOptionForPluginProc setOptionForPlugin;
+
+ ObjectAddProc objectAdd;
+ ObjectRemoveProc objectRemove;
+
+ FileWatchAddedProc fileWatchAdded;
+ FileWatchRemovedProc fileWatchRemoved;
+
+ SessionEventProc sessionEvent;
+ LogMessageProc logMessage;
+};
+
+int
+allocCoreObjectPrivateIndex (CompObject *parent);
+
+void
+freeCoreObjectPrivateIndex (CompObject *parent,
+ int index);
+
+CompBool
+forEachCoreObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure);
+
+char *
+nameCoreObject (CompObject *object);
+
+CompObject *
+findCoreObject (CompObject *parent,
+ const char *name);
+
+CompBool
+initCore (void);
+
+void
+finiCore (void);
+
+int
+allocateCorePrivateIndex (void);
+
+void
+freeCorePrivateIndex (int index);
+
+void
+addDisplayToCore (CompDisplay *d);
+
+CompFileWatchHandle
+addFileWatch (const char *path,
+ int mask,
+ FileWatchCallBackProc callBack,
+ void *closure);
+
+void
+removeFileWatch (CompFileWatchHandle handle);
+
+
+/* display.c */
+
+#define COMP_DISPLAY_OPTION_ABI 0
+#define COMP_DISPLAY_OPTION_ACTIVE_PLUGINS 1
+#define COMP_DISPLAY_OPTION_TEXTURE_FILTER 2
+#define COMP_DISPLAY_OPTION_CLICK_TO_FOCUS 3
+#define COMP_DISPLAY_OPTION_AUTORAISE 4
+#define COMP_DISPLAY_OPTION_AUTORAISE_DELAY 5
+#define COMP_DISPLAY_OPTION_CLOSE_WINDOW_KEY 6
+#define COMP_DISPLAY_OPTION_CLOSE_WINDOW_BUTTON 7
+#define COMP_DISPLAY_OPTION_SLOW_ANIMATIONS_KEY 8
+#define COMP_DISPLAY_OPTION_RAISE_WINDOW_KEY 9
+#define COMP_DISPLAY_OPTION_RAISE_WINDOW_BUTTON 10
+#define COMP_DISPLAY_OPTION_LOWER_WINDOW_KEY 11
+#define COMP_DISPLAY_OPTION_LOWER_WINDOW_BUTTON 12
+#define COMP_DISPLAY_OPTION_UNMAXIMIZE_WINDOW_KEY 13
+#define COMP_DISPLAY_OPTION_MINIMIZE_WINDOW_KEY 14
+#define COMP_DISPLAY_OPTION_MINIMIZE_WINDOW_BUTTON 15
+#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_KEY 16
+#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ_KEY 17
+#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT_KEY 18
+#define COMP_DISPLAY_OPTION_WINDOW_MENU_BUTTON 19
+#define COMP_DISPLAY_OPTION_WINDOW_MENU_KEY 20
+#define COMP_DISPLAY_OPTION_SHOW_DESKTOP_KEY 21
+#define COMP_DISPLAY_OPTION_SHOW_DESKTOP_EDGE 22
+#define COMP_DISPLAY_OPTION_RAISE_ON_CLICK 23
+#define COMP_DISPLAY_OPTION_AUDIBLE_BELL 24
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_KEY 25
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_BUTTON 26
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ_KEY 27
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT_KEY 28
+#define COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS 29
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_SHADED_KEY 30
+#define COMP_DISPLAY_OPTION_IGNORE_HINTS_WHEN_MAXIMIZED 31
+#define COMP_DISPLAY_OPTION_PING_DELAY 32
+#define COMP_DISPLAY_OPTION_EDGE_DELAY 33
+#define COMP_DISPLAY_OPTION_NUM 34
+
+typedef void (*HandleEventProc) (CompDisplay *display,
+ XEvent *event);
+
+typedef void (*HandleCompizEventProc) (CompDisplay *display,
+ const char *pluginName,
+ const char *eventName,
+ CompOption *option,
+ int nOption);
+
+typedef void (*ForEachWindowProc) (CompWindow *window,
+ void *closure);
+
+typedef Bool (*FileToImageProc) (CompDisplay *display,
+ const char *path,
+ const char *name,
+ int *width,
+ int *height,
+ int *stride,
+ void **data);
+
+typedef Bool (*ImageToFileProc) (CompDisplay *display,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ int stride,
+ void *data);
+
+#define MATCH_OP_AND_MASK (1 << 0)
+#define MATCH_OP_NOT_MASK (1 << 1)
+
+typedef enum {
+ CompMatchOpTypeGroup,
+ CompMatchOpTypeExp
+} CompMatchOpType;
+
+typedef struct _CompMatchAnyOp {
+ CompMatchOpType type;
+ int flags;
+} CompMatchAnyOp;
+
+typedef struct _CompMatchGroupOp {
+ CompMatchOpType type;
+ int flags;
+ CompMatchOp *op;
+ int nOp;
+} CompMatchGroupOp;
+
+typedef void (*CompMatchExpFiniProc) (CompDisplay *display,
+ CompPrivate priv);
+
+typedef Bool (*CompMatchExpEvalProc) (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate priv);
+
+typedef struct _CompMatchExp {
+ CompMatchExpFiniProc fini;
+ CompMatchExpEvalProc eval;
+ CompPrivate priv;
+} CompMatchExp;
+
+typedef struct _CompMatchExpOp {
+ CompMatchOpType type;
+ int flags;
+ char *value;
+ CompMatchExp e;
+} CompMatchExpOp;
+
+union _CompMatchOp {
+ CompMatchOpType type;
+ CompMatchAnyOp any;
+ CompMatchGroupOp group;
+ CompMatchExpOp exp;
+};
+
+typedef void (*MatchInitExpProc) (CompDisplay *display,
+ CompMatchExp *exp,
+ const char *value);
+
+typedef void (*MatchExpHandlerChangedProc) (CompDisplay *display);
+
+typedef void (*MatchPropertyChangedProc) (CompDisplay *display,
+ CompWindow *window);
+
+struct _CompDisplay {
+ CompObject base;
+
+ CompDisplay *next;
+
+ Display *display;
+ CompScreen *screens;
+
+ CompWatchFdHandle watchFdHandle;
+
+ char *screenPrivateIndices;
+ int screenPrivateLen;
+
+ int compositeEvent, compositeError, compositeOpcode;
+ int damageEvent, damageError;
+ int syncEvent, syncError;
+ int fixesEvent, fixesError, fixesVersion;
+
+ Bool randrExtension;
+ int randrEvent, randrError;
+
+ Bool shapeExtension;
+ int shapeEvent, shapeError;
+
+ Bool xkbExtension;
+ int xkbEvent, xkbError;
+
+ Bool xineramaExtension;
+ int xineramaEvent, xineramaError;
+
+ XineramaScreenInfo *screenInfo;
+ int nScreenInfo;
+
+ SnDisplay *snDisplay;
+
+ Atom supportedAtom;
+ Atom supportingWmCheckAtom;
+
+ Atom utf8StringAtom;
+
+ Atom wmNameAtom;
+
+ Atom winTypeAtom;
+ Atom winTypeDesktopAtom;
+ Atom winTypeDockAtom;
+ Atom winTypeToolbarAtom;
+ Atom winTypeMenuAtom;
+ Atom winTypeUtilAtom;
+ Atom winTypeSplashAtom;
+ Atom winTypeDialogAtom;
+ Atom winTypeNormalAtom;
+ Atom winTypeDropdownMenuAtom;
+ Atom winTypePopupMenuAtom;
+ Atom winTypeTooltipAtom;
+ Atom winTypeNotificationAtom;
+ Atom winTypeComboAtom;
+ Atom winTypeDndAtom;
+
+ Atom winOpacityAtom;
+ Atom winBrightnessAtom;
+ Atom winSaturationAtom;
+ Atom winActiveAtom;
+ Atom winDesktopAtom;
+
+ Atom workareaAtom;
+
+ Atom desktopViewportAtom;
+ Atom desktopGeometryAtom;
+ Atom currentDesktopAtom;
+ Atom numberOfDesktopsAtom;
+
+ Atom winStateAtom;
+ Atom winStateModalAtom;
+ Atom winStateStickyAtom;
+ Atom winStateMaximizedVertAtom;
+ Atom winStateMaximizedHorzAtom;
+ Atom winStateShadedAtom;
+ Atom winStateSkipTaskbarAtom;
+ Atom winStateSkipPagerAtom;
+ Atom winStateHiddenAtom;
+ Atom winStateFullscreenAtom;
+ Atom winStateAboveAtom;
+ Atom winStateBelowAtom;
+ Atom winStateDemandsAttentionAtom;
+ Atom winStateDisplayModalAtom;
+
+ Atom winActionMoveAtom;
+ Atom winActionResizeAtom;
+ Atom winActionStickAtom;
+ Atom winActionMinimizeAtom;
+ Atom winActionMaximizeHorzAtom;
+ Atom winActionMaximizeVertAtom;
+ Atom winActionFullscreenAtom;
+ Atom winActionCloseAtom;
+ Atom winActionShadeAtom;
+ Atom winActionChangeDesktopAtom;
+ Atom winActionAboveAtom;
+ Atom winActionBelowAtom;
+
+ Atom wmAllowedActionsAtom;
+
+ Atom wmStrutAtom;
+ Atom wmStrutPartialAtom;
+
+ Atom wmUserTimeAtom;
+
+ Atom wmIconAtom;
+ Atom wmIconGeometryAtom;
+
+ Atom clientListAtom;
+ Atom clientListStackingAtom;
+
+ Atom frameExtentsAtom;
+ Atom frameWindowAtom;
+
+ Atom wmStateAtom;
+ Atom wmChangeStateAtom;
+ Atom wmProtocolsAtom;
+ Atom wmClientLeaderAtom;
+
+ Atom wmDeleteWindowAtom;
+ Atom wmTakeFocusAtom;
+ Atom wmPingAtom;
+
+ Atom wmSyncRequestAtom;
+ Atom wmSyncRequestCounterAtom;
+
+ Atom wmFullscreenMonitorsAtom;
+
+ Atom closeWindowAtom;
+ Atom wmMoveResizeAtom;
+ Atom moveResizeWindowAtom;
+ Atom restackWindowAtom;
+
+ Atom showingDesktopAtom;
+
+ Atom xBackgroundAtom[2];
+
+ Atom toolkitActionAtom;
+ Atom toolkitActionWindowMenuAtom;
+ Atom toolkitActionForceQuitDialogAtom;
+
+ Atom mwmHintsAtom;
+
+ Atom xdndAwareAtom;
+ Atom xdndEnterAtom;
+ Atom xdndLeaveAtom;
+ Atom xdndPositionAtom;
+ Atom xdndStatusAtom;
+ Atom xdndDropAtom;
+
+ Atom managerAtom;
+ Atom targetsAtom;
+ Atom multipleAtom;
+ Atom timestampAtom;
+ Atom versionAtom;
+ Atom atomPairAtom;
+
+ Atom startupIdAtom;
+
+ unsigned int lastPing;
+ CompTimeoutHandle pingHandle;
+
+ GLenum textureFilter;
+
+ Window activeWindow;
+
+ Window below;
+ char displayString[256];
+
+ XModifierKeymap *modMap;
+ unsigned int modMask[CompModNum];
+ unsigned int ignoredModMask;
+
+ KeyCode escapeKeyCode;
+ KeyCode returnKeyCode;
+
+ CompOption opt[COMP_DISPLAY_OPTION_NUM];
+
+ CompTimeoutHandle autoRaiseHandle;
+ Window autoRaiseWindow;
+
+ CompTimeoutHandle edgeDelayHandle;
+
+ CompOptionValue plugin;
+ Bool dirtyPluginList;
+
+ HandleEventProc handleEvent;
+ HandleCompizEventProc handleCompizEvent;
+
+ FileToImageProc fileToImage;
+ ImageToFileProc imageToFile;
+
+ MatchInitExpProc matchInitExp;
+ MatchExpHandlerChangedProc matchExpHandlerChanged;
+ MatchPropertyChangedProc matchPropertyChanged;
+
+ LogMessageProc logMessage;
+
+ void *reserved;
+};
+
+#define GET_CORE_DISPLAY(object) ((CompDisplay *) (object))
+#define CORE_DISPLAY(object) CompDisplay *d = GET_CORE_DISPLAY (object)
+
+CompBool
+allocDisplayObjectPrivates (CompObject *object,
+ CompObject *parent);
+
+int
+allocDisplayObjectPrivateIndex (CompObject *parent);
+
+void
+freeDisplayObjectPrivateIndex (CompObject *parent,
+ int index);
+
+CompBool
+forEachDisplayObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure);
+
+char *
+nameDisplayObject (CompObject *object);
+
+CompObject *
+findDisplayObject (CompObject *parent,
+ const char *name);
+
+int
+allocateDisplayPrivateIndex (void);
+
+void
+freeDisplayPrivateIndex (int index);
+
+CompOption *
+getDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count);
+
+Bool
+setDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value);
+
+void
+compLogMessage (const char *componentName,
+ CompLogLevel level,
+ const char *format,
+ ...);
+
+void
+logMessage (const char *componentName,
+ CompLogLevel level,
+ const char *message);
+
+const char *
+logLevelToString (CompLogLevel level);
+
+int
+compCheckForError (Display *dpy);
+
+void
+addScreenToDisplay (CompDisplay *display,
+ CompScreen *s);
+
+Bool
+addDisplay (const char *name);
+
+void
+removeDisplay (CompDisplay *d);
+
+Time
+getCurrentTimeFromDisplay (CompDisplay *d);
+
+void
+forEachWindowOnDisplay (CompDisplay *display,
+ ForEachWindowProc proc,
+ void *closure);
+
+CompScreen *
+findScreenAtDisplay (CompDisplay *d,
+ Window root);
+
+CompWindow *
+findWindowAtDisplay (CompDisplay *display,
+ Window id);
+
+CompWindow *
+findTopLevelWindowAtDisplay (CompDisplay *d,
+ Window id);
+
+unsigned int
+virtualToRealModMask (CompDisplay *d,
+ unsigned int modMask);
+
+void
+updateModifierMappings (CompDisplay *d);
+
+unsigned int
+keycodeToModifiers (CompDisplay *d,
+ int keycode);
+
+void
+eventLoop (void);
+
+void
+handleSelectionRequest (CompDisplay *display,
+ XEvent *event);
+
+void
+handleSelectionClear (CompDisplay *display,
+ XEvent *event);
+
+void
+warpPointer (CompScreen *screen,
+ int dx,
+ int dy);
+
+Bool
+setDisplayAction (CompDisplay *display,
+ CompOption *o,
+ CompOptionValue *value);
+
+Bool
+readImageFromFile (CompDisplay *display,
+ const char *name,
+ int *width,
+ int *height,
+ void **data);
+
+Bool
+writeImageToFile (CompDisplay *display,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ void *data);
+
+Bool
+fileToImage (CompDisplay *display,
+ const char *path,
+ const char *name,
+ int *width,
+ int *height,
+ int *stride,
+ void **data);
+
+Bool
+imageToFile (CompDisplay *display,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ int stride,
+ void *data);
+
+CompCursor *
+findCursorAtDisplay (CompDisplay *display);
+
+
+/* event.c */
+
+typedef struct _CompDelayedEdgeSettings
+{
+ CompDisplay *d;
+
+ unsigned int edge;
+ unsigned int state;
+
+ CompOption option[7];
+ unsigned int nOption;
+} CompDelayedEdgeSettings;
+
+void
+handleEvent (CompDisplay *display,
+ XEvent *event);
+
+void
+handleCompizEvent (CompDisplay *display,
+ const char *pluginName,
+ const char *eventName,
+ CompOption *option,
+ int nOption);
+
+void
+handleSyncAlarm (CompWindow *w);
+
+Bool
+eventMatches (CompDisplay *display,
+ XEvent *event,
+ CompOption *option);
+
+Bool
+eventTerminates (CompDisplay *display,
+ XEvent *event,
+ CompOption *option);
+
+void
+clearTargetOutput (CompDisplay *display,
+ unsigned int mask);
+
+/* paint.c */
+
+#define MULTIPLY_USHORT(us1, us2) \
+ (((GLuint) (us1) * (GLuint) (us2)) / 0xffff)
+
+/* camera distance from screen, 0.5 * tan (FOV) */
+#define DEFAULT_Z_CAMERA 0.866025404f
+
+#define DEG2RAD (M_PI / 180.0f)
+
+typedef struct _CompTransform {
+ float m[16];
+} CompTransform;
+
+typedef union _CompVector {
+ float v[4];
+ struct {
+ float x;
+ float y;
+ float z;
+ float w;
+ };
+} CompVector;
+
+/* XXX: ScreenPaintAttrib will be removed */
+typedef struct _ScreenPaintAttrib {
+ GLfloat xRotate;
+ GLfloat yRotate;
+ GLfloat vRotate;
+ GLfloat xTranslate;
+ GLfloat yTranslate;
+ GLfloat zTranslate;
+ GLfloat zCamera;
+} ScreenPaintAttrib;
+
+/* XXX: scale and translate fields will be removed */
+typedef struct _WindowPaintAttrib {
+ GLushort opacity;
+ GLushort brightness;
+ GLushort saturation;
+ GLfloat xScale;
+ GLfloat yScale;
+ GLfloat xTranslate;
+ GLfloat yTranslate;
+} WindowPaintAttrib;
+
+extern ScreenPaintAttrib defaultScreenPaintAttrib;
+extern WindowPaintAttrib defaultWindowPaintAttrib;
+
+typedef struct _CompMatrix {
+ float xx; float yx;
+ float xy; float yy;
+ float x0; float y0;
+} CompMatrix;
+
+#define COMP_TEX_COORD_X(m, vx) ((m)->xx * (vx) + (m)->x0)
+#define COMP_TEX_COORD_Y(m, vy) ((m)->yy * (vy) + (m)->y0)
+
+#define COMP_TEX_COORD_XY(m, vx, vy) \
+ ((m)->xx * (vx) + (m)->xy * (vy) + (m)->x0)
+#define COMP_TEX_COORD_YX(m, vx, vy) \
+ ((m)->yx * (vx) + (m)->yy * (vy) + (m)->y0)
+
+
+typedef void (*PreparePaintScreenProc) (CompScreen *screen,
+ int msSinceLastPaint);
+
+typedef void (*DonePaintScreenProc) (CompScreen *screen);
+
+#define PAINT_SCREEN_REGION_MASK (1 << 0)
+#define PAINT_SCREEN_FULL_MASK (1 << 1)
+#define PAINT_SCREEN_TRANSFORMED_MASK (1 << 2)
+#define PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK (1 << 3)
+#define PAINT_SCREEN_CLEAR_MASK (1 << 4)
+#define PAINT_SCREEN_NO_OCCLUSION_DETECTION_MASK (1 << 5)
+#define PAINT_SCREEN_NO_BACKGROUND_MASK (1 << 6)
+
+typedef void (*PaintScreenProc) (CompScreen *screen,
+ CompOutput *outputs,
+ int numOutput,
+ unsigned int mask);
+
+typedef Bool (*PaintOutputProc) (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask);
+
+typedef void (*PaintTransformedOutputProc) (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask);
+
+/* XXX: ApplyScreenTransformProc will be removed */
+typedef void (*ApplyScreenTransformProc) (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ CompOutput *output,
+ CompTransform *transform);
+
+typedef void (*EnableOutputClippingProc) (CompScreen *screen,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output);
+
+typedef void (*DisableOutputClippingProc) (CompScreen *screen);
+
+typedef void (*WalkerFiniProc) (CompScreen *screen,
+ CompWalker *walker);
+
+typedef CompWindow *(*WalkInitProc) (CompScreen *screen);
+typedef CompWindow *(*WalkStepProc) (CompWindow *window);
+
+struct _CompWalker {
+ WalkerFiniProc fini;
+ CompPrivate priv;
+
+ WalkInitProc first;
+ WalkInitProc last;
+ WalkStepProc next;
+ WalkStepProc prev;
+};
+
+/*
+ window paint flags
+
+ bit 1-16 are used for read-only flags and they provide
+ information that describe the screen rendering pass
+ currently in process.
+
+ bit 17-32 are writable flags and they provide information
+ that is used to optimize rendering.
+*/
+
+/*
+ this flag is present when window is being painted
+ on a transformed screen.
+*/
+#define PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK (1 << 0)
+
+/*
+ this flag is present when window is being tested
+ for occlusion of other windows.
+*/
+#define PAINT_WINDOW_OCCLUSION_DETECTION_MASK (1 << 1)
+
+/*
+ this flag indicates that the window ist painted with
+ an offset
+*/
+#define PAINT_WINDOW_WITH_OFFSET_MASK (1 << 2)
+
+/*
+ flag indicate that window is translucent.
+*/
+#define PAINT_WINDOW_TRANSLUCENT_MASK (1 << 16)
+
+/*
+ flag indicate that window is transformed.
+*/
+#define PAINT_WINDOW_TRANSFORMED_MASK (1 << 17)
+
+/*
+ flag indicate that core PaintWindow function should
+ not draw this window.
+*/
+#define PAINT_WINDOW_NO_CORE_INSTANCE_MASK (1 << 18)
+
+/*
+ flag indicate that blending is required.
+*/
+#define PAINT_WINDOW_BLEND_MASK (1 << 19)
+
+
+typedef Bool (*PaintWindowProc) (CompWindow *window,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask);
+
+typedef Bool (*DrawWindowProc) (CompWindow *window,
+ const CompTransform *transform,
+ const FragmentAttrib *fragment,
+ Region region,
+ unsigned int mask);
+
+typedef void (*AddWindowGeometryProc) (CompWindow *window,
+ CompMatrix *matrix,
+ int nMatrix,
+ Region region,
+ Region clip);
+
+typedef void (*DrawWindowTextureProc) (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *fragment,
+ unsigned int mask);
+
+typedef void (*DrawWindowGeometryProc) (CompWindow *window);
+
+typedef void (*PaintCursorProc) (CompCursor *cursor,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask);
+
+void
+preparePaintScreen (CompScreen *screen,
+ int msSinceLastPaint);
+
+void
+donePaintScreen (CompScreen *screen);
+
+void
+transformToScreenSpace (CompScreen *screen,
+ CompOutput *output,
+ float z,
+ CompTransform *transform);
+
+/* XXX: prepareXCoords will be removed */
+void
+prepareXCoords (CompScreen *screen,
+ CompOutput *output,
+ float z);
+
+void
+paintTransformedOutput (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask);
+
+/* XXX: applyScreenTransform will be removed */
+void
+applyScreenTransform (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ CompOutput *output,
+ CompTransform *transform);
+
+void
+enableOutputClipping (CompScreen *screen,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output);
+
+void
+disableOutputClipping (CompScreen *screen);
+
+void
+paintScreen (CompScreen *screen,
+ CompOutput *outputs,
+ int numOutput,
+ unsigned int mask);
+
+Bool
+paintOutput (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask);
+
+Bool
+moreWindowVertices (CompWindow *w,
+ int newSize);
+
+Bool
+moreWindowIndices (CompWindow *w,
+ int newSize);
+
+void
+addWindowGeometry (CompWindow *w,
+ CompMatrix *matrix,
+ int nMatrix,
+ Region region,
+ Region clip);
+
+void
+drawWindowTexture (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *fragment,
+ unsigned int mask);
+
+Bool
+drawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *fragment,
+ Region region,
+ unsigned int mask);
+
+Bool
+paintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask);
+
+void
+paintCursor (CompCursor *cursor,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask);
+
+/* texture.c */
+
+#define POWER_OF_TWO(v) ((v & (v - 1)) == 0)
+
+typedef enum {
+ COMP_TEXTURE_FILTER_FAST,
+ COMP_TEXTURE_FILTER_GOOD
+} CompTextureFilter;
+
+struct _CompTexture {
+ GLuint name;
+ GLenum target;
+ GLfloat dx, dy;
+ GLXPixmap pixmap;
+ GLenum filter;
+ GLenum wrap;
+ CompMatrix matrix;
+ Bool oldMipmaps;
+ Bool mipmap;
+ int refCount;
+};
+
+void
+initTexture (CompScreen *screen,
+ CompTexture *texture);
+
+void
+finiTexture (CompScreen *screen,
+ CompTexture *texture);
+
+CompTexture *
+createTexture (CompScreen *screen);
+
+void
+destroyTexture (CompScreen *screen,
+ CompTexture *texture);
+
+Bool
+imageBufferToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *image,
+ unsigned int width,
+ unsigned int height);
+
+Bool
+imageDataToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *image,
+ unsigned int width,
+ unsigned int height,
+ GLenum format,
+ GLenum type);
+
+
+Bool
+readImageToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *imageFileName,
+ unsigned int *width,
+ unsigned int *height);
+
+Bool
+iconToTexture (CompScreen *screen,
+ CompIcon *icon);
+
+Bool
+bindPixmapToTexture (CompScreen *screen,
+ CompTexture *texture,
+ Pixmap pixmap,
+ int width,
+ int height,
+ int depth);
+
+void
+releasePixmapFromTexture (CompScreen *screen,
+ CompTexture *texture);
+
+void
+enableTexture (CompScreen *screen,
+ CompTexture *texture,
+ CompTextureFilter filter);
+
+void
+enableTextureClampToBorder (CompScreen *screen,
+ CompTexture *texture,
+ CompTextureFilter filter);
+
+void
+enableTextureClampToEdge (CompScreen *screen,
+ CompTexture *texture,
+ CompTextureFilter filter);
+
+void
+disableTexture (CompScreen *screen,
+ CompTexture *texture);
+
+
+/* screen.c */
+
+#define COMP_SCREEN_OPTION_DETECT_REFRESH_RATE 0
+#define COMP_SCREEN_OPTION_LIGHTING 1
+#define COMP_SCREEN_OPTION_REFRESH_RATE 2
+#define COMP_SCREEN_OPTION_HSIZE 3
+#define COMP_SCREEN_OPTION_VSIZE 4
+#define COMP_SCREEN_OPTION_UNREDIRECT_FS 5
+#define COMP_SCREEN_OPTION_DEFAULT_ICON 6
+#define COMP_SCREEN_OPTION_SYNC_TO_VBLANK 7
+#define COMP_SCREEN_OPTION_NUMBER_OF_DESKTOPS 8
+#define COMP_SCREEN_OPTION_DETECT_OUTPUTS 9
+#define COMP_SCREEN_OPTION_OUTPUTS 10
+#define COMP_SCREEN_OPTION_OVERLAPPING_OUTPUTS 11
+#define COMP_SCREEN_OPTION_FOCUS_PREVENTION_LEVEL 12
+#define COMP_SCREEN_OPTION_FOCUS_PREVENTION_MATCH 13
+#define COMP_SCREEN_OPTION_TEXTURE_COMPRESSION 14
+#define COMP_SCREEN_OPTION_FORCE_INDEPENDENT 15
+#define COMP_SCREEN_OPTION_NUM 16
+
+#ifndef GLX_EXT_texture_from_pixmap
+#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
+#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
+#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
+#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
+#define GLX_Y_INVERTED_EXT 0x20D4
+#define GLX_TEXTURE_FORMAT_EXT 0x20D5
+#define GLX_TEXTURE_TARGET_EXT 0x20D6
+#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
+#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
+#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
+#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
+#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
+#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
+#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
+#define GLX_TEXTURE_1D_EXT 0x20DB
+#define GLX_TEXTURE_2D_EXT 0x20DC
+#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
+#define GLX_FRONT_LEFT_EXT 0x20DE
+#endif
+
+#define OUTPUT_OVERLAP_MODE_SMART 0
+#define OUTPUT_OVERLAP_MODE_PREFER_LARGER 1
+#define OUTPUT_OVERLAP_MODE_PREFER_SMALLER 2
+#define OUTPUT_OVERLAP_MODE_LAST OUTPUT_OVERLAP_MODE_PREFER_SMALLER
+
+#define FOCUS_PREVENTION_LEVEL_NONE 0
+#define FOCUS_PREVENTION_LEVEL_LOW 1
+#define FOCUS_PREVENTION_LEVEL_NORMAL 2
+#define FOCUS_PREVENTION_LEVEL_HIGH 3
+#define FOCUS_PREVENTION_LEVEL_VERYHIGH 4
+#define FOCUS_PREVENTION_LEVEL_LAST FOCUS_PREVENTION_LEVEL_VERYHIGH
+
+typedef void (*FuncPtr) (void);
+typedef FuncPtr (*GLXGetProcAddressProc) (const GLubyte *procName);
+
+typedef void (*GLXBindTexImageProc) (Display *display,
+ GLXDrawable drawable,
+ int buffer,
+ int *attribList);
+typedef void (*GLXReleaseTexImageProc) (Display *display,
+ GLXDrawable drawable,
+ int buffer);
+typedef void (*GLXQueryDrawableProc) (Display *display,
+ GLXDrawable drawable,
+ int attribute,
+ unsigned int *value);
+
+typedef void (*GLXCopySubBufferProc) (Display *display,
+ GLXDrawable drawable,
+ int x,
+ int y,
+ int width,
+ int height);
+
+typedef int (*GLXGetVideoSyncProc) (unsigned int *count);
+typedef int (*GLXWaitVideoSyncProc) (int divisor,
+ int remainder,
+ unsigned int *count);
+
+#ifndef GLX_VERSION_1_3
+typedef struct __GLXFBConfigRec *GLXFBConfig;
+#endif
+
+typedef GLXFBConfig *(*GLXGetFBConfigsProc) (Display *display,
+ int screen,
+ int *nElements);
+typedef int (*GLXGetFBConfigAttribProc) (Display *display,
+ GLXFBConfig config,
+ int attribute,
+ int *value);
+typedef GLXPixmap (*GLXCreatePixmapProc) (Display *display,
+ GLXFBConfig config,
+ Pixmap pixmap,
+ const int *attribList);
+
+typedef void (*GLActiveTextureProc) (GLenum texture);
+typedef void (*GLClientActiveTextureProc) (GLenum texture);
+typedef void (*GLMultiTexCoord2fProc) (GLenum, GLfloat, GLfloat);
+
+typedef void (*GLGenProgramsProc) (GLsizei n,
+ GLuint *programs);
+typedef void (*GLDeleteProgramsProc) (GLsizei n,
+ GLuint *programs);
+typedef void (*GLBindProgramProc) (GLenum target,
+ GLuint program);
+typedef void (*GLProgramStringProc) (GLenum target,
+ GLenum format,
+ GLsizei len,
+ const GLvoid *string);
+typedef void (*GLProgramParameter4fProc) (GLenum target,
+ GLuint index,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w);
+typedef void (*GLGetProgramivProc) (GLenum target,
+ GLenum pname,
+ int *params);
+
+typedef void (*GLGenFramebuffersProc) (GLsizei n,
+ GLuint *framebuffers);
+typedef void (*GLDeleteFramebuffersProc) (GLsizei n,
+ GLuint *framebuffers);
+typedef void (*GLBindFramebufferProc) (GLenum target,
+ GLuint framebuffer);
+typedef GLenum (*GLCheckFramebufferStatusProc) (GLenum target);
+typedef void (*GLFramebufferTexture2DProc) (GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level);
+typedef void (*GLGenerateMipmapProc) (GLenum target);
+
+#define MAX_DEPTH 32
+
+typedef void (*EnterShowDesktopModeProc) (CompScreen *screen);
+
+typedef void (*LeaveShowDesktopModeProc) (CompScreen *screen,
+ CompWindow *window);
+
+typedef Bool (*DamageWindowRectProc) (CompWindow *w,
+ Bool initial,
+ BoxPtr rect);
+
+typedef Bool (*DamageWindowRegionProc) (CompWindow *w,
+ Region region);
+
+typedef Bool (*DamageCursorRectProc) (CompCursor *c,
+ Bool initial,
+ BoxPtr rect);
+
+
+typedef void (*GetOutputExtentsForWindowProc) (CompWindow *w,
+ CompWindowExtents *output);
+
+typedef void (*GetAllowedActionsForWindowProc) (CompWindow *w,
+ unsigned int *setActions,
+ unsigned int *clearActions);
+
+typedef Bool (*FocusWindowProc) (CompWindow *window);
+
+typedef void (*ActivateWindowProc) (CompWindow *window);
+
+typedef Bool (*PlaceWindowProc) (CompWindow *window,
+ int x,
+ int y,
+ int *newX,
+ int *newY);
+
+typedef void (*ValidateWindowResizeRequestProc) (CompWindow *window,
+ unsigned int *mask,
+ XWindowChanges *xwc,
+ unsigned int source);
+
+typedef void (*WindowResizeNotifyProc) (CompWindow *window,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight);
+
+typedef void (*WindowMoveNotifyProc) (CompWindow *window,
+ int dx,
+ int dy,
+ Bool immediate);
+
+#define CompWindowGrabKeyMask (1 << 0)
+#define CompWindowGrabButtonMask (1 << 1)
+#define CompWindowGrabMoveMask (1 << 2)
+#define CompWindowGrabResizeMask (1 << 3)
+
+typedef void (*WindowGrabNotifyProc) (CompWindow *window,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask);
+
+typedef void (*WindowUngrabNotifyProc) (CompWindow *window);
+
+typedef void (*WindowStateChangeNotifyProc) (CompWindow *window,
+ unsigned int lastState);
+
+typedef void (*OutputChangeNotifyProc) (CompScreen *screen);
+
+typedef void (*InitWindowWalkerProc) (CompScreen *screen,
+ CompWalker *walker);
+
+#define COMP_SCREEN_DAMAGE_PENDING_MASK (1 << 0)
+#define COMP_SCREEN_DAMAGE_REGION_MASK (1 << 1)
+#define COMP_SCREEN_DAMAGE_ALL_MASK (1 << 2)
+
+typedef struct _CompKeyGrab {
+ int keycode;
+ unsigned int modifiers;
+ int count;
+} CompKeyGrab;
+
+typedef struct _CompButtonGrab {
+ int button;
+ unsigned int modifiers;
+ int count;
+} CompButtonGrab;
+
+typedef struct _CompGrab {
+ Bool active;
+ Cursor cursor;
+ const char *name;
+} CompGrab;
+
+typedef struct _CompGroup {
+ struct _CompGroup *next;
+ unsigned int refCnt;
+ Window id;
+} CompGroup;
+
+typedef struct _CompStartupSequence {
+ struct _CompStartupSequence *next;
+ SnStartupSequence *sequence;
+ unsigned int viewportX;
+ unsigned int viewportY;
+} CompStartupSequence;
+
+typedef struct _CompFBConfig {
+ GLXFBConfig fbConfig;
+ int yInverted;
+ int mipmap;
+ int textureFormat;
+ int textureTargets;
+} CompFBConfig;
+
+#define NOTHING_TRANS_FILTER 0
+#define SCREEN_TRANS_FILTER 1
+#define WINDOW_TRANS_FILTER 2
+
+#define SCREEN_EDGE_LEFT 0
+#define SCREEN_EDGE_RIGHT 1
+#define SCREEN_EDGE_TOP 2
+#define SCREEN_EDGE_BOTTOM 3
+#define SCREEN_EDGE_TOPLEFT 4
+#define SCREEN_EDGE_TOPRIGHT 5
+#define SCREEN_EDGE_BOTTOMLEFT 6
+#define SCREEN_EDGE_BOTTOMRIGHT 7
+#define SCREEN_EDGE_NUM 8
+
+typedef struct _CompScreenEdge {
+ Window id;
+ unsigned int count;
+} CompScreenEdge;
+
+struct _CompIcon {
+ CompTexture texture;
+ int width;
+ int height;
+};
+
+struct _CompOutput {
+ char *name;
+ int id;
+ REGION region;
+ int width;
+ int height;
+ XRectangle workArea;
+};
+
+typedef struct _CompCursorImage {
+ struct _CompCursorImage *next;
+
+ unsigned long serial;
+ Pixmap pixmap;
+ CompTexture texture;
+ int xhot;
+ int yhot;
+ int width;
+ int height;
+} CompCursorImage;
+
+struct _CompCursor {
+ struct _CompCursor *next;
+
+ CompScreen *screen;
+ CompCursorImage *image;
+
+ int x;
+ int y;
+
+ CompMatrix matrix;
+};
+
+#define ACTIVE_WINDOW_HISTORY_SIZE 64
+#define ACTIVE_WINDOW_HISTORY_NUM 32
+
+typedef struct _CompActiveWindowHistory {
+ Window id[ACTIVE_WINDOW_HISTORY_SIZE];
+ int x;
+ int y;
+ int activeNum;
+} CompActiveWindowHistory;
+
+struct _CompScreen {
+ CompObject base;
+
+ CompScreen *next;
+ CompDisplay *display;
+ CompWindow *windows;
+ CompWindow *reverseWindows;
+
+ char *windowPrivateIndices;
+ int windowPrivateLen;
+
+ Colormap colormap;
+ int screenNum;
+ int width;
+ int height;
+ int x;
+ int y;
+ int hsize; /* Number of horizontal viewports */
+ int vsize; /* Number of vertical viewports */
+ unsigned int nDesktop;
+ unsigned int currentDesktop;
+ REGION region;
+ Region damage;
+ unsigned long damageMask;
+ Window root;
+ Window overlay;
+ Window output;
+ XWindowAttributes attrib;
+ Window grabWindow;
+ CompFBConfig glxPixmapFBConfigs[MAX_DEPTH + 1];
+ int textureRectangle;
+ int textureNonPowerOfTwo;
+ int textureEnvCombine;
+ int textureEnvCrossbar;
+ int textureBorderClamp;
+ int textureCompression;
+ GLint maxTextureSize;
+ int fbo;
+ int fragmentProgram;
+ int maxTextureUnits;
+ Cursor invisibleCursor;
+ XRectangle *exposeRects;
+ int sizeExpose;
+ int nExpose;
+ CompTexture backgroundTexture;
+ Bool backgroundLoaded;
+ unsigned int pendingDestroys;
+ int desktopWindowCount;
+ unsigned int mapNum;
+ unsigned int activeNum;
+
+ CompOutput *outputDev;
+ int nOutputDev;
+ int currentOutputDev;
+ CompOutput fullscreenOutput;
+ Bool hasOverlappingOutputs;
+
+ int windowOffsetX;
+ int windowOffsetY;
+
+ XRectangle lastViewport;
+
+ CompActiveWindowHistory history[ACTIVE_WINDOW_HISTORY_NUM];
+ int currentHistory;
+
+ int overlayWindowCount;
+
+ CompScreenEdge screenEdge[SCREEN_EDGE_NUM];
+
+ SnMonitorContext *snContext;
+ CompStartupSequence *startupSequences;
+ unsigned int startupSequenceTimeoutHandle;
+
+ int filter[3];
+
+ CompGroup *groups;
+
+ CompIcon *defaultIcon;
+
+ Bool canDoSaturated;
+ Bool canDoSlightlySaturated;
+
+ Window wmSnSelectionWindow;
+ Atom wmSnAtom;
+ Time wmSnTimestamp;
+
+ Cursor normalCursor;
+ Cursor busyCursor;
+
+ CompWindow **clientList;
+ int nClientList;
+
+ CompButtonGrab *buttonGrab;
+ int nButtonGrab;
+ CompKeyGrab *keyGrab;
+ int nKeyGrab;
+
+ CompGrab *grabs;
+ int grabSize;
+ int maxGrab;
+
+ int rasterX;
+ int rasterY;
+ struct timeval lastRedraw;
+ int nextRedraw;
+ int redrawTime;
+ int optimalRedrawTime;
+ int frameStatus;
+ int timeMult;
+ Bool idle;
+ int timeLeft;
+ Bool pendingCommands;
+
+ int lastFunctionId;
+
+ CompFunction *fragmentFunctions;
+ CompProgram *fragmentPrograms;
+
+ int saturateFunction[2][64];
+
+ GLfloat projection[16];
+
+ Bool clearBuffers;
+
+ Bool lighting;
+ Bool slowAnimations;
+
+ XRectangle workArea;
+
+ unsigned int showingDesktopMask;
+
+ unsigned long *desktopHintData;
+ int desktopHintSize;
+
+ CompCursor *cursors;
+ CompCursorImage *cursorImages;
+
+ GLXGetProcAddressProc getProcAddress;
+ GLXBindTexImageProc bindTexImage;
+ GLXReleaseTexImageProc releaseTexImage;
+ GLXQueryDrawableProc queryDrawable;
+ GLXCopySubBufferProc copySubBuffer;
+ GLXGetVideoSyncProc getVideoSync;
+ GLXWaitVideoSyncProc waitVideoSync;
+ GLXGetFBConfigsProc getFBConfigs;
+ GLXGetFBConfigAttribProc getFBConfigAttrib;
+ GLXCreatePixmapProc createPixmap;
+
+ GLActiveTextureProc activeTexture;
+ GLClientActiveTextureProc clientActiveTexture;
+ GLMultiTexCoord2fProc multiTexCoord2f;
+
+ GLGenProgramsProc genPrograms;
+ GLDeleteProgramsProc deletePrograms;
+ GLBindProgramProc bindProgram;
+ GLProgramStringProc programString;
+ GLProgramParameter4fProc programEnvParameter4f;
+ GLProgramParameter4fProc programLocalParameter4f;
+ GLGetProgramivProc getProgramiv;
+
+ GLGenFramebuffersProc genFramebuffers;
+ GLDeleteFramebuffersProc deleteFramebuffers;
+ GLBindFramebufferProc bindFramebuffer;
+ GLCheckFramebufferStatusProc checkFramebufferStatus;
+ GLFramebufferTexture2DProc framebufferTexture2D;
+ GLGenerateMipmapProc generateMipmap;
+
+ GLXContext ctx;
+
+ CompOption opt[COMP_SCREEN_OPTION_NUM];
+
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintScreenProc paintScreen;
+ PaintOutputProc paintOutput;
+ PaintTransformedOutputProc paintTransformedOutput;
+ EnableOutputClippingProc enableOutputClipping;
+ DisableOutputClippingProc disableOutputClipping;
+ ApplyScreenTransformProc applyScreenTransform;
+ PaintWindowProc paintWindow;
+ DrawWindowProc drawWindow;
+ AddWindowGeometryProc addWindowGeometry;
+ DrawWindowTextureProc drawWindowTexture;
+ DamageWindowRectProc damageWindowRect;
+ GetOutputExtentsForWindowProc getOutputExtentsForWindow;
+ GetAllowedActionsForWindowProc getAllowedActionsForWindow;
+ FocusWindowProc focusWindow;
+ ActivateWindowProc activateWindow;
+ PlaceWindowProc placeWindow;
+ ValidateWindowResizeRequestProc validateWindowResizeRequest;
+
+ PaintCursorProc paintCursor;
+ DamageCursorRectProc damageCursorRect;
+
+ WindowResizeNotifyProc windowResizeNotify;
+ WindowMoveNotifyProc windowMoveNotify;
+ WindowGrabNotifyProc windowGrabNotify;
+ WindowUngrabNotifyProc windowUngrabNotify;
+
+ EnterShowDesktopModeProc enterShowDesktopMode;
+ LeaveShowDesktopModeProc leaveShowDesktopMode;
+
+ WindowStateChangeNotifyProc windowStateChangeNotify;
+
+ OutputChangeNotifyProc outputChangeNotify;
+
+ InitWindowWalkerProc initWindowWalker;
+
+ void *reserved;
+};
+
+#define GET_CORE_SCREEN(object) ((CompScreen *) (object))
+#define CORE_SCREEN(object) CompScreen *s = GET_CORE_SCREEN (object)
+
+CompBool
+allocScreenObjectPrivates (CompObject *object,
+ CompObject *parent);
+
+int
+allocScreenObjectPrivateIndex (CompObject *parent);
+
+void
+freeScreenObjectPrivateIndex (CompObject *parent,
+ int index);
+
+CompBool
+forEachScreenObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure);
+
+char *
+nameScreenObject (CompObject *object);
+
+CompObject *
+findScreenObject (CompObject *parent,
+ const char *name);
+
+int
+allocateScreenPrivateIndex (CompDisplay *display);
+
+void
+freeScreenPrivateIndex (CompDisplay *display,
+ int index);
+
+CompOption *
+getScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count);
+
+Bool
+setScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value);
+
+void
+configureScreen (CompScreen *s,
+ XConfigureEvent *ce);
+
+void
+setCurrentOutput (CompScreen *s,
+ int outputNum);
+
+void
+updateScreenBackground (CompScreen *screen,
+ CompTexture *texture);
+
+void
+detectRefreshRateOfScreen (CompScreen *s);
+
+void
+showOutputWindow (CompScreen *s);
+
+void
+hideOutputWindow (CompScreen *s);
+
+void
+updateOutputWindow (CompScreen *s);
+
+Bool
+addScreen (CompDisplay *display,
+ int screenNum,
+ Window wmSnSelectionWindow,
+ Atom wmSnAtom,
+ Time wmSnTimestamp);
+
+void
+removeScreen (CompScreen *s);
+
+void
+damageScreenRegion (CompScreen *screen,
+ Region region);
+
+void
+damageScreen (CompScreen *screen);
+
+void
+damagePendingOnScreen (CompScreen *s);
+
+void
+insertWindowIntoScreen (CompScreen *s,
+ CompWindow *w,
+ Window aboveId);
+
+void
+unhookWindowFromScreen (CompScreen *s,
+ CompWindow *w);
+
+void
+forEachWindowOnScreen (CompScreen *screen,
+ ForEachWindowProc proc,
+ void *closure);
+
+CompWindow *
+findWindowAtScreen (CompScreen *s,
+ Window id);
+
+CompWindow *
+findTopLevelWindowAtScreen (CompScreen *s,
+ Window id);
+
+void
+focusDefaultWindow (CompScreen *s);
+
+int
+pushScreenGrab (CompScreen *s,
+ Cursor cursor,
+ const char *name);
+
+void
+updateScreenGrab (CompScreen *s,
+ int index,
+ Cursor cursor);
+
+void
+removeScreenGrab (CompScreen *s,
+ int index,
+ XPoint *restorePointer);
+
+Bool
+otherScreenGrabExist (CompScreen *s, ...);
+
+Bool
+addScreenAction (CompScreen *s,
+ CompAction *action);
+
+void
+removeScreenAction (CompScreen *s,
+ CompAction *action);
+
+void
+updatePassiveGrabs (CompScreen *s);
+
+void
+updateWorkareaForScreen (CompScreen *s);
+
+void
+updateClientListForScreen (CompScreen *s);
+
+Window
+getActiveWindow (CompDisplay *display,
+ Window root);
+
+void
+toolkitAction (CompScreen *s,
+ Atom toolkitAction,
+ Time eventTime,
+ Window window,
+ long data0,
+ long data1,
+ long data2);
+
+void
+runCommand (CompScreen *s,
+ const char *command);
+
+void
+moveScreenViewport (CompScreen *s,
+ int tx,
+ int ty,
+ Bool sync);
+
+void
+moveWindowToViewportPosition (CompWindow *w,
+ int x,
+ int y,
+ Bool sync);
+
+CompGroup *
+addGroupToScreen (CompScreen *s,
+ Window id);
+void
+removeGroupFromScreen (CompScreen *s,
+ CompGroup *group);
+
+CompGroup *
+findGroupAtScreen (CompScreen *s,
+ Window id);
+
+void
+applyStartupProperties (CompScreen *screen,
+ CompWindow *window);
+
+void
+sendWindowActivationRequest (CompScreen *s,
+ Window id);
+
+void
+screenTexEnvMode (CompScreen *s,
+ GLenum mode);
+
+void
+screenLighting (CompScreen *s,
+ Bool lighting);
+
+void
+enableScreenEdge (CompScreen *s,
+ int edge);
+
+void
+disableScreenEdge (CompScreen *s,
+ int edge);
+
+Window
+getTopWindow (CompScreen *s);
+
+void
+makeScreenCurrent (CompScreen *s);
+
+void
+finishScreenDrawing (CompScreen *s);
+
+int
+outputDeviceForPoint (CompScreen *s,
+ int x,
+ int y);
+
+void
+getCurrentOutputExtents (CompScreen *s,
+ int *x1,
+ int *y1,
+ int *x2,
+ int *y2);
+
+void
+getWorkareaForOutput (CompScreen *s,
+ int output,
+ XRectangle *area);
+
+void
+setNumberOfDesktops (CompScreen *s,
+ unsigned int nDesktop);
+
+void
+setCurrentDesktop (CompScreen *s,
+ unsigned int desktop);
+
+void
+setDefaultViewport (CompScreen *s);
+
+void
+outputChangeNotify (CompScreen *s);
+
+void
+clearScreenOutput (CompScreen *s,
+ CompOutput *output,
+ unsigned int mask);
+
+void
+viewportForGeometry (CompScreen *s,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth,
+ int *viewportX,
+ int *viewportY);
+
+int
+outputDeviceForGeometry (CompScreen *s,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth);
+
+Bool
+updateDefaultIcon (CompScreen *screen);
+
+CompCursor *
+findCursorAtScreen (CompScreen *screen);
+
+CompCursorImage *
+findCursorImageAtScreen (CompScreen *screen,
+ unsigned long serial);
+
+void
+setCurrentActiveWindowHistory (CompScreen *s,
+ int x,
+ int y);
+
+void
+addToCurrentActiveWindowHistory (CompScreen *s,
+ Window id);
+
+void
+setWindowPaintOffset (CompScreen *s,
+ int x,
+ int y);
+
+
+/* window.c */
+
+#define WINDOW_INVISIBLE(w) \
+ ((w)->attrib.map_state != IsViewable || \
+ (!(w)->damaged) || \
+ (w)->attrib.x + (w)->width + (w)->output.right <= 0 || \
+ (w)->attrib.y + (w)->height + (w)->output.bottom <= 0 || \
+ (w)->attrib.x - (w)->output.left >= (w)->screen->width || \
+ (w)->attrib.y - (w)->output.top >= (w)->screen->height)
+
+typedef enum {
+ CompStackingUpdateModeNone = 0,
+ CompStackingUpdateModeNormal,
+ CompStackingUpdateModeAboveFullscreen,
+ CompStackingUpdateModeInitialMap,
+ CompStackingUpdateModeInitialMapDeniedFocus
+} CompStackingUpdateMode;
+
+typedef enum {
+ CompFocusAllowed = 0,
+ CompFocusPrevent,
+ CompFocusDenied
+} CompFocusResult;
+
+struct _CompWindowExtents {
+ int left;
+ int right;
+ int top;
+ int bottom;
+};
+
+typedef struct _CompStruts {
+ XRectangle left;
+ XRectangle right;
+ XRectangle top;
+ XRectangle bottom;
+} CompStruts;
+
+struct _CompWindow {
+ CompObject base;
+
+ CompScreen *screen;
+ CompWindow *next;
+ CompWindow *prev;
+
+ int refcnt;
+ Window id;
+ Window frame;
+ unsigned int mapNum;
+ unsigned int activeNum;
+ XWindowAttributes attrib;
+ int serverX;
+ int serverY;
+ int serverWidth;
+ int serverHeight;
+ int serverBorderWidth;
+ Window transientFor;
+ Window clientLeader;
+ XWMHints *hints;
+ XSizeHints sizeHints;
+ Pixmap pixmap;
+ CompTexture *texture;
+ CompMatrix matrix;
+ Damage damage;
+ Bool inputHint;
+ Bool alpha;
+ GLint width;
+ GLint height;
+ Region region;
+ Region clip;
+ unsigned int wmType;
+ unsigned int type;
+ unsigned int state;
+ unsigned int actions;
+ unsigned int protocols;
+ unsigned int mwmDecor;
+ unsigned int mwmFunc;
+ Bool invisible;
+ Bool destroyed;
+ Bool damaged;
+ Bool redirected;
+ Bool managed;
+ Bool bindFailed;
+ Bool overlayWindow;
+ int destroyRefCnt;
+ int unmapRefCnt;
+
+ unsigned int initialViewportX;
+ unsigned int initialViewportY;
+
+ Time initialTimestamp;
+ Bool initialTimestampSet;
+
+ Bool placed;
+ Bool minimized;
+ Bool inShowDesktopMode;
+ Bool shaded;
+ Bool hidden;
+ Bool grabbed;
+
+ unsigned int desktop;
+
+ int pendingUnmaps;
+ int pendingMaps;
+
+ char *startupId;
+ char *resName;
+ char *resClass;
+
+ CompGroup *group;
+
+ unsigned int lastPong;
+ Bool alive;
+
+ WindowPaintAttrib paint;
+ WindowPaintAttrib lastPaint;
+
+ unsigned int lastMask;
+
+ CompWindowExtents input;
+ CompWindowExtents output;
+
+ CompStruts *struts;
+
+ CompIcon **icon;
+ int nIcon;
+
+ XRectangle iconGeometry;
+ Bool iconGeometrySet;
+
+ XRectangle fullscreenMonitorRect;
+ Bool fullscreenMonitorsSet;
+
+ XWindowChanges saveWc;
+ int saveMask;
+
+ XSyncCounter syncCounter;
+ XSyncValue syncValue;
+ XSyncAlarm syncAlarm;
+ unsigned long syncAlarmConnection;
+ unsigned int syncWaitHandle;
+
+ Bool syncWait;
+ int syncX;
+ int syncY;
+ int syncWidth;
+ int syncHeight;
+ int syncBorderWidth;
+
+ Bool closeRequests;
+ Time lastCloseRequestTime;
+
+ XRectangle *damageRects;
+ int sizeDamage;
+ int nDamage;
+
+ GLfloat *vertices;
+ int vertexSize;
+ int vertexStride;
+ GLushort *indices;
+ int indexSize;
+ int vCount;
+ int texUnits;
+ int texCoordSize;
+ int indexCount;
+
+ /* must be set by addWindowGeometry */
+ DrawWindowGeometryProc drawWindowGeometry;
+
+ void *reserved;
+};
+
+#define GET_CORE_WINDOW(object) ((CompWindow *) (object))
+#define CORE_WINDOW(object) CompWindow *w = GET_CORE_WINDOW (object)
+
+CompBool
+allocWindowObjectPrivates (CompObject *object,
+ CompObject *parent);
+
+int
+allocWindowObjectPrivateIndex (CompObject *parent);
+
+void
+freeWindowObjectPrivateIndex (CompObject *parent,
+ int index);
+
+CompBool
+forEachWindowObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure);
+
+char *
+nameWindowObject (CompObject *object);
+
+CompObject *
+findWindowObject (CompObject *parent,
+ const char *name);
+
+int
+allocateWindowPrivateIndex (CompScreen *screen);
+
+void
+freeWindowPrivateIndex (CompScreen *screen,
+ int index);
+
+unsigned int
+windowStateMask (CompDisplay *display,
+ Atom state);
+
+unsigned int
+windowStateFromString (const char *str);
+
+unsigned int
+getWindowState (CompDisplay *display,
+ Window id);
+
+void
+setWindowState (CompDisplay *display,
+ unsigned int state,
+ Window id);
+
+void
+changeWindowState (CompWindow *w,
+ unsigned int newState);
+
+void
+recalcWindowActions (CompWindow *w);
+
+unsigned int
+constrainWindowState (unsigned int state,
+ unsigned int actions);
+
+unsigned int
+windowTypeFromString (const char *str);
+
+unsigned int
+getWindowType (CompDisplay *display,
+ Window id);
+
+void
+recalcWindowType (CompWindow *w);
+
+void
+getMwmHints (CompDisplay *display,
+ Window id,
+ unsigned int *func,
+ unsigned int *decor);
+
+unsigned int
+getProtocols (CompDisplay *display,
+ Window id);
+
+unsigned int
+getWindowProp (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned int defaultValue);
+
+void
+setWindowProp (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned int value);
+
+Bool
+readWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short *returnValue);
+
+unsigned short
+getWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short defaultValue);
+
+void
+setWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short value);
+
+void
+updateNormalHints (CompWindow *window);
+
+void
+updateWmHints (CompWindow *w);
+
+void
+updateWindowClassHints (CompWindow *window);
+
+void
+updateTransientHint (CompWindow *w);
+
+void
+updateIconGeometry (CompWindow *w);
+
+Window
+getClientLeader (CompWindow *w);
+
+char *
+getStartupId (CompWindow *w);
+
+int
+getWmState (CompDisplay *display,
+ Window id);
+
+void
+setWmState (CompDisplay *display,
+ int state,
+ Window id);
+
+void
+setWindowFullscreenMonitors (CompWindow *w,
+ CompFullscreenMonitorSet *monitors);
+
+void
+setWindowFrameExtents (CompWindow *w,
+ CompWindowExtents *input);
+
+void
+updateWindowOutputExtents (CompWindow *w);
+
+void
+updateWindowRegion (CompWindow *w);
+
+Bool
+updateWindowStruts (CompWindow *w);
+
+void
+addWindow (CompScreen *screen,
+ Window id,
+ Window aboveId);
+
+void
+removeWindow (CompWindow *w);
+
+void
+destroyWindow (CompWindow *w);
+
+void
+sendConfigureNotify (CompWindow *w);
+
+void
+mapWindow (CompWindow *w);
+
+void
+unmapWindow (CompWindow *w);
+
+Bool
+bindWindow (CompWindow *w);
+
+void
+releaseWindow (CompWindow *w);
+
+void
+moveWindow (CompWindow *w,
+ int dx,
+ int dy,
+ Bool damage,
+ Bool immediate);
+
+void
+configureXWindow (CompWindow *w,
+ unsigned int valueMask,
+ XWindowChanges *xwc);
+
+unsigned int
+adjustConfigureRequestForGravity (CompWindow *w,
+ XWindowChanges *xwc,
+ unsigned int xwcm,
+ int gravity);
+
+void
+moveResizeWindow (CompWindow *w,
+ XWindowChanges *xwc,
+ unsigned int xwcm,
+ int gravity,
+ unsigned int source);
+
+void
+syncWindowPosition (CompWindow *w);
+
+void
+sendSyncRequest (CompWindow *w);
+
+Bool
+resizeWindow (CompWindow *w,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth);
+
+void
+configureWindow (CompWindow *w,
+ XConfigureEvent *ce);
+
+void
+circulateWindow (CompWindow *w,
+ XCirculateEvent *ce);
+
+void
+addWindowDamageRect (CompWindow *w,
+ BoxPtr rect);
+
+void
+getOutputExtentsForWindow (CompWindow *w,
+ CompWindowExtents *output);
+
+void
+getAllowedActionsForWindow (CompWindow *w,
+ unsigned int *setActions,
+ unsigned int *clearActions);
+
+void
+addWindowDamage (CompWindow *w);
+
+void
+damageWindowOutputExtents (CompWindow *w);
+
+Bool
+damageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect);
+
+void
+damageTransformedWindowRect (CompWindow *w,
+ float xScale,
+ float yScale,
+ float xTranslate,
+ float yTranslate,
+ BoxPtr rect);
+
+Bool
+focusWindow (CompWindow *w);
+
+Bool
+placeWindow (CompWindow *w,
+ int x,
+ int y,
+ int *newX,
+ int *newY);
+
+void
+validateWindowResizeRequest (CompWindow *w,
+ unsigned int *mask,
+ XWindowChanges *xwc,
+ unsigned int source);
+
+void
+windowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight);
+
+void
+windowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate);
+
+void
+windowGrabNotify (CompWindow *w,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask);
+
+void
+windowUngrabNotify (CompWindow *w);
+
+void
+windowStateChangeNotify (CompWindow *w,
+ unsigned int lastState);
+
+void
+moveInputFocusToWindow (CompWindow *w);
+
+void
+updateWindowSize (CompWindow *w);
+
+void
+raiseWindow (CompWindow *w);
+
+void
+lowerWindow (CompWindow *w);
+
+void
+restackWindowAbove (CompWindow *w,
+ CompWindow *sibling);
+
+void
+restackWindowBelow (CompWindow *w,
+ CompWindow *sibling);
+
+void
+updateWindowAttributes (CompWindow *w,
+ CompStackingUpdateMode stackingMode);
+
+void
+activateWindow (CompWindow *w);
+
+void
+closeWindow (CompWindow *w,
+ Time serverTime);
+
+Bool
+constrainNewWindowSize (CompWindow *w,
+ int width,
+ int height,
+ int *newWidth,
+ int *newHeight);
+
+void
+hideWindow (CompWindow *w);
+
+void
+showWindow (CompWindow *w);
+
+void
+minimizeWindow (CompWindow *w);
+
+void
+unminimizeWindow (CompWindow *w);
+
+void
+maximizeWindow (CompWindow *w,
+ int state);
+
+Bool
+getWindowUserTime (CompWindow *w,
+ Time *time);
+
+void
+setWindowUserTime (CompWindow *w,
+ Time time);
+
+CompFocusResult
+allowWindowFocus (CompWindow *w,
+ unsigned int noFocusMask,
+ unsigned int viewportX,
+ unsigned int viewportY,
+ Time timestamp);
+
+void
+unredirectWindow (CompWindow *w);
+
+void
+redirectWindow (CompWindow *w);
+
+void
+defaultViewportForWindow (CompWindow *w,
+ int *vx,
+ int *vy);
+
+CompIcon *
+getWindowIcon (CompWindow *w,
+ int width,
+ int height);
+
+void
+freeWindowIcons (CompWindow *w);
+
+int
+outputDeviceForWindow (CompWindow *w);
+
+Bool
+onCurrentDesktop (CompWindow *w);
+
+void
+setDesktopForWindow (CompWindow *w,
+ unsigned int desktop);
+
+int
+compareWindowActiveness (CompWindow *w1,
+ CompWindow *w2);
+
+Bool
+windowOnAllViewports (CompWindow *w);
+
+void
+getWindowMovementForOffset (CompWindow *w,
+ int offX,
+ int offY,
+ int *retX,
+ int *retY);
+
+/* plugin.c */
+
+#define HOME_PLUGINDIR ".compiz/plugins"
+
+typedef CompPluginVTable *(*PluginGetInfoProc) (void);
+
+typedef Bool (*LoadPluginProc) (CompPlugin *p,
+ const char *path,
+ const char *name);
+
+typedef void (*UnloadPluginProc) (CompPlugin *p);
+
+typedef char **(*ListPluginsProc) (const char *path,
+ int *n);
+
+extern LoadPluginProc loaderLoadPlugin;
+extern UnloadPluginProc loaderUnloadPlugin;
+extern ListPluginsProc loaderListPlugins;
+
+struct _CompPlugin {
+ CompPlugin *next;
+ CompPrivate devPrivate;
+ char *devType;
+ CompPluginVTable *vTable;
+};
+
+CompBool
+objectInitPlugins (CompObject *o);
+
+void
+objectFiniPlugins (CompObject *o);
+
+CompPlugin *
+findActivePlugin (const char *name);
+
+CompPlugin *
+loadPlugin (const char *plugin);
+
+void
+unloadPlugin (CompPlugin *p);
+
+Bool
+pushPlugin (CompPlugin *p);
+
+CompPlugin *
+popPlugin (void);
+
+CompPlugin *
+getPlugins (void);
+
+char **
+availablePlugins (int *n);
+
+int
+getPluginABI (const char *name);
+
+Bool
+checkPluginABI (const char *name,
+ int abi);
+
+Bool
+getPluginDisplayIndex (CompDisplay *d,
+ const char *name,
+ int *index);
+
+
+/* fragment.c */
+
+#define MAX_FRAGMENT_FUNCTIONS 16
+
+struct _FragmentAttrib {
+ GLushort opacity;
+ GLushort brightness;
+ GLushort saturation;
+ int nTexture;
+ int function[MAX_FRAGMENT_FUNCTIONS];
+ int nFunction;
+ int nParam;
+};
+
+CompFunctionData *
+createFunctionData (void);
+
+void
+destroyFunctionData (CompFunctionData *data);
+
+Bool
+addTempHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name);
+
+Bool
+addParamHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name);
+
+Bool
+addAttribHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name);
+
+#define COMP_FETCH_TARGET_2D 0
+#define COMP_FETCH_TARGET_RECT 1
+#define COMP_FETCH_TARGET_NUM 2
+
+Bool
+addFetchOpToFunctionData (CompFunctionData *data,
+ const char *dst,
+ const char *offset,
+ int target);
+
+Bool
+addColorOpToFunctionData (CompFunctionData *data,
+ const char *dst,
+ const char *src);
+
+Bool
+addDataOpToFunctionData (CompFunctionData *data,
+ const char *str,
+ ...);
+
+Bool
+addBlendOpToFunctionData (CompFunctionData *data,
+ const char *str,
+ ...);
+
+int
+createFragmentFunction (CompScreen *s,
+ const char *name,
+ CompFunctionData *data);
+
+void
+destroyFragmentFunction (CompScreen *s,
+ int id);
+
+int
+getSaturateFragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int param);
+
+int
+allocFragmentTextureUnits (FragmentAttrib *attrib,
+ int nTexture);
+
+int
+allocFragmentParameters (FragmentAttrib *attrib,
+ int nParam);
+
+void
+addFragmentFunction (FragmentAttrib *attrib,
+ int function);
+
+void
+initFragmentAttrib (FragmentAttrib *attrib,
+ const WindowPaintAttrib *paint);
+
+Bool
+enableFragmentAttrib (CompScreen *s,
+ FragmentAttrib *attrib,
+ Bool *blending);
+
+void
+disableFragmentAttrib (CompScreen *s,
+ FragmentAttrib *attrib);
+
+
+/* matrix.c */
+
+void
+matrixMultiply (CompTransform *product,
+ const CompTransform *transformA,
+ const CompTransform *transformB);
+
+void
+matrixMultiplyVector (CompVector *product,
+ const CompVector *vector,
+ const CompTransform *transform);
+
+void
+matrixVectorDiv (CompVector *v);
+
+void
+matrixRotate (CompTransform *transform,
+ float angle,
+ float x,
+ float y,
+ float z);
+
+void
+matrixScale (CompTransform *transform,
+ float x,
+ float y,
+ float z);
+
+void
+matrixTranslate (CompTransform *transform,
+ float x,
+ float y,
+ float z);
+
+void
+matrixGetIdentity (CompTransform *m);
+
+/* cursor.c */
+
+void
+addCursor (CompScreen *s);
+
+Bool
+damageCursorRect (CompCursor *c,
+ Bool initial,
+ BoxPtr rect);
+
+void
+addCursorDamageRect (CompCursor *c,
+ BoxPtr rect);
+
+void
+addCursorDamage (CompCursor *c);
+
+void
+updateCursor (CompCursor *c,
+ int x,
+ int y,
+ unsigned long serial);
+
+
+/* match.c */
+
+void
+matchInit (CompMatch *match);
+
+void
+matchFini (CompMatch *match);
+
+Bool
+matchEqual (CompMatch *m1,
+ CompMatch *m2);
+
+Bool
+matchCopy (CompMatch *dst,
+ CompMatch *src);
+
+Bool
+matchAddGroup (CompMatch *match,
+ int flags,
+ CompMatch *group);
+
+Bool
+matchAddExp (CompMatch *match,
+ int flags,
+ const char *value);
+
+void
+matchAddFromString (CompMatch *match,
+ const char *str);
+
+char *
+matchToString (CompMatch *match);
+
+void
+matchUpdate (CompDisplay *display,
+ CompMatch *match);
+
+Bool
+matchEval (CompMatch *match,
+ CompWindow *window);
+
+void
+matchInitExp (CompDisplay *display,
+ CompMatchExp *exp,
+ const char *value);
+
+void
+matchExpHandlerChanged (CompDisplay *display);
+
+void
+matchPropertyChanged (CompDisplay *display,
+ CompWindow *window);
+
+
+/* metadata.c */
+
+#define STRINGIFY(x) #x
+#define TOSTRING(x) STRINGIFY (x)
+#define MINTOSTRING(x) "<min>" TOSTRING (x) "</min>"
+#define MAXTOSTRING(x) "<max>" TOSTRING (x) "</max>"
+#define RESTOSTRING(min, max) MINTOSTRING (min) MAXTOSTRING (max)
+
+typedef struct _CompMetadataOptionInfo {
+ char *name;
+ char *type;
+ char *data;
+ CompActionCallBackProc initiate;
+ CompActionCallBackProc terminate;
+} CompMetadataOptionInfo;
+
+extern const CompMetadataOptionInfo
+coreDisplayOptionInfo[COMP_DISPLAY_OPTION_NUM];
+extern const CompMetadataOptionInfo
+coreScreenOptionInfo[COMP_SCREEN_OPTION_NUM];
+
+struct _CompMetadata {
+ char *path;
+ xmlDoc **doc;
+ int nDoc;
+};
+
+Bool
+compInitPluginMetadataFromInfo (CompMetadata *metadata,
+ const char *plugin,
+ const CompMetadataOptionInfo *displayOptionInfo,
+ int nDisplayOptionInfo,
+ const CompMetadataOptionInfo *screenOptionInfo,
+ int nScreenOptionInfo);
+
+Bool
+compInitScreenOptionFromMetadata (CompScreen *screen,
+ CompMetadata *metadata,
+ CompOption *option,
+ const char *name);
+
+void
+compFiniScreenOption (CompScreen *screen,
+ CompOption *option);
+
+Bool
+compInitScreenOptionsFromMetadata (CompScreen *screen,
+ CompMetadata *metadata,
+ const CompMetadataOptionInfo *info,
+ CompOption *option,
+ int n);
+
+void
+compFiniScreenOptions (CompScreen *screen,
+ CompOption *option,
+ int n);
+
+Bool
+compSetScreenOption (CompScreen *screen,
+ CompOption *option,
+ CompOptionValue *value);
+
+Bool
+compInitDisplayOptionFromMetadata (CompDisplay *display,
+ CompMetadata *metadata,
+ CompOption *option,
+ const char *name);
+
+void
+compFiniDisplayOption (CompDisplay *display,
+ CompOption *option);
+
+Bool
+compInitDisplayOptionsFromMetadata (CompDisplay *display,
+ CompMetadata *metadata,
+ const CompMetadataOptionInfo *info,
+ CompOption *option,
+ int n);
+
+void
+compFiniDisplayOptions (CompDisplay *display,
+ CompOption *option,
+ int n);
+
+Bool
+compSetDisplayOption (CompDisplay *display,
+ CompOption *option,
+ CompOptionValue *value);
+
+char *
+compGetShortPluginDescription (CompMetadata *metadata);
+
+char *
+compGetLongPluginDescription (CompMetadata *metadata);
+
+char *
+compGetShortScreenOptionDescription (CompMetadata *metadata,
+ CompOption *option);
+
+char *
+compGetLongScreenOptionDescription (CompMetadata *metadata,
+ CompOption *option);
+
+char *
+compGetShortDisplayOptionDescription (CompMetadata *metadata,
+ CompOption *option);
+
+char *
+compGetLongDisplayOptionDescription (CompMetadata *metadata,
+ CompOption *option);
+
+int
+compReadXmlChunkFromMetadataOptionInfo (const CompMetadataOptionInfo *info,
+ int *offset,
+ char *buffer,
+ int length);
+
+
+COMPIZ_END_DECLS
+
+#endif
diff --git a/include/compiz-cube.h b/include/compiz-cube.h
new file mode 100644
index 0000000..03568ac
--- /dev/null
+++ b/include/compiz-cube.h
@@ -0,0 +1,230 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _COMPIZ_CUBE_H
+#define _COMPIZ_CUBE_H
+
+#include <compiz-core.h>
+
+COMPIZ_BEGIN_DECLS
+
+#define CUBE_ABIVERSION 20080424
+
+typedef struct _CubeCore {
+ SetOptionForPluginProc setOptionForPlugin;
+} CubeCore;
+
+#define CUBE_MOMODE_AUTO 0
+#define CUBE_MOMODE_MULTI 1
+#define CUBE_MOMODE_ONE 2
+#define CUBE_MOMODE_LAST CUBE_MOMODE_ONE
+
+#define CUBE_DISPLAY_OPTION_ABI 0
+#define CUBE_DISPLAY_OPTION_INDEX 1
+#define CUBE_DISPLAY_OPTION_UNFOLD_KEY 2
+#define CUBE_DISPLAY_OPTION_NEXT_KEY 3
+#define CUBE_DISPLAY_OPTION_PREV_KEY 4
+#define CUBE_DISPLAY_OPTION_NUM 5
+
+typedef struct _CubeDisplay {
+ int screenPrivateIndex;
+
+ CompOption opt[CUBE_DISPLAY_OPTION_NUM];
+} CubeDisplay;
+
+#define CUBE_SCREEN_OPTION_COLOR 0
+#define CUBE_SCREEN_OPTION_IN 1
+#define CUBE_SCREEN_OPTION_SCALE_IMAGE 2
+#define CUBE_SCREEN_OPTION_IMAGES 3
+#define CUBE_SCREEN_OPTION_SKYDOME 4
+#define CUBE_SCREEN_OPTION_SKYDOME_IMG 5
+#define CUBE_SCREEN_OPTION_SKYDOME_ANIM 6
+#define CUBE_SCREEN_OPTION_SKYDOME_GRAD_START 7
+#define CUBE_SCREEN_OPTION_SKYDOME_GRAD_END 8
+#define CUBE_SCREEN_OPTION_ACCELERATION 9
+#define CUBE_SCREEN_OPTION_SPEED 10
+#define CUBE_SCREEN_OPTION_TIMESTEP 11
+#define CUBE_SCREEN_OPTION_MIPMAP 12
+#define CUBE_SCREEN_OPTION_ADJUST_IMAGE 13
+#define CUBE_SCREEN_OPTION_ACTIVE_OPACITY 14
+#define CUBE_SCREEN_OPTION_INACTIVE_OPACITY 15
+#define CUBE_SCREEN_OPTION_TRANSPARENT_MANUAL_ONLY 16
+#define CUBE_SCREEN_OPTION_MULTIOUTPUT_MODE 17
+#define CUBE_SCREEN_OPTION_NUM 18
+
+typedef enum _PaintOrder {
+ BTF = 0,
+ FTB
+} PaintOrder;
+
+typedef enum _RotationState {
+ RotationNone = 0,
+ RotationChange,
+ RotationManual
+} RotationState;
+
+typedef void (*CubeGetRotationProc) (CompScreen *s,
+ float *x,
+ float *v,
+ float *progress);
+
+typedef void (*CubeClearTargetOutputProc) (CompScreen *s,
+ float xRotate,
+ float vRotate);
+
+typedef void (*CubePaintTopProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size);
+
+typedef void (*CubePaintBottomProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size);
+
+typedef void (*CubePaintInsideProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size);
+
+typedef Bool (*CubeCheckOrientationProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ CompVector *points);
+
+typedef void (*CubePaintViewportProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask);
+
+typedef Bool (*CubeShouldPaintViewportProc) (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ PaintOrder order);
+
+typedef struct _CubeScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintScreenProc paintScreen;
+ PaintOutputProc paintOutput;
+ PaintTransformedOutputProc paintTransformedOutput;
+ EnableOutputClippingProc enableOutputClipping;
+ PaintWindowProc paintWindow;
+ ApplyScreenTransformProc applyScreenTransform;
+ OutputChangeNotifyProc outputChangeNotify;
+ InitWindowWalkerProc initWindowWalker;
+
+ CubeGetRotationProc getRotation;
+ CubeClearTargetOutputProc clearTargetOutput;
+ CubePaintTopProc paintTop;
+ CubePaintBottomProc paintBottom;
+ CubePaintInsideProc paintInside;
+ CubeCheckOrientationProc checkOrientation;
+ CubePaintViewportProc paintViewport;
+ CubeShouldPaintViewportProc shouldPaintViewport;
+
+ CompOption opt[CUBE_SCREEN_OPTION_NUM];
+
+ int invert;
+ int xRotations;
+ PaintOrder paintOrder;
+
+ RotationState rotationState;
+
+ Bool paintAllViewports;
+
+ GLfloat distance;
+ GLushort color[3];
+ GLfloat tc[12];
+
+ int grabIndex;
+
+ int srcOutput;
+
+ Bool unfolded;
+ GLfloat unfold, unfoldVelocity;
+
+ GLfloat *vertices;
+ int nVertices;
+
+ GLuint skyListId;
+
+ int pw, ph;
+ unsigned int skyW, skyH;
+ CompTexture texture, sky;
+
+ int imgCurFile;
+
+ int nOutput;
+ int output[64];
+ int outputMask[64];
+
+ Bool cleared[64];
+
+ Bool capsPainted[64];
+
+ Bool fullscreenOutput;
+
+ float outputXScale;
+ float outputYScale;
+ float outputXOffset;
+ float outputYOffset;
+
+ float desktopOpacity;
+ float toOpacity;
+ int lastOpacityIndex;
+
+ int moMode;
+ Bool recalcOutput;
+} CubeScreen;
+
+#define GET_CUBE_CORE(c) \
+ ((CubeCore *) (c)->base.privates[cubeCorePrivateIndex].ptr)
+
+#define CUBE_CORE(c) \
+ CubeCore *cc = GET_CUBE_CORE (c)
+
+#define GET_CUBE_DISPLAY(d) \
+ ((CubeDisplay *) (d)->base.privates[cubeDisplayPrivateIndex].ptr)
+
+#define CUBE_DISPLAY(d) \
+ CubeDisplay *cd = GET_CUBE_DISPLAY (d)
+
+#define GET_CUBE_SCREEN(s, cd) \
+ ((CubeScreen *) (s)->base.privates[(cd)->screenPrivateIndex].ptr)
+
+#define CUBE_SCREEN(s) \
+ CubeScreen *cs = GET_CUBE_SCREEN (s, GET_CUBE_DISPLAY (s->display))
+
+COMPIZ_END_DECLS
+
+#endif
diff --git a/include/compiz-plugin.h b/include/compiz-plugin.h
new file mode 100644
index 0000000..b8a30f6
--- /dev/null
+++ b/include/compiz-plugin.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _COMPIZ_PLUGIN_H
+#define _COMPIZ_PLUGIN_H
+
+#include <compiz.h>
+
+COMPIZ_BEGIN_DECLS
+
+typedef CompBool (*InitPluginProc) (CompPlugin *plugin);
+typedef void (*FiniPluginProc) (CompPlugin *plugin);
+
+typedef CompMetadata *(*GetMetadataProc) (CompPlugin *plugin);
+
+typedef CompBool (*InitPluginObjectProc) (CompPlugin *plugin,
+ CompObject *object);
+typedef void (*FiniPluginObjectProc) (CompPlugin *plugin,
+ CompObject *object);
+
+typedef CompOption *(*GetPluginObjectOptionsProc) (CompPlugin *plugin,
+ CompObject *object,
+ int *count);
+typedef CompBool (*SetPluginObjectOptionProc) (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value);
+
+typedef struct _CompPluginVTable {
+ const char *name;
+
+ GetMetadataProc getMetadata;
+
+ InitPluginProc init;
+ FiniPluginProc fini;
+
+ InitPluginObjectProc initObject;
+ FiniPluginObjectProc finiObject;
+
+ GetPluginObjectOptionsProc getObjectOptions;
+ SetPluginObjectOptionProc setObjectOption;
+} CompPluginVTable;
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void);
+
+COMPIZ_END_DECLS
+
+#endif
diff --git a/include/compiz-scale.h b/include/compiz-scale.h
new file mode 100644
index 0000000..603612f
--- /dev/null
+++ b/include/compiz-scale.h
@@ -0,0 +1,211 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _COMPIZ_SCALE_H
+#define _COMPIZ_SCALE_H
+
+#include <compiz-core.h>
+
+COMPIZ_BEGIN_DECLS
+
+#define SCALE_ABIVERSION 20081007
+
+#define SCALE_STATE_NONE 0
+#define SCALE_STATE_OUT 1
+#define SCALE_STATE_WAIT 2
+#define SCALE_STATE_IN 3
+
+#define SCALE_ICON_NONE 0
+#define SCALE_ICON_EMBLEM 1
+#define SCALE_ICON_BIG 2
+#define SCALE_ICON_LAST SCALE_ICON_BIG
+
+#define SCALE_MOMODE_CURRENT 0
+#define SCALE_MOMODE_ALL 1
+#define SCALE_MOMODE_LAST SCALE_MOMODE_ALL
+
+typedef struct _ScaleSlot {
+ int x1, y1, x2, y2;
+ int filled;
+ float scale;
+} ScaleSlot;
+
+typedef struct _SlotArea {
+ int nWindows;
+ XRectangle workArea;
+} SlotArea;
+
+#define SCALE_DISPLAY_OPTION_ABI 0
+#define SCALE_DISPLAY_OPTION_INDEX 1
+#define SCALE_DISPLAY_OPTION_INITIATE_EDGE 2
+#define SCALE_DISPLAY_OPTION_INITIATE_BUTTON 3
+#define SCALE_DISPLAY_OPTION_INITIATE_KEY 4
+#define SCALE_DISPLAY_OPTION_INITIATE_ALL_EDGE 5
+#define SCALE_DISPLAY_OPTION_INITIATE_ALL_BUTTON 6
+#define SCALE_DISPLAY_OPTION_INITIATE_ALL_KEY 7
+#define SCALE_DISPLAY_OPTION_INITIATE_GROUP_EDGE 8
+#define SCALE_DISPLAY_OPTION_INITIATE_GROUP_BUTTON 9
+#define SCALE_DISPLAY_OPTION_INITIATE_GROUP_KEY 10
+#define SCALE_DISPLAY_OPTION_INITIATE_OUTPUT_EDGE 11
+#define SCALE_DISPLAY_OPTION_INITIATE_OUTPUT_BUTTON 12
+#define SCALE_DISPLAY_OPTION_INITIATE_OUTPUT_KEY 13
+#define SCALE_DISPLAY_OPTION_SHOW_DESKTOP 14
+#define SCALE_DISPLAY_OPTION_RELAYOUT 15
+#define SCALE_DISPLAY_OPTION_KEY_BINDINGS_TOGGLE 16
+#define SCALE_DISPLAY_OPTION_BUTTON_BINDINGS_TOGGLE 17
+#define SCALE_DISPLAY_OPTION_NUM 18
+
+typedef struct _ScaleDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[SCALE_DISPLAY_OPTION_NUM];
+
+ unsigned int lastActiveNum;
+ Window lastActiveWindow;
+
+ Window selectedWindow;
+ Window hoveredWindow;
+ Window previousActiveWindow;
+
+ KeyCode leftKeyCode, rightKeyCode, upKeyCode, downKeyCode;
+} ScaleDisplay;
+
+#define SCALE_SCREEN_OPTION_SPACING 0
+#define SCALE_SCREEN_OPTION_SPEED 1
+#define SCALE_SCREEN_OPTION_TIMESTEP 2
+#define SCALE_SCREEN_OPTION_WINDOW_MATCH 3
+#define SCALE_SCREEN_OPTION_DARKEN_BACK 4
+#define SCALE_SCREEN_OPTION_OPACITY 5
+#define SCALE_SCREEN_OPTION_ICON 6
+#define SCALE_SCREEN_OPTION_HOVER_TIME 7
+#define SCALE_SCREEN_OPTION_MULTIOUTPUT_MODE 8
+#define SCALE_SCREEN_OPTION_NUM 9
+
+typedef enum {
+ ScaleTypeNormal = 0,
+ ScaleTypeOutput,
+ ScaleTypeGroup,
+ ScaleTypeAll
+} ScaleType;
+
+typedef Bool (*ScaleLayoutSlotsAndAssignWindowsProc) (CompScreen *s);
+
+typedef Bool (*ScaleSetScaledPaintAttributesProc) (CompWindow *w,
+ WindowPaintAttrib *attrib);
+
+typedef void (*ScalePaintDecorationProc) (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask);
+
+typedef void (*ScaleSelectWindowProc) (CompWindow *w);
+
+typedef struct _ScaleScreen {
+ int windowPrivateIndex;
+
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+
+ ScaleLayoutSlotsAndAssignWindowsProc layoutSlotsAndAssignWindows;
+ ScaleSetScaledPaintAttributesProc setScaledPaintAttributes;
+ ScalePaintDecorationProc scalePaintDecoration;
+ ScaleSelectWindowProc selectWindow;
+
+ CompOption opt[SCALE_SCREEN_OPTION_NUM];
+
+ Bool grab;
+ int grabIndex;
+
+ Window dndTarget;
+
+ CompTimeoutHandle hoverHandle;
+
+ int state;
+ int moreAdjust;
+
+ Cursor cursor;
+
+ ScaleSlot *slots;
+ int slotsSize;
+ int nSlots;
+
+ /* only used for sorting */
+ CompWindow **windows;
+ int windowsSize;
+ int nWindows;
+
+ GLushort opacity;
+
+ ScaleType type;
+
+ Window clientLeader;
+
+ CompMatch match;
+ CompMatch *currentMatch;
+} ScaleScreen;
+
+typedef struct _ScaleWindow {
+ ScaleSlot *slot;
+
+ int sid;
+ int distance;
+
+ GLfloat xVelocity, yVelocity, scaleVelocity;
+ GLfloat scale;
+ GLfloat tx, ty;
+ float delta;
+ Bool adjust;
+
+ float lastThumbOpacity;
+} ScaleWindow;
+
+#define GET_SCALE_DISPLAY(d) \
+ ((ScaleDisplay *) (d)->base.privates[scaleDisplayPrivateIndex].ptr)
+
+#define SCALE_DISPLAY(d) \
+ ScaleDisplay *sd = GET_SCALE_DISPLAY (d)
+
+#define GET_SCALE_SCREEN(s, sd) \
+ ((ScaleScreen *) (s)->base.privates[(sd)->screenPrivateIndex].ptr)
+
+#define SCALE_SCREEN(s) \
+ ScaleScreen *ss = GET_SCALE_SCREEN (s, GET_SCALE_DISPLAY (s->display))
+
+#define GET_SCALE_WINDOW(w, ss) \
+ ((ScaleWindow *) (w)->base.privates[(ss)->windowPrivateIndex].ptr)
+
+#define SCALE_WINDOW(w) \
+ ScaleWindow *sw = GET_SCALE_WINDOW (w, \
+ GET_SCALE_SCREEN (w->screen, \
+ GET_SCALE_DISPLAY (w->screen->display)))
+
+COMPIZ_END_DECLS
+
+#endif
diff --git a/include/compiz.h b/include/compiz.h
new file mode 100644
index 0000000..cc73797
--- /dev/null
+++ b/include/compiz.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _COMPIZ_H
+#define _COMPIZ_H
+
+#include <libxml/parser.h>
+
+#include <compiz-common.h>
+
+COMPIZ_BEGIN_DECLS
+
+typedef int CompBool;
+typedef int CompTimeoutHandle;
+typedef int CompWatchFdHandle;
+
+typedef union _CompOptionValue CompOptionValue;
+
+typedef struct _CompObject CompObject;
+typedef struct _CompCore CompCore;
+typedef struct _CompDisplay CompDisplay;
+typedef struct _CompMetadata CompMetadata;
+typedef struct _CompOption CompOption;
+typedef struct _CompPlugin CompPlugin;
+typedef struct _CompScreen CompScreen;
+typedef struct _CompWindow CompWindow;
+
+typedef CompBool (*CallBackProc) (void *closure);
+
+typedef enum {
+ CompOptionTypeBool,
+ CompOptionTypeInt,
+ CompOptionTypeFloat,
+ CompOptionTypeString,
+ CompOptionTypeColor,
+ CompOptionTypeAction,
+ CompOptionTypeKey,
+ CompOptionTypeButton,
+ CompOptionTypeEdge,
+ CompOptionTypeBell,
+ CompOptionTypeMatch,
+ CompOptionTypeList
+} CompOptionType;
+
+void
+compInitOptionValue (CompOptionValue *v);
+
+void
+compFiniOptionValue (CompOptionValue *v,
+ CompOptionType type);
+
+void
+compInitOption (CompOption *option);
+
+void
+compFiniOption (CompOption *option);
+
+CompOption *
+compFindOption (CompOption *option,
+ int nOption,
+ const char *name,
+ int *index);
+
+CompBool
+compSetBoolOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetIntOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetFloatOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetStringOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetColorOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetActionOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetMatchOption (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetOptionList (CompOption *option,
+ CompOptionValue *value);
+
+CompBool
+compSetOption (CompOption *option,
+ CompOptionValue *value);
+
+CompTimeoutHandle
+compAddTimeout (int minTime,
+ int maxTime,
+ CallBackProc callBack,
+ void *closure);
+
+void *
+compRemoveTimeout (CompTimeoutHandle handle);
+
+CompWatchFdHandle
+compAddWatchFd (int fd,
+ short int events,
+ CallBackProc callBack,
+ void *closure);
+
+void
+compRemoveWatchFd (CompWatchFdHandle handle);
+
+short int
+compWatchFdEvents (CompWatchFdHandle handle);
+
+CompBool
+compInitMetadata (CompMetadata *metadata);
+
+CompBool
+compInitPluginMetadata (CompMetadata *metadata,
+ const char *plugin);
+
+void
+compFiniMetadata (CompMetadata *metadata);
+
+CompBool
+compAddMetadataFromFile (CompMetadata *metadata,
+ const char *file);
+
+CompBool
+compAddMetadataFromString (CompMetadata *metadata,
+ const char *string);
+
+CompBool
+compAddMetadataFromIO (CompMetadata *metadata,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx);
+
+char *
+compGetStringFromMetadataPath (CompMetadata *metadata,
+ const char *path);
+
+int
+compReadXmlChunk (const char *src,
+ int *offset,
+ char *buffer,
+ int length);
+
+
+COMPIZ_END_DECLS
+
+#endif
diff --git a/include/decoration.h b/include/decoration.h
new file mode 100644
index 0000000..5eed043
--- /dev/null
+++ b/include/decoration.h
@@ -0,0 +1,399 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _DECORATION_H
+#define _DECORATION_H
+
+#include <string.h>
+#include <limits.h>
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrender.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DECOR_SUPPORTING_DM_CHECK_ATOM_NAME "_COMPIZ_SUPPORTING_DM_CHECK"
+#define DECOR_BARE_ATOM_NAME "_COMPIZ_WINDOW_DECOR_BARE"
+#define DECOR_NORMAL_ATOM_NAME "_COMPIZ_WINDOW_DECOR_NORMAL"
+#define DECOR_ACTIVE_ATOM_NAME "_COMPIZ_WINDOW_DECOR_ACTIVE"
+#define DECOR_WINDOW_ATOM_NAME "_COMPIZ_WINDOW_DECOR"
+#define DECOR_BLUR_ATOM_NAME "_COMPIZ_WM_WINDOW_BLUR_DECOR"
+#define DECOR_SWITCH_WINDOW_ATOM_NAME "_COMPIZ_SWITCH_SELECT_WINDOW"
+#define DECOR_SWITCH_FOREGROUND_COLOR_ATOM_NAME "_COMPIZ_SWITCH_FOREGROUND_COLOR"
+
+#define GRAVITY_WEST (1 << 0)
+#define GRAVITY_EAST (1 << 1)
+#define GRAVITY_NORTH (1 << 2)
+#define GRAVITY_SOUTH (1 << 3)
+
+#define ALIGN_LEFT (0)
+#define ALIGN_RIGHT (1 << 0)
+#define ALIGN_TOP (0)
+#define ALIGN_BOTTOM (1 << 1)
+
+#define CLAMP_HORZ (1 << 0)
+#define CLAMP_VERT (1 << 1)
+
+#define STRETCH_X (1 << 0)
+#define STRETCH_Y (1 << 1)
+
+#define XX_MASK (1 << 16)
+#define XY_MASK (1 << 17)
+#define YX_MASK (1 << 18)
+#define YY_MASK (1 << 19)
+
+#define PAD_TOP (1 << 0)
+#define PAD_BOTTOM (1 << 1)
+#define PAD_LEFT (1 << 2)
+#define PAD_RIGHT (1 << 3)
+
+#define BORDER_TOP 0
+#define BORDER_BOTTOM 1
+#define BORDER_LEFT 2
+#define BORDER_RIGHT 3
+
+typedef struct _decor_point {
+ int x;
+ int y;
+ int gravity;
+} decor_point_t;
+
+typedef struct _decor_matrix {
+ double xx; double yx;
+ double xy; double yy;
+ double x0; double y0;
+} decor_matrix_t;
+
+typedef struct _decor_quad {
+ decor_point_t p1;
+ decor_point_t p2;
+ int max_width;
+ int max_height;
+ int align;
+ int clamp;
+ int stretch;
+ decor_matrix_t m;
+} decor_quad_t;
+
+typedef struct _decor_extents {
+ int left;
+ int right;
+ int top;
+ int bottom;
+} decor_extents_t;
+
+typedef struct _decor_context {
+ decor_extents_t extents;
+
+ int left_space;
+ int right_space;
+ int top_space;
+ int bottom_space;
+
+ int left_corner_space;
+ int right_corner_space;
+ int top_corner_space;
+ int bottom_corner_space;
+} decor_context_t;
+
+typedef struct _decor_box {
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+
+ int pad;
+} decor_box_t;
+
+typedef struct _decor_layout {
+ int width;
+ int height;
+
+ decor_box_t left;
+ decor_box_t right;
+ decor_box_t top;
+ decor_box_t bottom;
+
+ int rotation;
+} decor_layout_t;
+
+typedef struct _decor_shadow_options {
+ double shadow_radius;
+ double shadow_opacity;
+ unsigned short shadow_color[3];
+ int shadow_offset_x;
+ int shadow_offset_y;
+} decor_shadow_options_t;
+
+typedef struct _decor_shadow {
+ int ref_count;
+ Pixmap pixmap;
+ Picture picture;
+ int width;
+ int height;
+} decor_shadow_t;
+
+typedef void (*decor_draw_func_t) (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *context,
+ void *closure);
+
+#define BASE_PROP_SIZE 12
+#define QUAD_PROP_SIZE 9
+#define N_QUADS_MAX 24
+
+int
+decor_version (void);
+
+void
+decor_quads_to_property (long *data,
+ Pixmap pixmap,
+ decor_extents_t *input,
+ decor_extents_t *max_input,
+ int min_width,
+ int min_height,
+ decor_quad_t *quad,
+ int nQuad);
+
+int
+decor_property_get_version (long *data);
+
+int
+decor_property_to_quads (long *data,
+ int size,
+ Pixmap *pixmap,
+ decor_extents_t *input,
+ decor_extents_t *max_input,
+ int *min_width,
+ int *min_height,
+ decor_quad_t *quad);
+
+void
+decor_region_to_blur_property (long *data,
+ int threshold,
+ int filter,
+ int width,
+ int height,
+ Region topRegion,
+ int topOffset,
+ Region bottomRegion,
+ int bottomOffset,
+ Region leftRegion,
+ int leftOffset,
+ Region rightRegion,
+ int rightOffset);
+
+void
+decor_apply_gravity (int gravity,
+ int x,
+ int y,
+ int width,
+ int height,
+ int *return_x,
+ int *return_y);
+
+int
+decor_set_vert_quad_row (decor_quad_t *q,
+ int top,
+ int top_corner,
+ int bottom,
+ int bottom_corner,
+ int left,
+ int right,
+ int gravity,
+ int height,
+ int splitY,
+ int splitGravity,
+ double x0,
+ double y0,
+ int rotation);
+
+int
+decor_set_horz_quad_line (decor_quad_t *q,
+ int left,
+ int left_corner,
+ int right,
+ int right_corner,
+ int top,
+ int bottom,
+ int gravity,
+ int width,
+ int splitX,
+ int splitGravity,
+ double x0,
+ double y0);
+
+int
+decor_set_lSrS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l);
+
+int
+decor_set_lSrStSbS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l);
+
+int
+decor_set_lSrStXbS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int top_stretch_offset);
+
+int
+decor_set_lSrStSbX_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int bottom_stretch_offset);
+
+int
+decor_set_lXrXtXbX_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int left_stretch_offset,
+ int right_stretch_offset,
+ int top_stretch_offset,
+ int bottom_stretch_offset);
+
+decor_shadow_t *
+decor_shadow_create (Display *xdisplay,
+ Screen *screen,
+ int width,
+ int height,
+ int left,
+ int right,
+ int top,
+ int bottom,
+ int solid_left,
+ int solid_right,
+ int solid_top,
+ int solid_bottom,
+ decor_shadow_options_t *opt,
+ decor_context_t *context,
+ decor_draw_func_t draw,
+ void *closure);
+
+void
+decor_shadow_destroy (Display *xdisplay,
+ decor_shadow_t *shadow);
+
+void
+decor_shadow_reference (decor_shadow_t *shadow);
+
+void
+decor_shadow (Display *xdisplay,
+ decor_shadow_t *shadow);
+
+void
+decor_draw_simple (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *c,
+ void *closure);
+
+void
+decor_get_default_layout (decor_context_t *c,
+ int width,
+ int height,
+ decor_layout_t *layout);
+
+void
+decor_get_best_layout (decor_context_t *c,
+ int width,
+ int height,
+ decor_layout_t *layout);
+
+void
+decor_fill_picture_extents_with_shadow (Display *xdisplay,
+ decor_shadow_t *shadow,
+ decor_context_t *context,
+ Picture picture,
+ decor_layout_t *layout);
+
+void
+decor_blend_transform_picture (Display *xdisplay,
+ decor_context_t *context,
+ Picture src,
+ int xSrc,
+ int ySrc,
+ Picture dst,
+ decor_layout_t *layout,
+ Region region,
+ unsigned short alpha,
+ int shade_alpha);
+
+void
+decor_blend_border_picture (Display *xdisplay,
+ decor_context_t *context,
+ Picture src,
+ int xSrc,
+ int ySrc,
+ Picture dst,
+ decor_layout_t *layout,
+ unsigned int border,
+ Region region,
+ unsigned short alpha,
+ int shade_alpha,
+ int ignore_src_alpha);
+
+#define DECOR_ACQUIRE_STATUS_SUCCESS 0
+#define DECOR_ACQUIRE_STATUS_FAILED 1
+#define DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING 2
+
+int
+decor_acquire_dm_session (Display *xdisplay,
+ int screen,
+ const char *name,
+ int replace_current_dm,
+ Time *timestamp);
+
+void
+decor_set_dm_check_hint (Display *xdisplay,
+ int screen);
+
+#define DECOR_SELECTION_KEEP 0
+#define DECOR_SELECTION_GIVE_UP 1
+
+int
+decor_handle_selection_clear (Display *xdisplay,
+ XEvent *xevent,
+ int screen);
+
+void
+decor_handle_selection_request (Display *xdisplay,
+ XEvent *event,
+ Time dm_sn_timestamp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..a5897de
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,519 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2006-12-25.00
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/intltool-extract.in b/intltool-extract.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/intltool-extract.in
diff --git a/intltool-merge.in b/intltool-merge.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/intltool-merge.in
diff --git a/intltool-update.in b/intltool-update.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/intltool-update.in
diff --git a/kde/Makefile.am b/kde/Makefile.am
new file mode 100644
index 0000000..d5ad5dc
--- /dev/null
+++ b/kde/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = window-decorator window-decorator-kde4
diff --git a/kde/Makefile.in b/kde/Makefile.in
new file mode 100644
index 0000000..fda7c4c
--- /dev/null
+++ b/kde/Makefile.in
@@ -0,0 +1,591 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = kde
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+SUBDIRS = window-decorator window-decorator-kde4
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu kde/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu kde/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/kde/window-decorator-kde4/Makefile.am b/kde/window-decorator-kde4/Makefile.am
new file mode 100644
index 0000000..3062897
--- /dev/null
+++ b/kde/window-decorator-kde4/Makefile.am
@@ -0,0 +1,55 @@
+if USE_KDE4
+
+BUILDSOURCES = \
+ decorator.moc.cpp \
+ window.moc.cpp \
+ kwinadaptor.moc.cpp \
+ kwinadaptor.cpp \
+ kwinadaptor.h
+
+kde4_window_decorator_DEPENDENCIES = \
+ $(top_builddir)/libdecoration/libdecoration.la
+kde4_window_decorator_LDADD = \
+ $(top_builddir)/libdecoration/libdecoration.la \
+ @KDE4_WINDOW_DECORATOR_LIBS@ @KDE4_LIBS@
+
+nodist_kde4_window_decorator_SOURCES = \
+ $(BUILDSOURCES)
+
+dist_kde4_window_decorator_SOURCES = \
+ main.cpp \
+ utils.cpp \
+ utils.h \
+ decorator.cpp \
+ decorator.h \
+ window.cpp \
+ window.h \
+ options.cpp \
+ options.h \
+ kdecoration_plugins.cpp \
+ kdecoration_plugins.h \
+ switcher.cpp \
+ switcher.h \
+ org.kde.KWin.xml
+
+kde4_window_decorator_program = kde4-window-decorator
+
+INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include @KDE4_WINDOW_DECORATOR_CFLAGS@ @KDE4_CFLAGS@
+
+bin_PROGRAMS = $(kde4_window_decorator_program)
+
+%.moc.cpp: %.h
+ $(QT4_MOC) $< > $@
+
+kwinadaptor.h: kwinadaptor.cpp
+
+kwinadaptor.cpp: org.kde.KWin.xml
+ $(QDBUSXML2CPP) -a kwinadaptor -i decorator.h -l KWD::Decorator $<
+
+# make sure kwinadaptor.h is built before any of the dist_SOURCES uses it
+main.cpp: kwinadaptor.h
+
+CLEANFILES = $(BUILDSOURCES)
+EXTRA_DIST = org.kde.KWin.xml
+
+endif
diff --git a/kde/window-decorator-kde4/Makefile.in b/kde/window-decorator-kde4/Makefile.in
new file mode 100644
index 0000000..779c03d
--- /dev/null
+++ b/kde/window-decorator-kde4/Makefile.in
@@ -0,0 +1,649 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@USE_KDE4_TRUE@bin_PROGRAMS = $(am__EXEEXT_1)
+subdir = kde/window-decorator-kde4
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+@USE_KDE4_TRUE@am__EXEEXT_1 = kde4-window-decorator$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am__dist_kde4_window_decorator_SOURCES_DIST = main.cpp utils.cpp \
+ utils.h decorator.cpp decorator.h window.cpp window.h \
+ options.cpp options.h kdecoration_plugins.cpp \
+ kdecoration_plugins.h switcher.cpp switcher.h org.kde.KWin.xml
+@USE_KDE4_TRUE@dist_kde4_window_decorator_OBJECTS = main.$(OBJEXT) \
+@USE_KDE4_TRUE@ utils.$(OBJEXT) decorator.$(OBJEXT) \
+@USE_KDE4_TRUE@ window.$(OBJEXT) options.$(OBJEXT) \
+@USE_KDE4_TRUE@ kdecoration_plugins.$(OBJEXT) \
+@USE_KDE4_TRUE@ switcher.$(OBJEXT)
+@USE_KDE4_TRUE@am__objects_1 = decorator.moc.$(OBJEXT) \
+@USE_KDE4_TRUE@ window.moc.$(OBJEXT) kwinadaptor.moc.$(OBJEXT) \
+@USE_KDE4_TRUE@ kwinadaptor.$(OBJEXT)
+@USE_KDE4_TRUE@nodist_kde4_window_decorator_OBJECTS = \
+@USE_KDE4_TRUE@ $(am__objects_1)
+kde4_window_decorator_OBJECTS = $(dist_kde4_window_decorator_OBJECTS) \
+ $(nodist_kde4_window_decorator_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_kde4_window_decorator_SOURCES) \
+ $(nodist_kde4_window_decorator_SOURCES)
+DIST_SOURCES = $(am__dist_kde4_window_decorator_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+@USE_KDE4_TRUE@BUILDSOURCES = \
+@USE_KDE4_TRUE@ decorator.moc.cpp \
+@USE_KDE4_TRUE@ window.moc.cpp \
+@USE_KDE4_TRUE@ kwinadaptor.moc.cpp \
+@USE_KDE4_TRUE@ kwinadaptor.cpp \
+@USE_KDE4_TRUE@ kwinadaptor.h
+
+@USE_KDE4_TRUE@kde4_window_decorator_DEPENDENCIES = \
+@USE_KDE4_TRUE@ $(top_builddir)/libdecoration/libdecoration.la
+
+@USE_KDE4_TRUE@kde4_window_decorator_LDADD = \
+@USE_KDE4_TRUE@ $(top_builddir)/libdecoration/libdecoration.la \
+@USE_KDE4_TRUE@ @KDE4_WINDOW_DECORATOR_LIBS@ @KDE4_LIBS@
+
+@USE_KDE4_TRUE@nodist_kde4_window_decorator_SOURCES = \
+@USE_KDE4_TRUE@ $(BUILDSOURCES)
+
+@USE_KDE4_TRUE@dist_kde4_window_decorator_SOURCES = \
+@USE_KDE4_TRUE@ main.cpp \
+@USE_KDE4_TRUE@ utils.cpp \
+@USE_KDE4_TRUE@ utils.h \
+@USE_KDE4_TRUE@ decorator.cpp \
+@USE_KDE4_TRUE@ decorator.h \
+@USE_KDE4_TRUE@ window.cpp \
+@USE_KDE4_TRUE@ window.h \
+@USE_KDE4_TRUE@ options.cpp \
+@USE_KDE4_TRUE@ options.h \
+@USE_KDE4_TRUE@ kdecoration_plugins.cpp \
+@USE_KDE4_TRUE@ kdecoration_plugins.h \
+@USE_KDE4_TRUE@ switcher.cpp \
+@USE_KDE4_TRUE@ switcher.h \
+@USE_KDE4_TRUE@ org.kde.KWin.xml
+
+@USE_KDE4_TRUE@kde4_window_decorator_program = kde4-window-decorator
+@USE_KDE4_TRUE@INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include @KDE4_WINDOW_DECORATOR_CFLAGS@ @KDE4_CFLAGS@
+@USE_KDE4_TRUE@CLEANFILES = $(BUILDSOURCES)
+@USE_KDE4_TRUE@EXTRA_DIST = org.kde.KWin.xml
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu kde/window-decorator-kde4/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu kde/window-decorator-kde4/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+kde4-window-decorator$(EXEEXT): $(kde4_window_decorator_OBJECTS) $(kde4_window_decorator_DEPENDENCIES)
+ @rm -f kde4-window-decorator$(EXEEXT)
+ $(CXXLINK) $(kde4_window_decorator_OBJECTS) $(kde4_window_decorator_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decorator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decorator.moc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdecoration_plugins.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwinadaptor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwinadaptor.moc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switcher.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.moc.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+@USE_KDE4_TRUE@%.moc.cpp: %.h
+@USE_KDE4_TRUE@ $(QT4_MOC) $< > $@
+
+@USE_KDE4_TRUE@kwinadaptor.h: kwinadaptor.cpp
+
+@USE_KDE4_TRUE@kwinadaptor.cpp: org.kde.KWin.xml
+@USE_KDE4_TRUE@ $(QDBUSXML2CPP) -a kwinadaptor -i decorator.h -l KWD::Decorator $<
+
+# make sure kwinadaptor.h is built before any of the dist_SOURCES uses it
+@USE_KDE4_TRUE@main.cpp: kwinadaptor.h
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/kde/window-decorator-kde4/decorator.cpp b/kde/window-decorator-kde4/decorator.cpp
new file mode 100644
index 0000000..17f71ae
--- /dev/null
+++ b/kde/window-decorator-kde4/decorator.cpp
@@ -0,0 +1,1004 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <KDE/KCmdLineArgs>
+#include <KDE/KConfig>
+#include <KDE/KConfigGroup>
+#include <KDE/KGlobal>
+#include <kwindowsystem.h>
+#include <KDE/KLocale>
+#include <KDE/Plasma/Theme>
+#include <kcommondecoration.h>
+#include <kwindowsystem.h>
+
+#include <QPoint>
+#include <QList>
+#include <QX11Info>
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xcomposite.h>
+
+#include "decorator.h"
+#include "options.h"
+#include "utils.h"
+
+#include "kwinadaptor.h"
+
+#include <stdio.h>
+
+#define SHADOW_RADIUS 8.0
+#define SHADOW_OPACITY 0.5
+#define SHADOW_OFFSET_X 1
+#define SHADOW_OFFSET_Y 1
+#define SHADOW_COLOR_RED 0x0000
+#define SHADOW_COLOR_GREEN 0x0000
+#define SHADOW_COLOR_BLUE 0x0000
+
+#define DBUS_DEST "org.freedesktop.compiz"
+#define DBUS_SIGNAL_PATH "/org/freedesktop/compiz/decoration/display"
+#define DBUS_QUERY_PATH "/org/freedesktop/compiz/decoration/allscreens"
+#define DBUS_INTERFACE "org.freedesktop.compiz"
+#define DBUS_METHOD_GET "get"
+#define DBUS_SIGNAL_CHANGED "changed"
+
+double decorationOpacity = 0.75;
+bool decorationOpacityShade = false;
+double activeDecorationOpacity = 1.0;
+bool activeDecorationOpacityShade = false;
+int blurType = BLUR_TYPE_NONE;
+
+decor_context_t KWD::Decorator::mDefaultContext;
+decor_extents_t KWD::Decorator::mDefaultBorder;
+decor_shadow_t *KWD::Decorator::mNoBorderShadow = 0;
+decor_shadow_t *KWD::Decorator::mDefaultShadow = 0;
+KWD::PluginManager *KWD::Decorator::mPlugins = 0;
+KWD::Options *KWD::Decorator::mOptions = 0;
+NETRootInfo *KWD::Decorator::mRootInfo;
+WId KWD::Decorator::mActiveId;
+decor_shadow_options_t KWD::Decorator::mShadowOptions;
+
+struct _cursor cursors[3][3] = {
+ { C (top_left_corner), C (top_side), C (top_right_corner) },
+ { C (left_side), C (left_ptr), C (right_side) },
+ { C (bottom_left_corner), C (bottom_side), C (bottom_right_corner) }
+};
+
+KWD::PluginManager::PluginManager (KSharedConfigPtr config):
+ KWD::KDecorationPlugins (config)
+{
+ defaultPlugin = (QPixmap::defaultDepth() > 8) ?
+ "kwin3_oxygen" : "kwin3_plastik";
+}
+
+
+KWD::Decorator::Decorator (Display* display,
+ Qt::HANDLE visual,
+ Qt::HANDLE colormap) :
+ KApplication (display, visual, colormap),
+ mConfig (0),
+ mCompositeWindow (0),
+ mSwitcher (0)
+{
+ XSetWindowAttributes attr;
+ int i, j;
+ QDBusConnection dbus = QDBusConnection::sessionBus();
+
+ mRootInfo = new NETRootInfo (QX11Info::display(), 0);
+
+ mActiveId = 0;
+
+ KConfigGroup cfg (KSharedConfig::openConfig("plasmarc"), QString("Theme"));
+ Plasma::Theme::defaultTheme ()->setThemeName (cfg.readEntry ("name"));
+
+ Atoms::init ();
+
+ (void *) new KWinAdaptor (this);
+ dbus.registerObject ("/KWin", this);
+ dbus.connect (QString (), "/KWin", "org.kde.KWin", "reloadConfig", this,
+ SLOT (reconfigure ()));
+
+ dbus.connect (QString (), DBUS_SIGNAL_PATH "/shadow_radius",
+ DBUS_INTERFACE, DBUS_SIGNAL_CHANGED, this,
+ SLOT (shadowRadiusChanged (double)));
+
+ dbus.connect (QString (), DBUS_SIGNAL_PATH "/shadow_opacity",
+ DBUS_INTERFACE, DBUS_SIGNAL_CHANGED, this,
+ SLOT (shadowOpacityChanged (double)));
+
+ dbus.connect (QString (), DBUS_SIGNAL_PATH "/shadow_x_offset",
+ DBUS_INTERFACE, DBUS_SIGNAL_CHANGED, this,
+ SLOT (shadowXOffsetChanged (int)));
+
+ dbus.connect (QString (), DBUS_SIGNAL_PATH "/shadow_y_offset",
+ DBUS_INTERFACE, DBUS_SIGNAL_CHANGED, this,
+ SLOT (shadowYOffsetChanged (int)));
+
+ dbus.connect (QString (), DBUS_SIGNAL_PATH "/shadow_color",
+ DBUS_INTERFACE, DBUS_SIGNAL_CHANGED, this,
+ SLOT (shadowColorChanged (QString)));
+
+ mConfig = new KConfig ("kwinrc");
+
+ mOptions = new KWD::Options (mConfig);
+ mPlugins = new PluginManager (KSharedConfig::openConfig("kwinrc"));
+
+ mShadowOptions.shadow_radius = SHADOW_RADIUS;
+ mShadowOptions.shadow_opacity = SHADOW_OPACITY;
+ mShadowOptions.shadow_offset_x = SHADOW_OFFSET_X;
+ mShadowOptions.shadow_offset_y = SHADOW_OFFSET_Y;
+ mShadowOptions.shadow_color[0] = SHADOW_COLOR_RED;
+ mShadowOptions.shadow_color[1] = SHADOW_COLOR_GREEN;
+ mShadowOptions.shadow_color[2] = SHADOW_COLOR_BLUE;
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ if (cursors[i][j].shape != XC_left_ptr)
+ cursors[i][j].cursor =
+ XCreateFontCursor (QX11Info::display(), cursors[i][j].shape);
+ }
+ }
+
+ attr.override_redirect = True;
+
+ mCompositeWindow = XCreateWindow (QX11Info::display(), QX11Info::appRootWindow(),
+ -ROOT_OFF_X, -ROOT_OFF_Y, 1, 1, 0,
+ CopyFromParent,
+ CopyFromParent,
+ CopyFromParent,
+ CWOverrideRedirect, &attr);
+
+ XCompositeRedirectSubwindows (QX11Info::display(), mCompositeWindow,
+ CompositeRedirectManual);
+
+ XMapWindow (QX11Info::display(), mCompositeWindow);
+}
+
+KWD::Decorator::~Decorator (void)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ for (it = mClients.begin (); it != mClients.end (); it++)
+ delete (*it);
+
+ if (mDecorNormal)
+ delete mDecorNormal;
+
+ if (mDecorActive)
+ delete mDecorActive;
+
+ if (mSwitcher)
+ delete mSwitcher;
+
+ XDestroyWindow (QX11Info::display(), mCompositeWindow);
+
+ delete mOptions;
+ delete mPlugins;
+ delete mConfig;
+ delete mRootInfo;
+}
+
+bool
+KWD::Decorator::enableDecorations (Time timestamp,
+ int damageEvent)
+{
+ QList <WId>::ConstIterator it;
+
+ mDmSnTimestamp = timestamp;
+ mDamageEvent = damageEvent;
+
+ if (!pluginManager ()->loadPlugin (""))
+ return false;
+
+ updateAllShadowOptions ();
+
+ KWD::trapXError ();
+ (void) QApplication::desktop (); // trigger creation of desktop widget
+ KWD::popXError ();
+
+ updateShadow ();
+
+ mDecorNormal = new KWD::Window (mCompositeWindow, QX11Info::appRootWindow(),
+ 0, Window::Default);
+ mDecorActive = new KWD::Window (mCompositeWindow, QX11Info::appRootWindow(),
+ 0, Window::DefaultActive);
+
+ mActiveId = KWindowSystem::activeWindow ();
+
+ connect (KWindowSystem::self (), SIGNAL (windowAdded (WId)),
+ SLOT (handleWindowAdded (WId)));
+ connect (KWindowSystem::self (), SIGNAL (windowRemoved (WId)),
+ SLOT (handleWindowRemoved (WId)));
+ connect (KWindowSystem::self (), SIGNAL (activeWindowChanged (WId)),
+ SLOT (handleActiveWindowChanged (WId)));
+ connect (KWindowSystem::self (),
+ SIGNAL (windowChanged (WId, const unsigned long *)),
+ SLOT (handleWindowChanged (WId, const unsigned long *)));
+
+ foreach (WId id, KWindowSystem::windows ())
+ handleWindowAdded (id);
+
+ connect (&mIdleTimer, SIGNAL (timeout ()), SLOT (processDamage ()));
+
+ connect (Plasma::Theme::defaultTheme (), SIGNAL (themeChanged ()),
+ SLOT (plasmaThemeChanged ()));
+
+ // select for client messages
+ XSelectInput (QX11Info::display(), QX11Info::appRootWindow(),
+ StructureNotifyMask | PropertyChangeMask);
+
+ return true;
+}
+
+void
+KWD::Decorator::updateDefaultShadow (KWD::Window *w)
+{
+ bool uniqueHorzShape, uniqueVertShape;
+
+ if (mDefaultShadow)
+ {
+ decor_shadow_destroy (QX11Info::display(), mDefaultShadow);
+ mDefaultShadow = NULL;
+ }
+
+ w->getShapeInfo (&uniqueHorzShape, &uniqueVertShape);
+
+ /* only return shadow if decoration doesn't use a unique shape */
+ if (uniqueHorzShape || uniqueVertShape)
+ return;
+
+ mDefaultContext = *w->context ();
+ mDefaultBorder = *w->border ();
+ mDefaultShadow = w->shadow ();
+
+ if (mDefaultShadow)
+ decor_shadow_reference (mDefaultShadow);
+}
+
+void
+KWD::Decorator::updateAllShadowOptions (void)
+{
+ QDBusInterface *compiz;
+ QDBusReply<QString> stringReply;
+ QDBusReply<double> doubleReply;
+ QDBusReply<int> intReply;
+ int c[4];
+
+ compiz = new QDBusInterface (DBUS_DEST, DBUS_QUERY_PATH "/shadow_radius",
+ DBUS_INTERFACE);
+ doubleReply = compiz->call (DBUS_METHOD_GET);
+ delete compiz;
+
+ if (doubleReply.isValid ())
+ mShadowOptions.shadow_radius = doubleReply.value ();
+
+ compiz = new QDBusInterface (DBUS_DEST, DBUS_QUERY_PATH "/shadow_opacity",
+ DBUS_INTERFACE);
+ doubleReply = compiz->call (DBUS_METHOD_GET);
+ delete compiz;
+
+ if (doubleReply.isValid ())
+ mShadowOptions.shadow_opacity = doubleReply.value ();
+
+ compiz = new QDBusInterface (DBUS_DEST, DBUS_QUERY_PATH "/shadow_x_offset",
+ DBUS_INTERFACE);
+ intReply = compiz->call (DBUS_METHOD_GET);
+ delete compiz;
+
+ if (intReply.isValid ())
+ mShadowOptions.shadow_offset_x = intReply.value ();
+
+ compiz = new QDBusInterface (DBUS_DEST, DBUS_QUERY_PATH "/shadow_y_offset",
+ DBUS_INTERFACE);
+ intReply = compiz->call (DBUS_METHOD_GET);
+ delete compiz;
+
+ if (intReply.isValid ())
+ mShadowOptions.shadow_offset_y = intReply.value ();
+ else
+ mShadowOptions.shadow_offset_y = SHADOW_OFFSET_Y;
+
+ compiz = new QDBusInterface (DBUS_DEST, DBUS_QUERY_PATH "/shadow_color",
+ DBUS_INTERFACE);
+ stringReply = compiz->call (DBUS_METHOD_GET);
+ delete compiz;
+
+ if (stringReply.isValid () &&
+ sscanf (stringReply.value ().toAscii ().data (), "#%2x%2x%2x%2x",
+ &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ mShadowOptions.shadow_color[0] = c[0] << 8 | c[0];
+ mShadowOptions.shadow_color[1] = c[1] << 8 | c[1];
+ mShadowOptions.shadow_color[2] = c[2] << 8 | c[2];
+ }
+}
+
+void
+KWD::Decorator::changeShadowOptions (decor_shadow_options_t *opt)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ if (!memcmp (opt, &mShadowOptions, sizeof (decor_shadow_options_t)))
+ return;
+
+ mShadowOptions = *opt;
+
+ updateShadow ();
+
+ mDecorNormal->reloadDecoration ();
+ mDecorActive->reloadDecoration ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.value ()->reloadDecoration ();
+}
+
+void
+KWD::Decorator::updateShadow (void)
+{
+ Display *xdisplay = QX11Info::display();
+ Screen *xscreen;
+ decor_context_t context;
+
+ xscreen = ScreenOfDisplay (xdisplay, QX11Info::appScreen ());
+
+ if (mDefaultShadow)
+ {
+ decor_shadow_destroy (xdisplay, mDefaultShadow);
+ mDefaultShadow = NULL;
+ }
+
+ if (mNoBorderShadow)
+ decor_shadow_destroy (xdisplay, mNoBorderShadow);
+
+ mNoBorderShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ 1, 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0, 0, 0,
+ &mShadowOptions,
+ &context,
+ decor_draw_simple,
+ 0);
+
+ if (mNoBorderShadow)
+ {
+ decor_extents_t extents = { 0, 0, 0, 0 };
+ long data[256];
+ decor_quad_t quads[N_QUADS_MAX];
+ int nQuad;
+ decor_layout_t layout;
+
+ decor_get_default_layout (&context, 1, 1, &layout);
+
+ nQuad = decor_set_lSrStSbS_window_quads (quads, &context, &layout);
+
+ decor_quads_to_property (data, mNoBorderShadow->pixmap,
+ &extents, &extents,
+ 0, 0, quads, nQuad);
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display(), QX11Info::appRootWindow(),
+ Atoms::netWindowDecorBare,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ KWD::popXError ();
+ }
+}
+
+void
+KWD::Decorator::processDamage (void)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ mDecorNormal->processDamage ();
+ mDecorActive->processDamage ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.value ()->processDamage ();
+}
+
+bool
+KWD::Decorator::x11EventFilter (XEvent *xevent)
+{
+ KWD::Window *client;
+ int status;
+
+ switch (xevent->type) {
+ case MapNotify: {
+ XMapEvent *xme = reinterpret_cast <XMapEvent *> (xevent);
+
+ if (mWindows.contains (xme->window))
+ client = mWindows[xme->window];
+ else if (mDecorNormal->winId () == xme->window)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xme->window)
+ client = mDecorActive;
+ else
+ break;
+
+ if (client->handleMap ())
+ {
+ if (!mIdleTimer.isActive ())
+ {
+ mIdleTimer.setSingleShot (true);
+ mIdleTimer.start (0);
+ }
+ }
+ } break;
+ case ConfigureNotify: {
+ XConfigureEvent *xce = reinterpret_cast <XConfigureEvent *> (xevent);
+
+ if (mFrames.contains (xce->window))
+ mFrames[xce->window]->updateFrame (xce->window);
+
+ if (mWindows.contains (xce->window))
+ client = mWindows[xce->window];
+ else if (mDecorNormal->winId () == xce->window)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xce->window)
+ client = mDecorActive;
+ else
+ break;
+
+ if (client->handleConfigure (QSize (xce->width, xce->height)))
+ {
+ if (!mIdleTimer.isActive ())
+ {
+ mIdleTimer.setSingleShot (true);
+ mIdleTimer.start (0);
+ }
+ }
+ } break;
+ case SelectionRequest:
+ decor_handle_selection_request (QX11Info::display(), xevent, mDmSnTimestamp);
+ break;
+ case SelectionClear:
+ status = decor_handle_selection_clear (QX11Info::display(),
+ xevent, 0);
+ if (status == DECOR_SELECTION_GIVE_UP)
+ KApplication::exit (0);
+
+ break;
+ case PropertyNotify:
+ if (xevent->xproperty.atom == Atoms::netFrameWindow)
+ {
+ handleWindowAdded (xevent->xproperty.window);
+ }
+ else if (xevent->xproperty.atom == Atoms::switchSelectWindow)
+ {
+ WId id = xevent->xproperty.window;
+
+ if (!mSwitcher || mSwitcher->xid () != id)
+ handleWindowAdded (id);
+ mSwitcher->update ();
+ }
+ else if (xevent->xproperty.atom == Atoms::netWmWindowOpacity)
+ {
+ if (mClients.contains (xevent->xproperty.window))
+ mClients[xevent->xproperty.window]->updateOpacity ();
+ }
+ break;
+ case EnterNotify:
+ {
+ XCrossingEvent *xce = reinterpret_cast <XCrossingEvent *> (xevent);
+ QWidget *child;
+
+ if (!mFrames.contains (xce->window))
+ break;
+
+ client = mFrames[xce->window];
+
+ child = client->childAt (xce->x, xce->y);
+ if (child)
+ {
+ QEvent qe (QEvent::Enter);
+
+ QApplication::sendEvent (child, &qe);
+
+ client->setActiveChild (child);
+ client->updateCursor (QPoint (xce->x, xce->y));
+ }
+ } break;
+ case LeaveNotify:
+ {
+ XCrossingEvent *xce = reinterpret_cast <XCrossingEvent *> (xevent);
+
+ if (mFrames.contains (xce->window))
+ {
+ QEvent qe (QEvent::Leave);
+
+ client = mFrames[xce->window];
+
+ if (client->activeChild ())
+ QApplication::sendEvent (client->activeChild (), &qe);
+
+ XUndefineCursor (QX11Info::display(), client->frameId ());
+ }
+ } break;
+ case MotionNotify:
+ {
+ XMotionEvent *xme = reinterpret_cast < XMotionEvent * >(xevent);
+ QWidget *child;
+
+ if (!mFrames.contains (xme->window))
+ break;
+
+ client = mFrames[xme->window];
+
+ child = client->childAt (xme->x, xme->y);
+
+ if (child)
+ {
+ QPoint qp (xme->x, xme->y);
+
+ if (child != client->activeChild ())
+ {
+ QEvent qee (QEvent::Enter);
+ QEvent qle (QEvent::Leave);
+
+ if (client->activeChild ())
+ QApplication::sendEvent (client->activeChild (), &qle);
+
+ QApplication::sendEvent (child, &qee);
+
+ client->setActiveChild (child);
+ }
+
+ if (client != child)
+ qp -= QPoint (child->pos ().x (), child->pos ().y ());
+
+ QMouseEvent qme (QEvent::MouseMove, qp, Qt::NoButton,
+ Qt::NoButton, Qt::NoModifier);
+
+ QApplication::sendEvent (child, &qme);
+
+ client->updateCursor (QPoint (xme->x, xme->y));
+ }
+ } break;
+ case ButtonPress:
+ case ButtonRelease:
+ {
+ XButtonEvent *xbe = reinterpret_cast <XButtonEvent *>(xevent);
+ QWidget *child;
+
+ if (!mFrames.contains (xbe->window))
+ break;
+
+ client = mFrames[xbe->window];
+
+ child = client->childAt (xbe->x, xbe->y);
+
+ if (child)
+ {
+ XButtonEvent xbe2 = *xbe;
+ xbe2.window = child->winId ();
+ if (client != child)
+ {
+ xbe2.x = xbe->x - child->pos ().x ();
+ xbe2.y = xbe->y - child->pos ().y ();
+ }
+
+ client->setFakeRelease (false);
+ QApplication::x11ProcessEvent ((XEvent *) &xbe2);
+
+ /* We won't get a button release event, because of the screengrabs
+ in compiz */
+ if (client->getFakeRelease () && xevent->type == ButtonPress)
+ {
+ xbe2.type = ButtonRelease;
+ QApplication::x11ProcessEvent ((XEvent *) &xbe2);
+ }
+
+ return true;
+ }
+ } break;
+ case ClientMessage:
+ if (xevent->xclient.message_type == Atoms::toolkitActionAtom)
+ {
+ unsigned long action;
+
+ action = xevent->xclient.data.l[0];
+ if (action == Atoms::toolkitActionWindowMenuAtom)
+ {
+ if (mClients.contains (xevent->xclient.window))
+ {
+ QPoint pos;
+
+ client = mClients[xevent->xclient.window];
+
+ if (xevent->xclient.data.l[2])
+ {
+ pos = QPoint (xevent->xclient.data.l[3],
+ xevent->xclient.data.l[4]);
+ }
+ else
+ {
+ pos = client->clientGeometry ().topLeft ();
+ }
+
+ client->showWindowMenu (pos);
+ }
+ }
+ else if (action == Atoms::toolkitActionForceQuitDialogAtom)
+ {
+ if (mClients.contains (xevent->xclient.window))
+ {
+ Time timestamp = xevent->xclient.data.l[1];
+
+ client = mClients[xevent->xclient.window];
+
+ if (xevent->xclient.data.l[2])
+ client->showKillProcessDialog (timestamp);
+ else
+ client->hideKillProcessDialog ();
+ }
+ }
+ }
+ break;
+ default:
+ if (xevent->type == mDamageEvent + XDamageNotify)
+ {
+ XDamageNotifyEvent *xde =
+ reinterpret_cast <XDamageNotifyEvent *>(xevent);
+
+ if (mWindows.contains (xde->drawable))
+ client = mWindows[xde->drawable];
+ else if (mDecorNormal->winId () == xde->drawable)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xde->drawable)
+ client = mDecorActive;
+ else
+ break;
+
+ client->addDamageRect (xde->area.x,
+ xde->area.y,
+ xde->area.width,
+ xde->area.height);
+
+ if (client->pixmapId ())
+ {
+ if (!mIdleTimer.isActive ())
+ {
+ mIdleTimer.setSingleShot (true);
+ mIdleTimer.start (0);
+ }
+ }
+
+ return true;
+ }
+ break;
+ }
+
+ return KApplication::x11EventFilter (xevent);
+}
+
+void
+KWD::Decorator::reconfigure (void)
+{
+ unsigned long changed;
+
+ mConfig->reparseConfiguration ();
+
+ changed = mOptions->updateSettings ();
+ if (mPlugins->reset (changed))
+ {
+ QMap < WId, KWD::Window * >::ConstIterator it;
+
+ updateShadow ();
+
+ mDecorNormal->reloadDecoration ();
+ mDecorActive->reloadDecoration ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.value ()->reloadDecoration ();
+
+ mPlugins->destroyPreviousPlugin ();
+ }
+}
+
+void
+KWD::Decorator::handleWindowAdded (WId id)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+ KWD::Window *client = 0;
+ WId select, frame = 0;
+ KWD::Window::Type type = KWD::Window::Normal;
+ unsigned int width, height, border, depth;
+ int x, y;
+ XID root;
+ QWidgetList widgets;
+
+ /* avoid adding any of our own top level windows */
+ foreach (QWidget *widget, QApplication::topLevelWidgets()) {
+ if (widget->winId() == id)
+ return;
+ }
+
+ KWD::trapXError ();
+ XGetGeometry (QX11Info::display(), id, &root, &x, &y, &width, &height,
+ &border, &depth);
+ if (KWD::popXError ())
+ return;
+
+ KWD::readWindowProperty (id, Atoms::netFrameWindow, (long *) &frame);
+
+ if (KWD::readWindowProperty (id, Atoms::switchSelectWindow,
+ (long *) &select))
+ {
+ if (!mSwitcher)
+ mSwitcher = new Switcher (mCompositeWindow, id);
+ if (mSwitcher->xid () != id)
+ {
+ delete mSwitcher;
+ mSwitcher = new Switcher (mCompositeWindow, id);
+ }
+ frame = None;
+ }
+ else
+ {
+ KWindowInfo wInfo = KWindowSystem::windowInfo (id, NET::WMWindowType, 0);
+
+ switch (wInfo.windowType (~0)) {
+ case NET::Normal:
+ case NET::Dialog:
+ case NET::Toolbar:
+ case NET::Menu:
+ case NET::Utility:
+ case NET::Splash:
+ case NET::Unknown:
+ /* decorate these window types */
+ break;
+ default:
+ return;
+ }
+
+ type = KWD::Window::Normal;
+ }
+
+ KWD::trapXError ();
+ XSelectInput (QX11Info::display(), id, StructureNotifyMask | PropertyChangeMask);
+ KWD::popXError ();
+
+ if (frame)
+ {
+ if (!mClients.contains (id))
+ {
+ client = new KWD::Window (mCompositeWindow, id, frame, type,
+ x, y,
+ width + border * 2,
+ height + border * 2);
+
+ mClients.insert (id, client);
+ mWindows.insert (client->winId (), client);
+ mFrames.insert (frame, client);
+ }
+ else
+ {
+ client = mClients[id];
+ mFrames.remove (client->frameId ());
+ mFrames.insert (frame, client);
+
+ client->updateFrame (frame);
+ }
+ }
+ else
+ {
+ if (mClients.contains (id))
+ client = mClients[id];
+
+ if (client)
+ {
+ mClients.remove (client->windowId ());
+ mWindows.remove (client->winId ());
+ mFrames.remove (client->frameId ());
+
+ delete client;
+ }
+ }
+}
+
+void
+KWD::Decorator::handleWindowRemoved (WId id)
+{
+ KWD::Window *window = 0;
+
+ if (mClients.contains (id))
+ window = mClients[id];
+ else if (mFrames.contains (id))
+ window = mFrames[id];
+
+ if (window)
+ {
+ mClients.remove (window->windowId ());
+ mWindows.remove (window->winId ());
+ mFrames.remove (window->frameId ());
+ delete window;
+ }
+
+ if (mSwitcher && mSwitcher->xid () == id)
+ {
+ delete mSwitcher;
+ mSwitcher = NULL;
+ }
+}
+
+void
+KWD::Decorator::handleActiveWindowChanged (WId id)
+{
+ if (id != mActiveId)
+ {
+ KWD::Window *newActiveWindow = 0;
+ KWD::Window *oldActiveWindow = 0;
+
+ if (mClients.contains (id))
+ newActiveWindow = mClients[id];
+
+ if (mClients.contains (mActiveId))
+ oldActiveWindow = mClients[mActiveId];
+
+ mActiveId = id;
+
+ if (oldActiveWindow)
+ oldActiveWindow->handleActiveChange ();
+
+ if (newActiveWindow)
+ newActiveWindow->handleActiveChange ();
+ }
+}
+
+void
+KWD::Decorator::handleWindowChanged (WId id,
+ const unsigned long *properties)
+{
+ KWD::Window *client;
+
+ if (mSwitcher && mSwitcher->xid () == id)
+ {
+ mSwitcher->updateGeometry ();
+ return;
+ }
+
+ if (!mClients.contains (id))
+ return;
+
+ client = mClients[id];
+
+ if (properties[0] & NET::WMName)
+ client->updateName ();
+ if (properties[0] & NET::WMVisibleName)
+ client->updateName ();
+ if (properties[0] & NET::WMState)
+ client->updateState ();
+ if (properties[0] & NET::WMIcon)
+ client->updateIcons ();
+ if (properties[0] & NET::WMGeometry)
+ client->updateWindowGeometry ();
+
+}
+
+void
+KWD::Decorator::sendClientMessage (WId eventWid,
+ WId wid,
+ Atom atom,
+ Atom value,
+ long data1,
+ long data2,
+ long data3)
+{
+ XEvent ev;
+ long mask = 0;
+
+ memset (&ev, 0, sizeof (ev));
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.window = wid;
+ ev.xclient.message_type = atom;
+ ev.xclient.format = 32;
+
+ ev.xclient.data.l[0] = value;
+ ev.xclient.data.l[1] = QX11Info::appTime();
+ ev.xclient.data.l[2] = data1;
+ ev.xclient.data.l[3] = data2;
+ ev.xclient.data.l[4] = data3;
+
+ if (eventWid == QX11Info::appRootWindow())
+ mask = SubstructureRedirectMask | SubstructureNotifyMask;
+
+ KWD::trapXError ();
+ XSendEvent (QX11Info::display(), eventWid, false, mask, &ev);
+ KWD::popXError ();
+}
+
+void
+KWD::Decorator::shadowRadiusChanged (double value)
+{
+ decor_shadow_options_t opt = *shadowOptions ();
+
+ opt.shadow_radius = value;
+
+ changeShadowOptions (&opt);
+}
+
+void
+KWD::Decorator::shadowOpacityChanged (double value)
+{
+ decor_shadow_options_t opt = *shadowOptions ();
+
+ opt.shadow_opacity = value;
+
+ changeShadowOptions (&opt);
+}
+
+void
+KWD::Decorator::shadowXOffsetChanged (int value)
+{
+ decor_shadow_options_t opt = *shadowOptions ();
+
+ opt.shadow_offset_x = value;
+
+ changeShadowOptions (&opt);
+}
+
+void
+KWD::Decorator::shadowYOffsetChanged (int value)
+{
+ decor_shadow_options_t opt = *shadowOptions ();
+
+ opt.shadow_offset_y = value;
+
+ changeShadowOptions (&opt);
+}
+
+void
+KWD::Decorator::shadowColorChanged (QString value)
+{
+ decor_shadow_options_t opt = *shadowOptions ();
+
+ int c[4];
+
+ if (sscanf (value.toAscii().data(), "#%2x%2x%2x%2x",
+ &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ opt.shadow_color[0] = c[0] << 8 | c[0];
+ opt.shadow_color[1] = c[1] << 8 | c[1];
+ opt.shadow_color[2] = c[2] << 8 | c[2];
+ }
+
+ changeShadowOptions (&opt);
+}
+
+void
+KWD::Decorator::plasmaThemeChanged ()
+{
+ if (mSwitcher)
+ {
+ WId win = mSwitcher->xid();
+ delete mSwitcher;
+ mSwitcher = new Switcher (mCompositeWindow, win);
+ }
+}
diff --git a/kde/window-decorator-kde4/decorator.h b/kde/window-decorator-kde4/decorator.h
new file mode 100644
index 0000000..65802c4
--- /dev/null
+++ b/kde/window-decorator-kde4/decorator.h
@@ -0,0 +1,185 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _DECORATOR_H
+#define _DECORATOR_H
+
+#include <kapplication.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/cursorfont.h>
+
+#include <QTimer>
+
+#include <fixx11h.h>
+#include <KDE/KConfig>
+#include <netwm.h>
+
+#include <decoration.h>
+
+#include "window.h"
+#include "switcher.h"
+#include "kdecoration_plugins.h"
+
+#define ROOT_OFF_X 8192
+#define ROOT_OFF_Y 8192
+
+#define C(name) { 0, XC_ ## name }
+
+struct _cursor {
+ Cursor cursor;
+ unsigned int shape;
+};
+
+extern struct _cursor cursors[3][3];
+
+extern double decorationOpacity;
+extern bool decorationOpacityShade;
+extern double activeDecorationOpacity;
+extern bool activeDecorationOpacityShade;
+
+#define BLUR_TYPE_NONE 0
+#define BLUR_TYPE_TITLEBAR 1
+#define BLUR_TYPE_ALL 2
+
+extern int blurType;
+
+class KConfig;
+class KWindowSystem;
+
+namespace KWD
+{
+ class Options;
+
+class PluginManager:public KDecorationPlugins {
+ public:
+ PluginManager (KSharedConfigPtr config);
+ virtual bool provides (Requirement)
+ {
+ return false;
+ }
+ };
+
+
+class Decorator:public KApplication {
+ Q_OBJECT public:
+ Decorator (Display* display, Qt::HANDLE visual, Qt::HANDLE colormap);
+ ~Decorator (void);
+
+ static NETRootInfo *rootInfo (void)
+ {
+ return mRootInfo;
+ }
+ static PluginManager *pluginManager (void)
+ {
+ return mPlugins;
+ }
+ static KWD::Options *options (void)
+ {
+ return mOptions;
+ }
+ static WId activeId (void)
+ {
+ return mActiveId;
+ }
+ static decor_shadow_options_t *shadowOptions (void)
+ {
+ return &mShadowOptions;
+ }
+ static decor_shadow_t *defaultWindowShadow (decor_context_t *context,
+ decor_extents_t *border)
+ {
+ if (!mDefaultShadow)
+ return NULL;
+
+ if (memcmp (border, &mDefaultBorder, sizeof (decor_extents_t)) != 0)
+ return NULL;
+
+ *context = mDefaultContext;
+ return mDefaultShadow;
+ }
+ static void sendClientMessage (WId eventWid,
+ WId wid,
+ Atom atom,
+ Atom value,
+ long data1 = 0,
+ long data2 = 0,
+ long data3 = 0);
+ static void updateDefaultShadow (KWD::Window *w);
+
+ bool enableDecorations (Time timestamp, int damageEvent);
+ bool x11EventFilter (XEvent *xevent);
+ void changeShadowOptions (decor_shadow_options_t *opt);
+
+ public slots:
+ void reconfigure (void);
+
+ private:
+ WId fetchFrame (WId window);
+ void updateShadow (void);
+ void updateAllShadowOptions (void);
+
+ private slots:
+ void handleWindowAdded (WId id);
+ void handleWindowRemoved (WId id);
+ void handleActiveWindowChanged (WId id);
+ void handleWindowChanged (WId id,
+ const unsigned long *properties);
+ void processDamage (void);
+ void shadowRadiusChanged (double value);
+ void shadowOpacityChanged (double value);
+ void shadowXOffsetChanged (int value);
+ void shadowYOffsetChanged (int value);
+ void shadowColorChanged (QString value);
+
+ void plasmaThemeChanged ();
+
+ private:
+ static PluginManager *mPlugins;
+ static KWD::Options *mOptions;
+ static decor_extents_t mDefaultBorder;
+ static decor_context_t mDefaultContext;
+ static decor_shadow_t *mDefaultShadow;
+ static decor_shadow_t *mNoBorderShadow;
+ static decor_shadow_options_t mShadowOptions;
+ static NETRootInfo *mRootInfo;
+ static WId mActiveId;
+
+ KWD::Window *mDecorNormal;
+ KWD::Window *mDecorActive;
+ QMap <WId, KWD::Window *>mClients;
+ QMap <WId, KWD::Window *>mFrames;
+ QMap <WId, KWD::Window *>mWindows;
+ KConfig *mConfig;
+ Time mDmSnTimestamp;
+ int mDamageEvent;
+ QTimer mIdleTimer;
+
+ WId mCompositeWindow;
+
+ Switcher *mSwitcher;
+ };
+}
+
+#endif
diff --git a/kde/window-decorator-kde4/kdecoration_plugins.cpp b/kde/window-decorator-kde4/kdecoration_plugins.cpp
new file mode 100644
index 0000000..50bb3f3
--- /dev/null
+++ b/kde/window-decorator-kde4/kdecoration_plugins.cpp
@@ -0,0 +1,212 @@
+/*****************************************************************
+
+This file is a copy of the KWin internal API. It allows the KDE4
+window decorator the loading of KWin decoration plugins.
+
+Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+
+******************************************************************
+
+This file is part of the KDE project.
+
+Copyright (C) 1999, 2000 Daniel M. Duley <mosfet@kde.org>
+Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+******************************************************************/
+
+#include "kdecoration_plugins.h"
+
+#include <kconfig.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <klibloader.h>
+#include <kconfiggroup.h>
+#include <assert.h>
+
+#include <QDir>
+#include <QFile>
+
+#include <kdecorationfactory.h>
+
+KWD::KDecorationPlugins::KDecorationPlugins(const KSharedConfigPtr &cfg)
+ : create_ptr( NULL ),
+ library( NULL ),
+ fact( NULL ),
+ old_library( NULL ),
+ old_fact( NULL ),
+ pluginStr( "kwin3_undefined " ),
+ config( cfg )
+ {
+ }
+
+KWD::KDecorationPlugins::~KDecorationPlugins()
+ {
+ if(library)
+ {
+ assert( fact != NULL );
+ delete fact;
+ library->unload();
+ }
+ if(old_library)
+ {
+ assert( old_fact != NULL );
+ delete old_fact;
+ old_library->unload();
+ }
+ }
+
+QString KWD::KDecorationPlugins::currentPlugin()
+ {
+ return pluginStr;
+ }
+
+bool KWD::KDecorationPlugins::reset( unsigned long changed )
+ {
+ QString oldPlugin = pluginStr;
+ config->reparseConfiguration();
+ bool ret = false;
+ if(( !loadPlugin( "" ) && library ) // "" = read the one in cfg file
+ || oldPlugin == pluginStr )
+ { // no new plugin loaded, reset the old one
+ assert( fact != NULL );
+ ret = fact->reset( changed );
+ }
+ return ret || oldPlugin != pluginStr;
+ }
+
+KDecorationFactory* KWD::KDecorationPlugins::factory()
+ {
+ return fact;
+ }
+
+// convenience
+KDecoration* KWD::KDecorationPlugins::createDecoration( KDecorationBridge* bridge )
+ {
+ if( fact != NULL )
+ return fact->createDecoration( bridge );
+ return NULL;
+ }
+
+// returns true if plugin was loaded successfully
+bool KWD::KDecorationPlugins::loadPlugin( QString nameStr )
+ {
+ if( nameStr.isEmpty())
+ {
+ KConfigGroup group( config, QString("Style") );
+ nameStr = group.readEntry("PluginLib", defaultPlugin );
+ }
+ // make sure people can switch between HEAD and kwin_iii branch
+ if( nameStr.startsWith( "kwin_" ))
+ nameStr = "kwin3_" + nameStr.mid( 5 );
+
+ KLibrary *oldLibrary = library;
+ KDecorationFactory* oldFactory = fact;
+
+ QString path = KLibLoader::findLibrary(nameStr);
+ kDebug() << "kwin : path " << path << " for " << nameStr;
+
+ // If the plugin was not found, try to find the default
+ if (path.isEmpty())
+ {
+ nameStr = defaultPlugin;
+ path = KLibLoader::findLibrary(nameStr);
+ }
+
+ // If no library was found, exit kwin with an error message
+ if (path.isEmpty())
+ {
+ error( i18n("No window decoration plugin library was found." ));
+ return false;
+ }
+
+ // Check if this library is not already loaded.
+ if(pluginStr == nameStr)
+ return true;
+
+ // Try loading the requested plugin
+ library = KLibLoader::self()->library(path);
+
+ // If that fails, fall back to the default plugin
+ if (!library)
+ {
+ kDebug() << " could not load library, try default plugin again";
+ nameStr = defaultPlugin;
+ if ( pluginStr == nameStr )
+ return true;
+ path = KLibLoader::findLibrary(nameStr);
+ if (!path.isEmpty())
+ library = KLibLoader::self()->library(path);
+ }
+
+ if (!library)
+ {
+ error( i18n("The default decoration plugin is corrupt "
+ "and could not be loaded." ));
+ return false;
+ }
+
+ create_ptr = NULL;
+ KLibrary::void_function_ptr create_func = library->resolveFunction("create_factory");
+ if(create_func)
+ create_ptr = (KDecorationFactory* (*)())create_func;
+
+ if(!create_ptr)
+ {
+ error( i18n( "The library %1 is not a KWin plugin.", path ));
+ library->unload();
+ return false;
+ }
+ fact = create_ptr();
+ fact->checkRequirements( this ); // let it check what is supported
+
+ pluginStr = nameStr;
+
+ // For clients in kdeartwork
+ QString catalog = nameStr;
+ catalog.replace( "kwin3_", "kwin_" );
+ KGlobal::locale()->insertCatalog( catalog );
+ // For KCommonDecoration based clients
+ KGlobal::locale()->insertCatalog( "kwin_lib" );
+ // For clients in kdebase
+ KGlobal::locale()->insertCatalog( "kwin_clients" );
+ // For clients in kdeartwork
+ KGlobal::locale()->insertCatalog( "kwin_art_clients" );
+
+ old_library = oldLibrary; // save for delayed destroying
+ old_fact = oldFactory;
+
+ return true;
+}
+
+void KWD::KDecorationPlugins::destroyPreviousPlugin()
+{
+ // Destroy the old plugin
+ if(old_library)
+ {
+ delete old_fact;
+ old_fact = NULL;
+ old_library->unload();
+ old_library = NULL;
+ }
+}
+
+void KWD::KDecorationPlugins::error( const QString& )
+ {
+ }
diff --git a/kde/window-decorator-kde4/kdecoration_plugins.h b/kde/window-decorator-kde4/kdecoration_plugins.h
new file mode 100644
index 0000000..14a1454
--- /dev/null
+++ b/kde/window-decorator-kde4/kdecoration_plugins.h
@@ -0,0 +1,90 @@
+/*****************************************************************
+
+This file is a copy of the KWin internal API. It allows the KDE4
+window decorator the loading of KWin decoration plugins.
+
+Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+
+******************************************************************
+
+This file is part of the KDE project.
+
+Copyright (C) 1999, 2000 Daniel M. Duley <mosfet@kde.org>
+Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+******************************************************************/
+
+#ifndef KWD_KDECORATION_PLUGINS_H
+#define KWD_KDECORATION_PLUGINS_H
+
+//
+// This header file is internal. I mean it.
+//
+
+
+#include <QtGui/QWidget>
+#include <ksharedconfig.h>
+
+#include "kdecoration.h"
+
+class KLibrary;
+class KDecoration;
+class KDecorationBridge;
+class KDecorationFactory;
+
+namespace KWD
+{
+
+class KDecorationPlugins
+ : public KDecorationProvides
+ {
+ public:
+ KDecorationPlugins(const KSharedConfigPtr &cfg);
+ virtual ~KDecorationPlugins();
+ bool loadPlugin( QString name );
+ void destroyPreviousPlugin();
+ KDecorationFactory* factory();
+ KDecoration* createDecoration( KDecorationBridge* );
+ QString currentPlugin();
+ bool reset( unsigned long changed ); // returns true if decorations need to be recreated
+ protected:
+ virtual void error( const QString& error_msg );
+ QString defaultPlugin; // FRAME normalne protected?
+ private:
+ KDecorationFactory* (*create_ptr)();
+ KLibrary *library;
+ KDecorationFactory* fact;
+ KLibrary *old_library;
+ KDecorationFactory* old_fact;
+ QString pluginStr;
+ KSharedConfigPtr config;
+ };
+
+/*
+
+ Plugins API:
+ KDecorationFactory* create_factory(); - called once after loading
+
+*/
+}
+
+/** @} */
+
+#endif
diff --git a/kde/window-decorator-kde4/main.cpp b/kde/window-decorator-kde4/main.cpp
new file mode 100644
index 0000000..781edbe
--- /dev/null
+++ b/kde/window-decorator-kde4/main.cpp
@@ -0,0 +1,199 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xdamage.h>
+
+#include <fixx11h.h>
+#include <KDE/KApplication>
+#include <KDE/KCmdLineArgs>
+#include <KDE/KDebug>
+#include <KDE/KLocale>
+
+#include "decorator.h"
+
+#include <QX11Info>
+#include <QtDBus/QtDBus>
+
+
+
+int
+main (int argc, char **argv)
+{
+ KWD::Decorator *app;
+ KCmdLineArgs *args;
+ KCmdLineOptions options;
+ int status;
+ int event, error;
+ Time timestamp;
+ Colormap colormap = 0;
+ Visual *visual = 0;
+ int event_base, error_base;
+ Display *dpy;
+ int screen;
+ QString appname;
+
+ options.add ("replace", ki18n ("Replace existing window decorator"));
+ options.add ("sm-disable", ki18n ("Disable connection to session manager"));
+ options.add ("opacity <value>", ki18n ("Decoration opacity"), "0.75");
+ options.add ("no-opacity-shade", ki18n ("No decoration opacity shading"));
+ options.add ("active-opacity <value>",
+ ki18n ("Active decoration opacity"), "1.0");
+ options.add ("no-active-opacity-shade",
+ ki18n ("No active decoration opacity shading"));
+ options.add ("blur <type>", ki18n ("Blur type"), "none");
+
+ KCmdLineArgs::init (argc, argv,
+ "kde-window-decorator",
+ "kwin",
+ ki18n ("KDE Window Decorator"),
+ "0.0.1");
+ KCmdLineArgs::addCmdLineOptions (options);
+ args = KCmdLineArgs::parsedArgs ();
+
+ if (args->isSet ("opacity"))
+ decorationOpacity = args->getOption ("opacity").toDouble ();
+
+ if (args->isSet ("-opacity-shade"))
+ decorationOpacityShade = true;
+
+ if (args->isSet ("active-opacity"))
+ activeDecorationOpacity =
+ args->getOption ("active-opacity").toDouble ();
+
+ if (args->isSet ("-active-opacity-shade"))
+ activeDecorationOpacityShade = true;
+
+ if (args->isSet ("blur"))
+ {
+ QString blur = args->getOption ("blur");
+
+ if (blur == QString ("titlebar"))
+ blurType = BLUR_TYPE_TITLEBAR;
+ else if (blur == QString ("all"))
+ blurType = BLUR_TYPE_ALL;
+ }
+
+ dpy = XOpenDisplay(0); // open default display
+ screen = DefaultScreen (dpy);
+ if (!dpy) {
+ kError() << "Cannot connect to the X server" << endl;
+ return 0;
+ }
+
+ if (XRenderQueryExtension (dpy, &event_base, &error_base))
+ {
+ int nvi;
+ XVisualInfo templ;
+ templ.screen = screen;
+ templ.depth = 32;
+ templ.c_class = TrueColor;
+ XVisualInfo *xvi = XGetVisualInfo (dpy, VisualScreenMask |
+ VisualDepthMask |
+ VisualClassMask, &templ, &nvi);
+
+ for (int i = 0; i < nvi; i++)
+ {
+ XRenderPictFormat *format =
+ XRenderFindVisualFormat (dpy, xvi[i].visual);
+ if (format->type == PictTypeDirect && format->direct.alphaMask)
+ {
+ visual = xvi[i].visual;
+ colormap = XCreateColormap (dpy, RootWindow (dpy, screen),
+ visual, AllocNone);
+ break;
+ }
+ }
+ }
+
+ // Disable window less child widgets
+ QApplication::setAttribute(Qt::AA_NativeWindows, true);
+
+ app = new KWD::Decorator (dpy, visual ? Qt::HANDLE(visual) : 0,
+ colormap ? Qt::HANDLE(colormap) : 0);
+
+ if (args->isSet ("sm-disable"))
+ app->disableSessionManagement ();
+
+ if (!XDamageQueryExtension (QX11Info::display(), &event, &error))
+ {
+ fprintf (stderr,
+ "%s: Damage extension is missing on display \"%s\"\n",
+ argv[0], DisplayString (QX11Info::display()));
+
+ return 1;
+ }
+
+ status = decor_acquire_dm_session (QX11Info::display(),
+ QX11Info::appScreen (),
+ "kwd", args->isSet ("replace"),
+ &timestamp);
+ if (status != DECOR_ACQUIRE_STATUS_SUCCESS)
+ {
+ if (status == DECOR_ACQUIRE_STATUS_FAILED)
+ {
+ fprintf (stderr,
+ "%s: Could not acquire decoration manager "
+ "selection on screen %d display \"%s\"\n",
+ argv[0], QX11Info::appScreen (),
+ DisplayString (QX11Info::display()));
+ }
+ else if (status == DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING)
+ {
+ fprintf (stderr,
+ "%s: Screen %d on display \"%s\" already "
+ "has a decoration manager; try using the "
+ "--replace option to replace the current "
+ "decoration manager.\n",
+ argv[0], QX11Info::appScreen (),
+ DisplayString (QX11Info::display()));
+ }
+
+ return 1;
+ }
+
+ decor_set_dm_check_hint (QX11Info::display(), QX11Info::appScreen ());
+
+ if (!app->enableDecorations (timestamp, event))
+ {
+ fprintf (stderr,
+ "%s: Could not enable decorations on display \"%s\"\n",
+ argv[0], DisplayString (QX11Info::display()));
+
+ return 1;
+ }
+
+ if (QX11Info::appScreen () == 0)
+ appname = "org.kde.kwin";
+ else
+ appname.sprintf("org.kde.kwin-screen-%d", QX11Info::appScreen ());
+
+ QDBusConnection::sessionBus ().interface ()->registerService
+ (appname, QDBusConnectionInterface::DontQueueService);
+
+ status = app->exec ();
+
+ delete app;
+
+ return status;
+}
diff --git a/kde/window-decorator-kde4/options.cpp b/kde/window-decorator-kde4/options.cpp
new file mode 100644
index 0000000..c91c014
--- /dev/null
+++ b/kde/window-decorator-kde4/options.cpp
@@ -0,0 +1,186 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "options.h"
+
+#include <KDE/KConfig>
+#include <KDE/KConfigGroup>
+#include <kdecoration.h>
+
+KWD::Options::Options (KConfig *config): KDecorationOptions (), mConfig (config)
+{
+ updateSettings ();
+}
+
+unsigned long
+KWD::Options::updateSettings (void)
+{
+ unsigned long changed = 0;
+ KConfigGroup config = mConfig->group("Windows");
+
+ changed |= KDecorationOptions::updateSettings (mConfig);
+
+ OpTitlebarDblClick =
+ windowOperation (config.readEntry ("TitlebarDoubleClickCommand",
+ "Shade"), true);
+ setOpMaxButtonLeftClick (
+ windowOperation (config.readEntry ("MaximizeButtonLeftClickCommand",
+ "Maximize"), true));
+ setOpMaxButtonMiddleClick (
+ windowOperation (config.readEntry ("MaximizeButtonMiddleClickCommand",
+ "Maximize (vertical only)"), true));
+ setOpMaxButtonRightClick (
+ windowOperation (config.readEntry ("MaximizeButtonRightClickCommand",
+ "Maximize (horizontal only)"),
+ true));
+
+ config = mConfig->group("MouseBindings");
+
+ CmdActiveTitlebar1 =
+ mouseCommand (config.readEntry ("CommandActiveTitlebar1",
+ "Raise"), true);
+ CmdActiveTitlebar2 =
+ mouseCommand (config.readEntry ("CommandActiveTitlebar2",
+ "Lower"), true);
+ CmdActiveTitlebar3 =
+ mouseCommand (config.readEntry ("CommandActiveTitlebar3",
+ "Operations menu"), true);
+ CmdInactiveTitlebar1 =
+ mouseCommand (config.readEntry ("CommandInactiveTitlebar1",
+ "Activate and raise"), true);
+ CmdInactiveTitlebar2 =
+ mouseCommand (config.readEntry ("CommandInactiveTitlebar2",
+ "Activate and lower"), true);
+ CmdInactiveTitlebar3 =
+ mouseCommand (config.readEntry ("CommandInactiveTitlebar3",
+ "Operations menu"), true);
+
+ CmdTitlebarWheel =
+ mouseWheelCommand (config.readEntry ("CommandTitlebarWheel",
+ "Nothing"));
+
+ return changed;
+}
+
+// restricted should be true for operations that the user may not be able to
+// repeat if the window is moved out of the workspace (e.g. if the user moves
+// a window by the titlebar, and moves it too high beneath Kicker at the top
+// edge, they may not be able to move it back, unless they know about Alt+LMB)
+KDecorationDefines::WindowOperation
+KWD::Options::windowOperation (const QString &name, bool restricted)
+{
+ if (name == "Move")
+ return restricted ? KWD::Options::MoveOp :
+ KWD::Options::UnrestrictedMoveOp;
+ else if (name == "Resize")
+ return restricted ? KWD::Options::ResizeOp :
+ KWD::Options::UnrestrictedResizeOp;
+ else if (name == "Maximize")
+ return KWD::Options::MaximizeOp;
+ else if (name == "Minimize")
+ return KWD::Options::MinimizeOp;
+ else if (name == "Close")
+ return KWD::Options::CloseOp;
+ else if (name == "OnAllDesktops")
+ return KWD::Options::OnAllDesktopsOp;
+ else if (name == "Shade")
+ return KWD::Options::ShadeOp;
+ else if (name == "Operations")
+ return KWD::Options::OperationsOp;
+ else if (name == "Maximize (vertical only)")
+ return KWD::Options::VMaximizeOp;
+ else if (name == "Maximize (horizontal only)")
+ return KWD::Options::HMaximizeOp;
+ else if (name == "Lower")
+ return KWD::Options::LowerOp;
+ return KWD::Options::NoOp;
+}
+
+KWD::Options::MouseCommand
+KWD::Options::mouseCommand (const QString &name,
+ bool restricted)
+{
+ QString lowerName = name.toLower ();
+
+ if (lowerName == "raise") return MouseRaise;
+ if (lowerName == "lower") return MouseLower;
+ if (lowerName == "operations menu") return MouseOperationsMenu;
+ if (lowerName == "toggle raise and lower") return MouseToggleRaiseAndLower;
+ if (lowerName == "activate and raise") return MouseActivateAndRaise;
+ if (lowerName == "activate and lower") return MouseActivateAndLower;
+ if (lowerName == "activate") return MouseActivate;
+ if (lowerName == "activate, raise and pass click")
+ return MouseActivateRaiseAndPassClick;
+ if (lowerName == "activate and pass click")
+ return MouseActivateAndPassClick;
+ if (lowerName == "activate, raise and move")
+ return restricted ? MouseActivateRaiseAndMove :
+ MouseActivateRaiseAndUnrestrictedMove;
+ if (lowerName == "move")
+ return restricted ? MouseMove : MouseUnrestrictedMove;
+ if (lowerName == "resize")
+ return restricted ? MouseResize : MouseUnrestrictedResize;
+ if (lowerName == "shade") return MouseShade;
+ if (lowerName == "minimize") return MouseMinimize;
+ if (lowerName == "nothing") return MouseNothing;
+
+ return MouseNothing;
+}
+
+KWD::Options::MouseWheelCommand
+KWD::Options::mouseWheelCommand (const QString &name)
+{
+ QString lowerName = name.toLower ();
+
+ if (lowerName == "raise/lower") return MouseWheelRaiseLower;
+ if (lowerName == "shade/unshade") return MouseWheelShadeUnshade;
+ if (lowerName == "maximize/restore") return MouseWheelMaximizeRestore;
+ if (lowerName == "above/below") return MouseWheelAboveBelow;
+ if (lowerName == "previous/next desktop")
+ return MouseWheelPreviousNextDesktop;
+ if (lowerName == "change opacity") return MouseWheelChangeOpacity;
+
+ return MouseWheelNothing;
+}
+
+KWD::Options::MouseCommand
+KWD::Options::wheelToMouseCommand (MouseWheelCommand com,
+ int delta)
+{
+ switch (com) {
+ case MouseWheelRaiseLower:
+ return delta > 0 ? MouseRaise : MouseLower;
+ case MouseWheelShadeUnshade:
+ return delta > 0 ? MouseSetShade : MouseUnsetShade;
+ case MouseWheelMaximizeRestore:
+ return delta > 0 ? MouseMaximize : MouseRestore;
+ case MouseWheelAboveBelow:
+ return delta > 0 ? MouseAbove : MouseBelow;
+ case MouseWheelPreviousNextDesktop:
+ return delta > 0 ? MousePreviousDesktop : MouseNextDesktop;
+ case MouseWheelChangeOpacity:
+ return delta > 0 ? MouseOpacityMore : MouseOpacityLess;
+ default:
+ return MouseNothing;
+ }
+}
diff --git a/kde/window-decorator-kde4/options.h b/kde/window-decorator-kde4/options.h
new file mode 100644
index 0000000..bbbe8c3
--- /dev/null
+++ b/kde/window-decorator-kde4/options.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _OPTIONS_H
+#define _OPTIONS_H
+
+#include <kdecoration.h>
+
+class KConfig;
+
+namespace KWD
+{
+
+class Options : public KDecorationOptions
+ {
+ public:
+ enum MouseCommand
+ {
+ MouseRaise,
+ MouseLower,
+ MouseOperationsMenu,
+ MouseToggleRaiseAndLower,
+ MouseActivateAndRaise,
+ MouseActivateAndLower,
+ MouseActivate,
+ MouseActivateRaiseAndPassClick,
+ MouseActivateAndPassClick,
+ MouseMove,
+ MouseUnrestrictedMove,
+ MouseActivateRaiseAndMove,
+ MouseActivateRaiseAndUnrestrictedMove,
+ MouseResize,
+ MouseUnrestrictedResize,
+ MouseShade,
+ MouseSetShade,
+ MouseUnsetShade,
+ MouseMaximize,
+ MouseRestore,
+ MouseMinimize,
+ MouseNextDesktop,
+ MousePreviousDesktop,
+ MouseAbove,
+ MouseBelow,
+ MouseOpacityMore,
+ MouseOpacityLess,
+ MouseNothing
+ };
+ enum MouseWheelCommand
+ {
+ MouseWheelRaiseLower,
+ MouseWheelShadeUnshade,
+ MouseWheelMaximizeRestore,
+ MouseWheelAboveBelow,
+ MouseWheelPreviousNextDesktop,
+ MouseWheelChangeOpacity,
+ MouseWheelNothing
+ };
+
+ Options (KConfig *config);
+
+ virtual unsigned long updateSettings (void);
+
+ WindowOperation operationTitlebarDblClick (void)
+ {
+ return OpTitlebarDblClick;
+ }
+
+ MouseCommand commandActiveTitlebar1 (void)
+ {
+ return CmdActiveTitlebar1;
+ }
+ MouseCommand commandActiveTitlebar2 (void)
+ {
+ return CmdActiveTitlebar2;
+ }
+ MouseCommand commandActiveTitlebar3 (void)
+ {
+ return CmdActiveTitlebar3;
+ }
+ MouseCommand commandInactiveTitlebar1 (void)
+ {
+ return CmdInactiveTitlebar1;
+ }
+ MouseCommand commandInactiveTitlebar2 (void)
+ {
+ return CmdInactiveTitlebar2;
+ }
+ MouseCommand commandInactiveTitlebar3 (void)
+ {
+ return CmdInactiveTitlebar3;
+ }
+
+ MouseCommand operationTitlebarMouseWheel (int delta)
+ {
+ return wheelToMouseCommand (CmdTitlebarWheel, delta);
+ }
+
+ private:
+ static KDecorationDefines::WindowOperation
+ windowOperation (const QString &name, bool restricted);
+ MouseCommand mouseCommand (const QString &name, bool restricted);
+ MouseWheelCommand mouseWheelCommand (const QString &name);
+ MouseCommand wheelToMouseCommand (MouseWheelCommand com, int delta);
+
+ private:
+ KDecorationDefines::WindowOperation OpTitlebarDblClick;
+ MouseCommand CmdActiveTitlebar1;
+ MouseCommand CmdActiveTitlebar2;
+ MouseCommand CmdActiveTitlebar3;
+ MouseCommand CmdInactiveTitlebar1;
+ MouseCommand CmdInactiveTitlebar2;
+ MouseCommand CmdInactiveTitlebar3;
+ MouseWheelCommand CmdTitlebarWheel;
+
+ KConfig *mConfig;
+ };
+
+}
+
+#endif
diff --git a/kde/window-decorator-kde4/org.kde.KWin.xml b/kde/window-decorator-kde4/org.kde.KWin.xml
new file mode 100644
index 0000000..eb5f78e
--- /dev/null
+++ b/kde/window-decorator-kde4/org.kde.KWin.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+ <interface name="org.kde.KWin">
+ <method name="reconfigure">
+ <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
+ </method>
+ <signal name="reloadConfig"/>
+ </interface>
+</node>
diff --git a/kde/window-decorator-kde4/switcher.cpp b/kde/window-decorator-kde4/switcher.cpp
new file mode 100644
index 0000000..83e5c40
--- /dev/null
+++ b/kde/window-decorator-kde4/switcher.cpp
@@ -0,0 +1,286 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: Dennis Kasprzyk <onestone@opencompositing.org>
+ */
+
+#include "switcher.h"
+#include "utils.h"
+#include "decorator.h"
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/extensions/Xcomposite.h>
+#include <X11/Xregion.h>
+
+#include <fixx11h.h>
+
+#include <KDE/Plasma/FrameSvg>
+#include <KDE/Plasma/Theme>
+
+#include <kwindowsystem.h>
+
+#include <QString>
+#include <QPainter>
+
+KWD::Switcher::Switcher (WId parentId, WId id):
+mId (id)
+{
+ QPalette palette;
+ long prop[4];
+ QColor color;
+ color = Plasma::Theme::defaultTheme ()->color (Plasma::Theme::TextColor);
+
+ mBackground = new Plasma::FrameSvg();
+ mBackground->setImagePath ("dialogs/background");
+ mBackground->setEnabledBorders(Plasma::FrameSvg::AllBorders);
+
+ mBorder.left = mBackground->marginSize(Plasma::LeftMargin);
+ mBorder.right = mBackground->marginSize(Plasma::RightMargin);
+ mBorder.top = mBackground->marginSize(Plasma::TopMargin);
+ mBorder.bottom = mBackground->marginSize(Plasma::BottomMargin) +
+ Plasma::Theme::defaultTheme ()->fontMetrics ().height () + 10;
+
+ mContext.extents.left = mBorder.left;
+ mContext.extents.right = mBorder.right;
+ mContext.extents.top = mBorder.top;
+ mContext.extents.bottom = mBorder.bottom;
+
+ mContext.left_space = mBorder.left;
+ mContext.right_space = mBorder.right;
+ mContext.top_space = mBorder.top;
+ mContext.bottom_space = mBorder.bottom;
+
+ mContext.left_corner_space = 0;
+ mContext.right_corner_space = 0;
+ mContext.top_corner_space = 0;
+ mContext.bottom_corner_space = 0;
+
+ updateGeometry ();
+
+ prop[0] = (color.red () * 256) + color.red ();
+ prop[1] = (color.green () * 256) + color.green ();
+ prop[2] = (color.blue () * 256) + color.blue ();
+ prop[3] = (color.alpha () * 256) + color.alpha ();
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display (), id, Atoms::switchFgColor, XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) prop, 4);
+ KWD::popXError ();
+}
+
+KWD::Switcher::~Switcher ()
+{
+ delete mBackground;
+}
+
+void
+KWD::Switcher::updateGeometry ()
+{
+ int x, y;
+ unsigned int width, height, border, depth;
+ XID root;
+
+ XGetGeometry (QX11Info::display (), mId, &root, &x, &y, &width, &height,
+ &border, &depth);
+
+ mGeometry = QRect (x, y, width, height);
+
+ KWD::readWindowProperty (mId, Atoms::switchSelectWindow,
+ (long *)&mSelected);
+
+ mPixmap = QPixmap (width + mBorder.left + mBorder.right,
+ height + mBorder.top + mBorder.bottom);
+
+ redrawPixmap ();
+ update ();
+
+ decor_get_default_layout (&mContext,
+ mGeometry.width (),
+ mGeometry.height (),
+ &mDecorLayout);
+
+ updateWindowProperties ();
+}
+
+void
+KWD::Switcher::redrawPixmap ()
+{
+ QPainter p (&mPixmap);
+
+ const int contentWidth = mPixmap.width ();
+ const int contentHeight = mPixmap.height ();
+
+ mPixmap.fill (Qt::transparent);
+
+ p.setCompositionMode (QPainter::CompositionMode_Source);
+ p.setRenderHint (QPainter::SmoothPixmapTransform);
+
+ mBackground->resizeFrame (QSizeF (contentWidth, contentHeight));
+ mBackground->paintFrame (&p, QRect (0, 0, contentWidth, contentHeight));
+
+ mBackgroundPixmap = mPixmap.copy (mBorder.left, mBorder.top,
+ mGeometry.width (),
+ mGeometry.height ());
+
+ XSetWindowBackgroundPixmap (QX11Info::display (), mId,
+ mBackgroundPixmap.handle ());
+ XClearWindow (QX11Info::display (), mId);
+}
+
+void
+KWD::Switcher::update ()
+{
+ QFontMetrics fm = Plasma::Theme::defaultTheme ()->fontMetrics ();
+ QFont font (Plasma::Theme::defaultTheme ()->
+ font (Plasma::Theme::DefaultFont));
+ QString name;
+ QPainter p (&mPixmap);
+
+ KWD::readWindowProperty (mId, Atoms::switchSelectWindow,
+ (long *)&mSelected);
+
+ name = KWindowSystem::windowInfo
+ (mSelected, NET::WMVisibleName, 0).visibleName ();
+
+ while (fm.width (name) > mGeometry.width ())
+ {
+ name.truncate (name.length () - 6);
+ name += "...";
+ }
+
+ p.setCompositionMode (QPainter::CompositionMode_Source);
+
+ mBackground->paintFrame (&p, QRect (mBorder.left,
+ mBorder.top +
+ mGeometry.height () + 5,
+ mGeometry.width (),
+ fm.height ()));
+
+ p.setFont (font);
+ p.setPen (Plasma::Theme::defaultTheme ()->color(Plasma::Theme::TextColor));
+
+ p.drawText ((mPixmap.width () - fm.width (name)) / 2,
+ mBorder.top + mGeometry.height () + 5 + fm.ascent (), name);
+}
+
+void
+KWD::Switcher::updateWindowProperties ()
+{
+ long data[256];
+ decor_quad_t quads[N_QUADS_MAX];
+ int nQuad;
+ int lh, rh;
+ int w;
+
+ lh = mDecorLayout.left.y2 - mDecorLayout.left.y1;
+ rh = mDecorLayout.right.y2 - mDecorLayout.right.y1;
+
+ w = mDecorLayout.top.x2 - mDecorLayout.top.x1 - mContext.left_space -
+ mContext.right_space;
+
+ nQuad = decor_set_lXrXtXbX_window_quads (quads, &mContext, &mDecorLayout,
+ lh / 2, rh / 2, w, w / 2);
+
+ decor_quads_to_property (data, mPixmap.handle (),
+ &mBorder, &mBorder,
+ 0, 0,
+ quads, nQuad);
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display(), mId, Atoms::netWindowDecor,
+ XA_INTEGER, 32, PropModeReplace, (unsigned char *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ KWD::popXError ();
+
+ updateBlurProperty (lh / 2, rh / 2, w / 2, w / 2);
+}
+
+void
+KWD::Switcher::updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset)
+{
+ Atom atom = Atoms::compizWindowBlurDecor;
+ QRegion topQRegion, bottomQRegion, leftQRegion, rightQRegion;
+ Region topRegion = NULL;
+ Region bottomRegion = NULL;
+ Region leftRegion = NULL;
+ Region rightRegion = NULL;
+ int size = 0;
+ int w, h;
+
+ w = mGeometry.width () + mContext.extents.left + mContext.extents.right;
+ h = mGeometry.height () + mContext.extents.top + mContext.extents.bottom;
+
+ if (blurType != BLUR_TYPE_NONE)
+ {
+ QRegion r;
+
+ topQRegion = QRegion (-mContext.extents.left, -mContext.extents.top,
+ w, mContext.extents.top);
+ topRegion = topQRegion.handle ();
+
+ bottomQRegion = QRegion (-mContext.extents.left, 0,
+ w, mContext.extents.bottom);
+ bottomRegion = bottomQRegion.handle ();
+
+ leftQRegion = QRegion (-mContext.extents.left, 0,
+ mContext.extents.left, mGeometry.height ());
+ leftRegion = leftQRegion.handle ();
+
+ rightQRegion = QRegion (0, 0, mContext.extents.right,
+ mGeometry.height ());
+ rightRegion = rightQRegion.handle ();
+ }
+
+ if (topRegion)
+ size += topRegion->numRects;
+ if (bottomRegion)
+ size += bottomRegion->numRects;
+ if (leftRegion)
+ size += leftRegion->numRects;
+ if (rightRegion)
+ size += rightRegion->numRects;
+
+ if (size)
+ {
+ long data[size * 6 + 2];
+
+ decor_region_to_blur_property (data, 4, 0,
+ mGeometry.width (),
+ mGeometry.height (),
+ topRegion, topOffset,
+ bottomRegion, bottomOffset,
+ leftRegion, leftOffset,
+ rightRegion, rightOffset);
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display (), mId, atom, XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ 2 + size * 6);
+ KWD::popXError ();
+ }
+ else
+ {
+ KWD::trapXError ();
+ XDeleteProperty (QX11Info::display (), mId, atom);
+ KWD::popXError ();
+ }
+}
diff --git a/kde/window-decorator-kde4/switcher.h b/kde/window-decorator-kde4/switcher.h
new file mode 100644
index 0000000..bc969d7
--- /dev/null
+++ b/kde/window-decorator-kde4/switcher.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: Dennis Kasprzyk <onestone@opencompositing.org>
+ */
+
+#ifndef _SWITCHER_H
+#define _SWITCHER_H
+
+#include <QPixmap>
+#include <QRect>
+#include <QX11Info>
+#include <decoration.h>
+#include <fixx11h.h>
+
+namespace Plasma
+{
+class FrameSvg;
+}
+
+class QSpacerItem;
+class QLabel;
+class QVBoxLayout;
+
+namespace KWD
+{
+
+class Switcher
+{
+
+ public:
+ Switcher (WId parentId, WId id);
+ ~Switcher ();
+
+ void update ();
+ void updateGeometry ();
+
+ WId xid () const
+ {
+ return mId;
+ }
+
+ private:
+ void updateWindowProperties ();
+ void updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset);
+ void redrawPixmap ();
+
+ private:
+
+ WId mId;
+ WId mSelected;
+
+ QRect mGeometry;
+
+ Plasma::FrameSvg *mBackground;
+ QPixmap mPixmap;
+ QPixmap mBackgroundPixmap;
+
+ decor_layout_t mDecorLayout;
+ decor_context_t mContext;
+ decor_extents_t mBorder;
+};
+
+}
+
+#endif
diff --git a/kde/window-decorator-kde4/utils.cpp b/kde/window-decorator-kde4/utils.cpp
new file mode 100644
index 0000000..6448e9f
--- /dev/null
+++ b/kde/window-decorator-kde4/utils.cpp
@@ -0,0 +1,207 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "utils.h"
+
+#include <decoration.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+
+#include <stdlib.h>
+#include <QX11Info>
+
+static int trappedErrorCode = 0;
+
+namespace KWD
+{
+ namespace Atoms
+ {
+ Atom switchSelectWindow;
+ Atom switchFgColor;
+ Atom netWmWindowOpacity;
+ Atom netFrameWindow;
+ Atom netWindowDecor;
+ Atom netWindowDecorNormal;
+ Atom netWindowDecorActive;
+ Atom netWindowDecorBare;
+ Atom wmTakeFocus;
+ Atom netWmContextHelp;
+ Atom wmProtocols;
+ Atom toolkitActionAtom;
+ Atom toolkitActionWindowMenuAtom;
+ Atom toolkitActionForceQuitDialogAtom;
+ Atom compizWindowBlurDecor;
+ }
+}
+
+static int (*oldErrorHandler) (Display *display, XErrorEvent *error);
+
+static int
+xErrorHandler (Display *display,
+ XErrorEvent *error)
+{
+ (void) display;
+
+ trappedErrorCode = error->error_code;
+
+ return 0;
+}
+
+void
+KWD::trapXError (void)
+{
+ trappedErrorCode = 0;
+ oldErrorHandler = XSetErrorHandler (xErrorHandler);
+}
+
+int
+KWD::popXError (void)
+{
+ XSync (QX11Info::display(), false);
+ XSetErrorHandler (oldErrorHandler);
+
+ return trappedErrorCode;
+}
+
+void *
+KWD::readXProperty (WId window,
+ Atom property,
+ Atom type,
+ int *items)
+{
+ long offset = 0, length = 2048L;
+ Atom actualType;
+ int format;
+ unsigned long nItems, bytesRemaining;
+ unsigned char *data = 0l;
+ int result;
+
+ KWD::trapXError ();
+ result = XGetWindowProperty (QX11Info::display(), window, property, offset,
+ length, false, type,
+ &actualType, &format, &nItems,
+ &bytesRemaining, &data);
+
+ if (KWD::popXError ())
+ return NULL;
+
+ if (result == Success && actualType == type && format == 32 && nItems > 0)
+ {
+ if (items)
+ *items = nItems;
+
+ return reinterpret_cast <void *>(data);
+ }
+
+ if (data)
+ XFree (data);
+
+ if (items)
+ *items = 0;
+
+ return NULL;
+}
+
+bool
+KWD::readWindowProperty (long window,
+ long property,
+ long *value)
+{
+ void *data = readXProperty (window, property, XA_WINDOW, NULL);
+
+ if (data)
+ {
+ if (value)
+ *value = *reinterpret_cast <int *>(data);
+
+ XFree (data);
+
+ return true;
+ }
+
+ return false;
+}
+
+unsigned short
+KWD::readPropertyShort (WId id,
+ Atom property,
+ unsigned short defaultValue)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ KWD::trapXError ();
+ result = XGetWindowProperty (QX11Info::display(), id, property,
+ 0L, 1L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+ if (KWD::popXError ())
+ return defaultValue;
+
+ if (result == Success && n && data)
+ {
+ unsigned int value;
+
+ memcpy (&value, data, sizeof (unsigned int));
+
+ XFree (data);
+
+ return value >> 16;
+ }
+
+ return defaultValue;
+}
+
+void
+KWD::Atoms::init (void)
+{
+ Display *xdisplay = QX11Info::display();
+
+ netFrameWindow = XInternAtom (xdisplay, "_NET_FRAME_WINDOW", false);
+ netWindowDecor = XInternAtom (xdisplay, DECOR_WINDOW_ATOM_NAME, false);
+ netWindowDecorNormal =
+ XInternAtom (xdisplay, DECOR_NORMAL_ATOM_NAME, false);
+ netWindowDecorActive =
+ XInternAtom (xdisplay, DECOR_ACTIVE_ATOM_NAME, false);
+ netWindowDecorBare =
+ XInternAtom (xdisplay, DECOR_BARE_ATOM_NAME, false);
+ switchSelectWindow =
+ XInternAtom (xdisplay, DECOR_SWITCH_WINDOW_ATOM_NAME, false);
+ switchFgColor =
+ XInternAtom (xdisplay, DECOR_SWITCH_FOREGROUND_COLOR_ATOM_NAME, false);
+ wmTakeFocus = XInternAtom (xdisplay, "WM_TAKE_FOCUS", false);
+ netWmContextHelp =
+ XInternAtom (xdisplay, "_NET_WM_CONTEXT_HELP", false);
+ wmProtocols = XInternAtom (xdisplay, "WM_PROTOCOLS", false);
+ netWmWindowOpacity =
+ XInternAtom (xdisplay, "_NET_WM_WINDOW_OPACITY", false);
+ toolkitActionAtom = XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION", false);
+ toolkitActionWindowMenuAtom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_WINDOW_MENU", false);
+ toolkitActionForceQuitDialogAtom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_FORCE_QUIT_DIALOG",
+ false);
+ compizWindowBlurDecor =
+ XInternAtom (xdisplay, DECOR_BLUR_ATOM_NAME, false);
+}
diff --git a/kde/window-decorator-kde4/utils.h b/kde/window-decorator-kde4/utils.h
new file mode 100644
index 0000000..121f276
--- /dev/null
+++ b/kde/window-decorator-kde4/utils.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _UTILS_H
+#define _UTILS_H
+
+#include <X11/Xlib.h>
+#include <fixx11h.h>
+#include <QWidget>
+
+namespace KWD
+{
+ namespace Atoms
+ {
+ extern Atom switchSelectWindow;
+ extern Atom switchFgColor;
+ extern Atom netWmWindowOpacity;
+ extern Atom netFrameWindow;
+ extern Atom netWindowDecor;
+ extern Atom netWindowDecorNormal;
+ extern Atom netWindowDecorActive;
+ extern Atom netWindowDecorBare;
+ extern Atom wmTakeFocus;
+ extern Atom netWmContextHelp;
+ extern Atom wmProtocols;
+ extern Atom toolkitActionAtom;
+ extern Atom toolkitActionWindowMenuAtom;
+ extern Atom toolkitActionForceQuitDialogAtom;
+ extern Atom compizWindowBlurDecor;
+
+ void init (void);
+ }
+
+ void trapXError (void);
+ int popXError (void);
+ bool eventFilter (void *message, long *result);
+ void *readXProperty (WId window, Atom property, Atom type, int *items);
+ bool readWindowProperty (long wId, long property, long *value);
+ unsigned short readPropertyShort (WId id,
+ Atom property,
+ unsigned short defaultValue);
+}
+
+#endif
diff --git a/kde/window-decorator-kde4/window.cpp b/kde/window-decorator-kde4/window.cpp
new file mode 100644
index 0000000..68c856b
--- /dev/null
+++ b/kde/window-decorator-kde4/window.cpp
@@ -0,0 +1,2225 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "window.h"
+#include "decorator.h"
+#include "options.h"
+#include "utils.h"
+
+#include <X11/Xlib.h>
+#include <X11/extensions/shape.h>
+#include <X11/extensions/Xcomposite.h>
+#include <X11/Xregion.h>
+
+#include <fixx11h.h>
+
+#include <KDE/KGlobal>
+#include <KDE/KGlobalSettings>
+#include <KDE/KIconLoader>
+#include <kdecoration.h>
+#include <kwindowsystem.h>
+#include <KDE/KLocale>
+#include <KDE/KStandardDirs>
+#include <KDE/KAction>
+#include <KDE/KActionCollection>
+#include <KDE/KIcon>
+
+#include <QApplication>
+#include <QEvent>
+#include <QWidget>
+#include <QString>
+#include <QTimer>
+#include <QMenu>
+#include <QX11Info>
+#include <QObjectList>
+#include <QVector>
+#include <QProcess>
+#include <QStyle>
+
+KWD::Window::Window (WId parentId,
+ WId clientId,
+ WId frame,
+ Type type,
+ int x,
+ int y,
+ int w,
+ int h): QWidget (0, 0),
+ mType (type),
+ mParentId (parentId),
+ mFrame (0),
+ mClientId (clientId),
+ mSelectedId (0),
+ mDecor (0),
+ mPixmap (0),
+ mDamageId (0),
+ mShadow (0),
+ mPicture (0),
+ mTexturePicture (0),
+ mDecorationPicture (0),
+ mUpdateProperty (false),
+ mShapeSet (false),
+ mUniqueHorzShape (false),
+ mUniqueVertShape (false),
+ mPopup (0),
+ mAdvancedMenu (0),
+ mOpacityMenu (0),
+ mDesktopMenu (0),
+ mMapped (false),
+ mPendingMap (0),
+ mPendingConfigure (0),
+ mProcessKiller (this),
+ mKeys (this),
+ mResizeOpAction (0),
+ mMoveOpAction (0),
+ mMaximizeOpAction (0),
+ mShadeOpAction (0),
+ mKeepAboveOpAction (0),
+ mKeepBelowOpAction (0),
+ mFullScreenOpAction (0),
+ mMinimizeOpAction (0),
+ mCloseOpAction (0),
+ mDesktopOpAction (0)
+{
+ memset (&mBorder, 0, sizeof (mBorder));
+
+ if (mType == Normal)
+ {
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMState |
+ NET::WMVisibleName, 0);
+
+ mState = wInfo.state ();
+
+ if (mType == Normal)
+ {
+ mName = wInfo.visibleName ();
+
+ mIcon = KWindowSystem::icon (mClientId, 32, 32, true,
+ KWindowSystem::NETWM |
+ KWindowSystem::WMHints );
+
+ mMiniIcon = KWindowSystem::icon (mClientId, 16, 16, true,
+ KWindowSystem::NETWM |
+ KWindowSystem::WMHints );
+
+ if (mIcon.isNull ())
+ {
+ mIcon = KWindowSystem::icon (mClientId, 32, 32, true,
+ KWindowSystem::ClassHint |
+ KWindowSystem::XApp );
+ mMiniIcon = KWindowSystem::icon (mClientId, 16, 16, true,
+ KWindowSystem::ClassHint |
+ KWindowSystem::XApp );
+ }
+
+ mOpacity = readPropertyShort (mClientId, Atoms::netWmWindowOpacity,
+ 0xffff);
+ }
+ else
+ {
+ mIcon = QPixmap ();
+ mMiniIcon = QPixmap ();
+ mName = QString ("");
+ }
+
+ updateFrame (frame);
+
+ mGeometry = QRect (x, y, w, h);
+
+ getWindowProtocols ();
+ }
+ else
+ {
+ mIcon = QPixmap ();
+ mMiniIcon = QPixmap ();
+ mName = QString ("");
+ mGeometry = QRect (50, 50, 30, 1);
+ }
+
+ createDecoration ();
+
+ mActiveChild = NULL;
+}
+
+KWD::Window::~Window (void)
+{
+ if (mShadow)
+ decor_shadow_destroy (QX11Info::display(), mShadow);
+
+ if (mPicture)
+ XRenderFreePicture (QX11Info::display(), mPicture);
+
+ if (mPixmap)
+ XFreePixmap (QX11Info::display(), mPixmap);
+
+ if (mTexturePicture)
+ XRenderFreePicture (QX11Info::display(), mTexturePicture);
+
+ if (mDecorationPicture)
+ XRenderFreePicture (QX11Info::display(), mDecorationPicture);
+
+ if (mDecor)
+ delete mDecor;
+
+ if (mPopup)
+ delete mPopup;
+
+ if (mProcessKiller.state () == QProcess::Running)
+ {
+ mProcessKiller.terminate ();
+ mProcessKiller.waitForFinished (10000);
+ if (mProcessKiller.state () == QProcess::Running)
+ {
+ mProcessKiller.kill ();
+ mProcessKiller.waitForFinished (5000);
+ }
+ }
+}
+
+bool
+KWD::Window::isActive (void) const
+{
+ if (mType == DefaultActive)
+ return true;
+
+ return Decorator::activeId () == mClientId;
+}
+
+bool
+KWD::Window::isCloseable (void) const
+{
+ KWindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionClose);
+}
+
+bool
+KWD::Window::isMaximizable (void) const
+{
+ KWindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionMax);
+}
+
+KDecoration::MaximizeMode
+KWD::Window::maximizeMode (void) const
+{
+ MaximizeMode mode = MaximizeRestore;
+
+ if (mType != Normal)
+ return mode;
+
+ mode =
+ ((mState & NET::MaxVert) ? MaximizeVertical : MaximizeRestore) |
+ ((mState & NET::MaxHoriz) ? MaximizeHorizontal : MaximizeRestore);
+
+ return mode;
+}
+
+bool
+KWD::Window::isMinimizable (void) const
+{
+ KWindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionMinimize);
+}
+
+bool
+KWD::Window::providesContextHelp (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return mSupportContextHelp;
+}
+
+int
+KWD::Window::desktop (void) const
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId,
+ NET::WMDesktop, 0);
+
+ return wInfo.desktop ();
+}
+
+bool
+KWD::Window::isModal (void) const
+{
+ return mState & NET::Modal;
+}
+
+bool
+KWD::Window::isShadeable (void) const
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionShade);
+}
+
+bool
+KWD::Window::isShade (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::Shaded);
+}
+
+bool
+KWD::Window::isSetShade (void) const
+{
+ return isShade ();
+}
+
+bool
+KWD::Window::keepAbove (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::KeepAbove);
+}
+
+bool
+KWD::Window::keepBelow (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::KeepBelow);
+}
+
+bool
+KWD::Window::isMovable (void) const
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionMove);
+}
+
+NET::WindowType
+KWD::Window::windowType (unsigned long mask) const
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId,
+ NET::WMWindowType, 0);
+
+ return wInfo.windowType (mask);
+}
+
+bool
+KWD::Window::isResizable (void) const
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionResize);
+}
+
+QIcon
+KWD::Window::icon (void) const
+{
+ QIcon icon (mIcon);
+ icon.addPixmap (mMiniIcon);
+ return icon;
+}
+
+QString
+KWD::Window::caption (void) const
+{
+ return mName;
+}
+
+/* TODO: We should use libtaskmanager, which is part of kdebase to create
+ the window menu instead but the headers for that library are currently
+ not installed. If kdebase could install those headers, we wouldn't have
+ to have our own window menu implementaion here. */
+void
+KWD::Window::showWindowMenu (const QPoint &pos)
+{
+ QPoint pnt;
+
+ if (!mPopup)
+ {
+ QAction *action;
+ const int levels[] = { 100, 90, 75, 50, 25, 10 };
+
+ mPopup = new QMenu ();
+ mPopup->setFont (KGlobalSettings::menuFont ());
+
+ connect (mPopup, SIGNAL (aboutToShow ()),
+ SLOT (handlePopupAboutToShow ()));
+ connect (mPopup, SIGNAL (triggered (QAction*)),
+ SLOT (handlePopupActivated (QAction*)));
+
+ mAdvancedMenu = new QMenu (mPopup);
+ mAdvancedMenu->setFont (KGlobalSettings::menuFont ());
+
+ mKeepAboveOpAction = mAdvancedMenu->addAction (i18n ("Keep &Above Others"));
+ mKeepAboveOpAction->setIcon (KIcon ("go-up"));
+ KAction *kaction = qobject_cast<KAction*>
+ (mKeys.action ("Window Above Other Windows"));
+ if (kaction != 0)
+ mKeepAboveOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mKeepAboveOpAction->setCheckable (true);
+ mKeepAboveOpAction->setData (KDecorationDefines::KeepAboveOp);
+
+ mKeepBelowOpAction = mAdvancedMenu->addAction (i18n ("Keep &Below Others"));
+ mKeepBelowOpAction->setIcon (KIcon ("go-down"));
+ kaction = qobject_cast<KAction*>
+ (mKeys.action ("Window Below Other Windows"));
+ if (kaction != 0)
+ mKeepBelowOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mKeepBelowOpAction->setCheckable (true);
+ mKeepBelowOpAction->setData (KDecorationDefines::KeepBelowOp);
+
+ mFullScreenOpAction = mAdvancedMenu->addAction (i18n ("&Fullscreen"));
+ mFullScreenOpAction->setIcon (KIcon ("view-fullscreen"));
+ kaction = qobject_cast<KAction*> (mKeys.action ("Window Fullscreen"));
+ if (kaction != 0)
+ mFullScreenOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mFullScreenOpAction->setCheckable (true);
+ mFullScreenOpAction->setData (KDecorationDefines::FullScreenOp);
+
+ action = mPopup->addMenu (mAdvancedMenu);
+ action->setText (i18n ("Ad&vanced"));
+
+ mOpacityMenu = new QMenu (mPopup);
+ mOpacityMenu->setFont (KGlobalSettings::menuFont ());
+
+ connect (mOpacityMenu, SIGNAL (triggered (QAction*)),
+ SLOT (handleOpacityPopupActivated (QAction*)));
+
+
+ for( unsigned int i = 0; i < sizeof (levels) / sizeof (levels[0]); ++i)
+ {
+ action = mOpacityMenu->addAction
+ (QString::number (levels[i]) + "%");
+ action->setCheckable (true);
+ action->setData (levels[i]);
+ }
+ action = mPopup->addMenu (mOpacityMenu);
+ action->setText (i18n ("&Opacity"));
+
+
+ mDesktopMenu = new QMenu (mPopup);
+ mDesktopMenu->setFont (KGlobalSettings::menuFont ());
+
+ connect (mDesktopMenu, SIGNAL (triggered (QAction*)),
+ SLOT (handleDesktopPopupActivated (QAction*)));
+
+ mDesktopOpAction = mPopup->addMenu (mDesktopMenu);
+ mDesktopOpAction->setText (i18n ("To &Desktop"));
+
+ mMoveOpAction = mPopup->addAction (i18n ("&Move"));
+ mMoveOpAction->setIcon (KIcon ("move"));
+ kaction = qobject_cast<KAction*> (mKeys.action ("Window Move"));
+ if (kaction != 0)
+ mMoveOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mMoveOpAction->setData (KDecorationDefines::MoveOp);
+
+ mResizeOpAction = mPopup->addAction (i18n ("Re&size"));
+ kaction = qobject_cast<KAction*> (mKeys.action("Window Resize"));
+ if (kaction != 0)
+ mResizeOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mResizeOpAction->setData (KDecorationDefines::ResizeOp);
+
+ mMinimizeOpAction = mPopup->addAction (i18n ("Mi&nimize"));
+ kaction = qobject_cast<KAction*> (mKeys.action ("Window Minimize"));
+ if (kaction != 0)
+ mMinimizeOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mMinimizeOpAction->setData (KDecorationDefines::MinimizeOp);
+
+ mMaximizeOpAction = mPopup->addAction (i18n ("Ma&ximize"));
+ kaction = qobject_cast<KAction*> (mKeys.action ("Window Maximize"));
+ if (kaction != 0)
+ mMaximizeOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mMaximizeOpAction->setCheckable (true);
+ mMaximizeOpAction->setData (KDecorationDefines::MaximizeOp);
+
+ mShadeOpAction = mPopup->addAction (i18n ("Sh&ade"));
+ kaction = qobject_cast<KAction*> (mKeys.action ("Window Shade"));
+ if (kaction != 0)
+ mShadeOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mShadeOpAction->setCheckable (true);
+ mShadeOpAction->setData (KDecorationDefines::ShadeOp);
+
+ mPopup->addSeparator ();
+
+ mCloseOpAction = mPopup->addAction (i18n("&Close"));
+ mCloseOpAction->setIcon (KIcon ("window-close" ));
+ kaction = qobject_cast<KAction*> (mKeys.action("Window Close"));
+ if (kaction != 0)
+ mCloseOpAction->setShortcut (kaction->globalShortcut ().primary ());
+ mCloseOpAction->setData (KDecorationDefines::CloseOp);
+ }
+
+ pnt = mapFromGlobal (pos);
+
+ pnt += QPoint (mGeometry.x () - mBorder.left,
+ mGeometry.y () - mBorder.top);
+
+ mPopup->exec (pnt);
+}
+
+void
+KWD::Window::showWindowMenu (const QRect &pos)
+{
+ showWindowMenu (pos.bottomLeft ());
+}
+
+void
+KWD::Window::processMousePressEvent (QMouseEvent *qme)
+{
+ Options::MouseCommand com = Options::MouseNothing;
+ bool active = isActive ();
+
+ if (!mSupportTakeFocus)
+ active = TRUE;
+
+ switch (qme->button ()) {
+ case Qt::LeftButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar1 () :
+ Decorator::options()->commandInactiveTitlebar1 ();
+ break;
+ case Qt::MidButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar2 () :
+ Decorator::options()->commandInactiveTitlebar2 ();
+ break;
+ case Qt::RightButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar3 () :
+ Decorator::options()->commandInactiveTitlebar3 ();
+ default:
+ break;
+ }
+
+ if (qme->button () == Qt::LeftButton)
+ {
+ // actions where it's not possible to get the matching release event
+ if (com != Options::MouseOperationsMenu &&
+ com != Options::MouseMinimize)
+ {
+ moveWindow (qme);
+ return;
+ }
+ }
+
+ performMouseCommand (com, qme);
+}
+
+void
+KWD::Window::performWindowOperation (WindowOperation wo)
+{
+ switch (wo) {
+ case KDecoration::MaximizeOp:
+ maximize (maximizeMode () == KDecoration::MaximizeFull ?
+ KDecoration::MaximizeRestore : KDecoration::MaximizeFull);
+ break;
+ case KDecoration::HMaximizeOp:
+ maximize (maximizeMode () ^ KDecoration::MaximizeHorizontal);
+ break;
+ case KDecoration::VMaximizeOp:
+ maximize (maximizeMode () ^ KDecoration::MaximizeVertical);
+ break;
+ case KDecoration::MinimizeOp:
+ minimize ();
+ break;
+ case KDecoration::ShadeOp:
+ setShade (!isShade ());
+ break;
+ case KDecoration::CloseOp:
+ closeWindow ();
+ break;
+ case KDecoration::KeepAboveOp:
+ setKeepAbove (!keepAbove ());
+ break;
+ case KDecoration::KeepBelowOp:
+ setKeepBelow (!keepBelow ());
+ break;
+ case KDecoration::FullScreenOp:
+ if (mState & NET::FullScreen)
+ KWindowSystem::clearState (mClientId, NET::FullScreen);
+ else
+ KWindowSystem::setState (mClientId, NET::FullScreen);
+ break;
+ case KDecoration::MoveOp:
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ mGeometry.x () +
+ mGeometry.width () / 2,
+ mGeometry.y () +
+ mGeometry.height () / 2,
+ NET::KeyboardMove);
+ break;
+ case KDecoration::ResizeOp:
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ mGeometry.x () +
+ mGeometry.width () / 2,
+ mGeometry.y () +
+ mGeometry.height () / 2,
+ NET::KeyboardSize);
+ default:
+ break;
+ }
+}
+
+bool
+KWD::Window::isPreview (void) const
+{
+ return false;
+}
+
+QRect
+KWD::Window::geometry (void) const
+{
+ QRect rect = QWidget::geometry ();
+
+ return QRect (rect.x () - ROOT_OFF_X,
+ rect.y () - ROOT_OFF_Y,
+ rect.width (),
+ rect.height ());
+}
+
+QRect
+KWD::Window::iconGeometry (void) const
+{
+ return QRect ();
+}
+
+QRect
+KWD::Window::clientGeometry (void)
+{
+ return mGeometry;
+
+ QRect frame = geometry ();
+
+ return QRect (frame.x () + mBorder.left,
+ frame.y () + mBorder.top,
+ frame.width () - mBorder.left - mBorder.right,
+ frame.height () - mBorder.top - mBorder.bottom);
+}
+
+QRegion
+KWD::Window::unobscuredRegion (const QRegion & r) const
+{
+ return r;
+}
+
+WId
+KWD::Window::windowId (void) const
+{
+ return mClientId;
+}
+
+void
+KWD::Window::closeWindow (void)
+{
+ Decorator::rootInfo ()->closeWindowRequest (mClientId);
+}
+
+void
+KWD::Window::maximize (MaximizeMode mode)
+{
+ KWindowSystem::setState (mClientId,
+ ((mode & MaximizeVertical) ? NET::MaxVert : 0) |
+ ((mode & MaximizeHorizontal) ? NET::MaxHoriz : 0));
+ KWindowSystem::clearState (mClientId,
+ ((mode & MaximizeVertical) ? 0 : NET::MaxVert) |
+ ((mode & MaximizeHorizontal) ? 0 : NET::MaxHoriz));
+}
+
+void
+KWD::Window::minimize (void)
+{
+ KWindowSystem::minimizeWindow (mClientId, false);
+}
+
+void
+KWD::Window::showContextHelp (void)
+{
+ if (mSupportContextHelp)
+ KWD::Decorator::sendClientMessage (mClientId, mClientId,
+ Atoms::wmProtocols,
+ Atoms::netWmContextHelp);
+}
+
+void
+KWD::Window::titlebarDblClickOperation (void)
+{
+ WindowOperation op;
+
+ op = KWD::Decorator::options ()->operationTitlebarDblClick ();
+ performWindowOperation (op);
+}
+
+void
+KWD::Window::setDesktop (int desktop)
+{
+ KWindowSystem::setOnDesktop (mClientId, desktop);
+}
+
+void
+KWD::Window::setKeepBelow (bool set)
+{
+ if (set)
+ {
+ KWindowSystem::clearState (mClientId, NET::KeepAbove);
+ KWindowSystem::setState (mClientId, NET::KeepBelow);
+ }
+ else
+ {
+ KWindowSystem::clearState (mClientId, NET::KeepBelow);
+ }
+}
+
+void
+KWD::Window::setKeepAbove (bool set)
+{
+ if (set)
+ {
+ KWindowSystem::clearState (mClientId, NET::KeepBelow);
+ KWindowSystem::setState (mClientId, NET::KeepAbove);
+ }
+ else
+ {
+ KWindowSystem::clearState (mClientId, NET::KeepAbove);
+ }
+}
+
+void
+KWD::Window::setShade (bool set)
+{
+ if (set)
+ KWindowSystem::setState (mClientId, NET::Shaded);
+ else
+ KWindowSystem::clearState (mClientId, NET::Shaded);
+
+ mDecor->shadeChange ();
+}
+
+void
+KWD::Window::titlebarMouseWheelOperation (int delta)
+{
+ Options::MouseCommand com;
+
+ com = Decorator::options()->operationTitlebarMouseWheel (delta);
+ performMouseCommand (com, 0);
+}
+
+int
+KWD::Window::currentDesktop (void) const
+{
+ return KWindowSystem::currentDesktop ();
+}
+
+QWidget *
+KWD::Window::initialParentWidget (void) const
+{
+ return const_cast <Window *> (this);
+}
+
+Qt::WFlags
+KWD::Window::initialWFlags (void) const
+{
+ return 0;
+}
+
+void
+KWD::Window::grabXServer (bool)
+{
+}
+
+void
+KWD::Window::repaintShadow (void)
+{
+}
+
+bool
+KWD::Window::compositingActive (void) const
+{
+ return true;
+}
+
+bool
+KWD::Window::shadowsActive (void) const
+{
+ /* we are drawing the shadows ourselves, no need for the
+ decoration engine to do so */
+ return false;
+}
+
+double
+KWD::Window::opacity (void) const
+{
+ return 1.0;
+}
+
+void
+KWD::Window::createDecoration (void)
+{
+ KDecoration *decor;
+
+ if (mDecor)
+ return;
+
+ decor = Decorator::pluginManager ()->createDecoration (this);
+ decor->init ();
+
+ mDecor = decor;
+
+ if (mType == Normal && mFrame)
+ {
+ KWD::trapXError ();
+ XSelectInput (QX11Info::display(), mFrame,
+ StructureNotifyMask | PropertyChangeMask |
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
+ EnterWindowMask | LeaveWindowMask);
+ if (KWD::popXError ())
+ return;
+ }
+
+ KWD::trapXError ();
+ XSelectInput (QX11Info::display(), this->winId(),
+ StructureNotifyMask | PropertyChangeMask);
+ KWD::popXError ();
+
+ resizeDecoration (true);
+}
+
+static void
+fillQRegion (Display *xdisplay,
+ Picture picture,
+ int clipX1,
+ int clipY1,
+ int clipX2,
+ int clipY2,
+ int xOff,
+ int yOff,
+ QRegion *region)
+{
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ QVector <QRect> rects = region->rects ();
+ int x1, y1, x2, y2;
+
+ foreach (QRect rect, rects)
+ {
+ x1 = rect.x ();
+ y1 = rect.y ();
+ x2 = x1 + rect.width ();
+ y2 = y1 + rect.height ();
+
+ if (x1 < clipX1)
+ x1 = clipX1;
+ if (y1 < clipY1)
+ y1 = clipY1;
+ if (x2 > clipX2)
+ x2 = clipX2;
+ if (y2 > clipY2)
+ y2 = clipY2;
+
+ if (x1 < x2 && y1 < y2)
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ xOff + x1,
+ yOff + y1,
+ x2 - x1,
+ y2 - y1);
+ }
+}
+
+static void
+drawBorderShape (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *c,
+ void *closure)
+{
+ static XRenderColor clear = { 0x0000, 0x0000, 0x0000, 0x0000 };
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ KWD::Window *w = (KWD::Window *) closure;
+ QRegion *shape;
+ bool uniqueHorzShade;
+ bool uniqueVertShade;
+ int xOffLeft, yOffTop, xOffRight, yOffBottom;
+ QRect rect = w->geometry ();
+ int x1, y1, x2, y2;
+
+ (void) pixmap;
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &clear,
+ 0, 0, width, height);
+
+ shape = w->getShape ();
+ w->getShapeInfo (&uniqueHorzShade, &uniqueVertShade);
+
+ xOffLeft = c->left_space - c->extents.left;
+ yOffTop = c->top_space - c->extents.top;
+
+ xOffRight = c->left_space - c->extents.left;
+ yOffBottom = c->top_space - c->extents.top;
+
+ x1 = c->left_space;
+ y1 = c->top_space;
+ x2 = width - c->right_space;
+ y2 = height - c->bottom_space;
+
+ if (shape)
+ {
+ if (uniqueHorzShade && uniqueVertShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ rect.width (), rect.height (),
+ xOffLeft, yOffTop, shape);
+ }
+ else
+ {
+ if (!uniqueHorzShade)
+ xOffRight = x2 - (rect.width () - c->extents.right);
+
+ if (!uniqueVertShade)
+ yOffBottom = y2 - (rect.height () - c->extents.bottom);
+
+ if (uniqueHorzShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ rect.width (), c->extents.top,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ 0, rect.height () - c->extents.bottom,
+ rect.width (), rect.height (),
+ xOffLeft, yOffBottom, shape);
+ }
+ else
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ c->extents.left, c->extents.top,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right, 0,
+ rect.width (), c->extents.top,
+ xOffRight, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ 0, rect.height () - c->extents.bottom,
+ c->extents.left, rect.height (),
+ xOffLeft, yOffBottom, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right,
+ rect.height () - c->extents.bottom,
+ rect.width (), rect.height (),
+ xOffRight, yOffBottom, shape);
+
+ y1 -= c->extents.top;
+ y2 += c->extents.bottom;
+ }
+
+ if (uniqueVertShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, c->extents.top,
+ c->extents.left,
+ rect.height () - c->extents.bottom,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right, c->extents.top,
+ rect.width (),
+ rect.height () - c->extents.bottom,
+ xOffRight, yOffTop, shape);
+ }
+ else
+ {
+ x1 -= c->extents.left;
+ x2 += c->extents.right;
+ }
+ }
+ }
+ else
+ {
+ x1 -= c->extents.left;
+ x2 += c->extents.right;
+ y1 -= c->extents.top;
+ y2 += c->extents.bottom;
+ }
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ x1,
+ y1,
+ x2 - x1,
+ y2 - y1);
+}
+
+static void
+cornersFromQRegion (QRegion *region,
+ int width,
+ int height,
+ int left,
+ int right,
+ int top,
+ int bottom,
+ int *leftCorner,
+ int *rightCorner,
+ int *topCorner,
+ int *bottomCorner)
+{
+ QRegion l, r, t, b;
+
+ l = QRegion (0, top, left, height - top - bottom) - *region;
+ r = QRegion (width - right, top, right, height - top - bottom) - *region;
+ t = QRegion (0, 0, width, top) - *region;
+ b = QRegion (0, height - bottom, width, bottom) - *region;
+
+ if (l.isEmpty ())
+ *leftCorner = left;
+ else
+ *leftCorner = left -
+ (l.boundingRect ().x () + l.boundingRect ().width ());
+
+ if (r.isEmpty ())
+ *rightCorner = right;
+ else
+ *rightCorner = r.boundingRect ().x () - width + right;
+
+ if (t.isEmpty ())
+ *topCorner = top;
+ else
+ *topCorner = top -
+ (t.boundingRect ().y () + t.boundingRect ().height ());
+
+ if (b.isEmpty ())
+ *bottomCorner = bottom;
+ else
+ *bottomCorner = b.boundingRect ().y () - height + bottom;
+}
+
+void
+KWD::Window::updateShadow (void)
+{
+ Display *xdisplay = QX11Info::display();
+ Screen *xscreen;
+ XRenderPictFormat *xformat;
+ int leftCorner, rightCorner, topCorner, bottomCorner;
+
+ xscreen = ScreenOfDisplay (xdisplay, QX11Info::appScreen ());
+
+ if (mShadow)
+ {
+ decor_shadow_destroy (QX11Info::display(), mShadow);
+ mShadow = NULL;
+ }
+
+ if (mShapeSet)
+ {
+ cornersFromQRegion (&mShape,
+ mGeometry.width () + mBorder.left + mBorder.right,
+ mGeometry.height () + mBorder.top + mBorder.bottom,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ &leftCorner,
+ &rightCorner,
+ &topCorner,
+ &bottomCorner);
+ }
+ else
+ {
+ leftCorner = mBorder.left;
+ rightCorner = mBorder.right;
+ topCorner = mBorder.top;
+ bottomCorner = mBorder.bottom;
+ }
+
+ /* use default shadow if such exist */
+ if (!mUniqueHorzShape && !mUniqueVertShape)
+ {
+ mShadow = Decorator::defaultWindowShadow (&mContext, &mBorder);
+ if (mShadow)
+ decor_shadow_reference (mShadow);
+ }
+
+ if (!mShadow)
+ {
+ mShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ mUniqueHorzShape ?
+ mGeometry.width () : 1,
+ mUniqueVertShape ?
+ mGeometry.height () : 1,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ leftCorner,
+ rightCorner,
+ topCorner,
+ bottomCorner,
+ KWD::Decorator::shadowOptions (),
+ &mContext,
+ drawBorderShape,
+ (void *) this);
+
+ if (mType == Default)
+ KWD::Decorator::updateDefaultShadow (this);
+ }
+
+ /* create new layout */
+ if (mType == Normal)
+ decor_get_best_layout (&mContext,
+ mGeometry.width (),
+ mGeometry.height (),
+ &mLayout);
+ else
+ decor_get_default_layout (&mContext,
+ mGeometry.width (),
+ mGeometry.height (),
+ &mLayout);
+
+ if (mDecorationPicture)
+ XRenderFreePicture (QX11Info::display(), mDecorationPicture);
+
+ if (mTexturePicture)
+ XRenderFreePicture (QX11Info::display(), mTexturePicture);
+
+ mTexturePixmap = QPixmap (mLayout.width, mLayout.height);
+ mTexturePixmapBuffer = QPixmap (mLayout.width, mLayout.height);
+
+ xformat = XRenderFindStandardFormat (QX11Info::display(),
+ PictStandardARGB32);
+
+ mDecorationPicture =
+ XRenderCreatePicture (QX11Info::display(),
+ mTexturePixmap.handle (),
+ xformat, 0, NULL);
+ mTexturePicture =
+ XRenderCreatePicture (QX11Info::display(),
+ mTexturePixmapBuffer.handle (),
+ xformat, 0, NULL);
+
+ decor_fill_picture_extents_with_shadow (QX11Info::display(),
+ mShadow,
+ &mContext,
+ mTexturePicture,
+ &mLayout);
+
+ if (mPixmap)
+ mDecor->widget ()->repaint ();
+
+ mUpdateProperty = true;
+}
+
+void
+KWD::Window::setMask (const QRegion &reg, int)
+{
+ QRegion top, bottom, left, right;
+ bool uniqueHorzShape, uniqueVertShape;
+
+ if (mShapeSet && reg == mShape)
+ return;
+
+ mShape = reg;
+ mShapeSet = true;
+
+ if (mFrame)
+ {
+ QRegion r;
+
+ r = reg - QRegion (mBorder.left, mBorder.top,
+ mGeometry.width (), mGeometry.height ());
+
+ KWD::trapXError ();
+ XShapeCombineRegion (QX11Info::display(),
+ mFrame,
+ ShapeInput,
+ 0,
+ 0,
+ r.handle (),
+ ShapeSet);
+ KWD::popXError ();
+ }
+
+ top = QRegion (mBorder.left, 0,
+ mGeometry.width (), mBorder.top) - reg;
+ bottom = QRegion (mBorder.left, mGeometry.height () + mBorder.top,
+ mGeometry.width (), mBorder.bottom) - reg;
+ left = QRegion (0, mBorder.top, mBorder.left,
+ mGeometry.height ()) - reg;
+ right = QRegion (mBorder.left + mGeometry.width (), mBorder.top,
+ mBorder.right, mGeometry.height ()) - reg;
+
+ uniqueHorzShape = !top.isEmpty () || !bottom.isEmpty ();
+ uniqueVertShape = !left.isEmpty () || !right.isEmpty ();
+
+ if (uniqueHorzShape || mUniqueHorzShape ||
+ uniqueVertShape || mUniqueVertShape)
+ {
+ mUniqueHorzShape = uniqueHorzShape;
+ mUniqueVertShape = uniqueVertShape;
+
+ if (mPixmap)
+ QTimer::singleShot (0, this, SLOT (updateShadow ()));
+ }
+}
+
+bool
+KWD::Window::resizeDecoration (bool force)
+{
+ int w, h;
+
+ mDecor->borders (mBorder.left, mBorder.right, mBorder.top, mBorder.bottom);
+
+ w = mGeometry.width () + mBorder.left + mBorder.right;
+ h = mGeometry.height () + mBorder.top + mBorder.bottom;
+
+ if (!force)
+ {
+ if (w == width () && h == height ())
+ return FALSE;
+ }
+
+ /* reset shape */
+ mShapeSet = false;
+ mUniqueHorzShape = false;
+ mUniqueVertShape = false;
+
+ if (mType != Normal)
+ {
+ Display *xdisplay = QX11Info::display();
+ Screen *xscreen;
+ decor_shadow_t *tmpShadow;
+ decor_context_t c;
+
+ xscreen = ScreenOfDisplay (xdisplay, QX11Info::appScreen ());
+
+ /* XXX: we have to create a temporary shadow to get the client
+ geometry. libdecoration should be fixed so it's able to just
+ fill out a context struct and not necessarily generate a
+ shadow for this purpose. */
+ tmpShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ 1, 1,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ KWD::Decorator::shadowOptions (),
+ &c,
+ decor_draw_simple,
+ (void *) 0);
+
+ decor_shadow_destroy (xdisplay, tmpShadow);
+
+ w = c.left_corner_space + 1 + c.right_corner_space;
+
+ /* most styles render something useful at least 30 px width */
+ if (w < 30)
+ w = 30;
+
+ mGeometry = QRect (50, 50, w,
+ c.top_corner_space + 1 + c.bottom_corner_space);
+ }
+
+ w = mGeometry.width () + mBorder.left + mBorder.right;
+ h = mGeometry.height () + mBorder.top + mBorder.bottom;
+
+ if (mPixmap)
+ {
+ XFreePixmap (QX11Info::display(), mPixmap);
+ mPixmap = None;
+ }
+
+ if (mPicture)
+ {
+ XRenderFreePicture (QX11Info::display(), mPicture);
+ mPicture = 0;
+ }
+
+ if (w != width() || h != height())
+ {
+ mPendingConfigure = 1;
+ }
+
+ setGeometry (QRect (mGeometry.x () + ROOT_OFF_X - mBorder.left,
+ mGeometry.y () + ROOT_OFF_Y - mBorder.top,
+ w, h));
+ XMoveResizeWindow (QX11Info::display(), winId(),
+ mGeometry.x () + ROOT_OFF_X - mBorder.left,
+ mGeometry.y () + ROOT_OFF_Y - mBorder.top,
+ w, h);
+
+ mSize = QSize (w, h);
+
+ if (!mMapped)
+ {
+ mPendingMap = 1;
+
+ XReparentWindow (QX11Info::display(), winId (), mParentId, 0, 0);
+
+ show ();
+
+ mMapped = true;
+
+ if (mDamageId != winId ())
+ {
+ mDamageId = winId ();
+ XDamageCreate (QX11Info::display(), mDamageId,
+ XDamageReportRawRectangles);
+ }
+ }
+
+ mDecor->resize (QSize (w, h));
+ mDecor->widget ()->show ();
+ mDecor->widget ()->update ();
+
+ return TRUE;
+}
+
+void
+KWD::Window::rebindPixmap (void)
+{
+ XRenderPictFormat *xformat;
+
+ if (mPicture)
+ XRenderFreePicture (QX11Info::display(), mPicture);
+
+ if (mPixmap)
+ XFreePixmap (QX11Info::display(), mPixmap);
+
+ mPixmap = XCompositeNameWindowPixmap (QX11Info::display(), winId ());
+
+ xformat = XRenderFindVisualFormat (QX11Info::display(),
+ (Visual *) QX11Info::appVisual ());
+
+ mPicture = XRenderCreatePicture (QX11Info::display(), mPixmap,
+ xformat, 0, NULL);
+
+ updateShadow ();
+}
+
+bool
+KWD::Window::handleMap (void)
+{
+ if (!mPendingMap)
+ return FALSE;
+
+ mPendingMap = 0;
+
+ if (mPendingConfigure)
+ return FALSE;
+
+ rebindPixmap ();
+
+ return TRUE;
+}
+
+bool
+KWD::Window::handleConfigure (QSize size)
+{
+ if (!mPendingConfigure)
+ return FALSE;
+
+ if (size != mSize)
+ return FALSE;
+
+ mPendingConfigure = 0;
+ if (mPendingConfigure || mPendingMap)
+ return FALSE;
+
+ rebindPixmap ();
+
+ return TRUE;
+}
+
+void
+KWD::Window::updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset)
+{
+ Atom atom = Atoms::compizWindowBlurDecor;
+ QRegion topQRegion, bottomQRegion, leftQRegion, rightQRegion;
+ Region topRegion = NULL;
+ Region bottomRegion = NULL;
+ Region leftRegion = NULL;
+ Region rightRegion = NULL;
+ int size = 0;
+ int w, h;
+
+ w = mGeometry.width () + mContext.extents.left + mContext.extents.right;
+ h = mGeometry.height () + mContext.extents.top + mContext.extents.bottom;
+
+ if (blurType != BLUR_TYPE_NONE)
+ {
+ QRegion r, shape = QRegion (0, 0, w, h);
+
+ if (mShapeSet)
+ shape = mShape;
+
+ r = QRegion (0, 0, w, mContext.extents.top);
+ topQRegion = r.intersect (shape);
+ if (!topQRegion.isEmpty ())
+ {
+ topQRegion.translate (-mContext.extents.left,
+ -mContext.extents.top);
+ topRegion = topQRegion.handle ();
+ }
+
+ if (blurType == BLUR_TYPE_ALL)
+ {
+ r = QRegion (0, h - mContext.extents.bottom,
+ w, mContext.extents.bottom);
+ bottomQRegion = r.intersect (shape);
+ if (!bottomQRegion.isEmpty ())
+ {
+ bottomQRegion.translate (-mContext.extents.left,
+ -(h - mContext.extents.bottom));
+ bottomRegion = bottomQRegion.handle ();
+ }
+
+ r = QRegion (0, mContext.extents.top,
+ mContext.extents.left, mGeometry.height ());
+ leftQRegion = r.intersect (shape);
+ if (!leftQRegion.isEmpty ())
+ {
+ leftQRegion.translate (-mContext.extents.left,
+ -mContext.extents.top);
+ leftRegion = leftQRegion.handle ();
+ }
+
+ r = QRegion (w - mContext.extents.right, mContext.extents.top,
+ mContext.extents.right, mGeometry.height ());
+ rightQRegion = r.intersect (shape);
+ if (!rightQRegion.isEmpty ())
+ {
+ rightQRegion.translate (-(w - mContext.extents.right),
+ -mContext.extents.top);
+ rightRegion = rightQRegion.handle ();
+ }
+ }
+ }
+
+ if (topRegion)
+ size += topRegion->numRects;
+ if (bottomRegion)
+ size += bottomRegion->numRects;
+ if (leftRegion)
+ size += leftRegion->numRects;
+ if (rightRegion)
+ size += rightRegion->numRects;
+
+ if (size)
+ {
+ long data[size * 6 + 2];
+
+ decor_region_to_blur_property (data, 4, 0,
+ mGeometry.width (),
+ mGeometry.height (),
+ topRegion, topOffset,
+ bottomRegion, bottomOffset,
+ leftRegion, leftOffset,
+ rightRegion, rightOffset);
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display(), mClientId, atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ 2 + size * 6);
+ KWD::popXError ();
+ }
+ else
+ {
+ KWD::trapXError ();
+ XDeleteProperty (QX11Info::display(), mClientId, atom);
+ KWD::popXError ();
+ }
+}
+
+void
+KWD::Window::updateProperty (void)
+{
+ Atom atom = Atoms::netWindowDecor;
+ decor_extents_t maxExtents;
+ long data[256];
+ decor_quad_t quads[N_QUADS_MAX];
+ int nQuad;
+ int lh, rh;
+ int w;
+ int minWidth;
+ unsigned int saveState;
+
+ if (mType == Default)
+ atom = Atoms::netWindowDecorNormal;
+ else if (mType == DefaultActive)
+ atom = Atoms::netWindowDecorActive;
+
+ saveState = mState;
+ mState = NET::MaxVert | NET::MaxHoriz;
+ mDecor->borders (maxExtents.left, maxExtents.right,
+ maxExtents.top, maxExtents.bottom);
+ mState = saveState;
+ mDecor->borders (mBorder.left, mBorder.right, mBorder.top, mBorder.bottom);
+
+ if (mLayout.rotation)
+ lh = mLayout.left.x2 - mLayout.left.x1;
+ else
+ lh = mLayout.left.y2 - mLayout.left.y1;
+
+ if (mLayout.rotation)
+ rh = mLayout.right.x2 - mLayout.right.x1;
+ else
+ rh = mLayout.right.y2 - mLayout.right.y1;
+
+ w = mLayout.top.x2 - mLayout.top.x1 - mContext.left_space -
+ mContext.right_space;
+
+ if (mType == Normal)
+ {
+ int topXOffset = w / 2;
+ QWidget *widget = mDecor->widget ();
+ int x;
+
+ x = w - mContext.left_space - mContext.left_corner_space;
+ if (x > topXOffset)
+ topXOffset = x;
+
+ if (widget)
+ {
+ const QList<QObject*> children = widget->children ();
+
+ foreach (QObject *obj, children)
+ {
+ QWidget *child;
+
+ if (!obj->isWidgetType ())
+ continue;
+
+ child = static_cast <QWidget *> (obj);
+
+ x = child->x () - mBorder.left - 2;
+ if (x > w / 2 && x < topXOffset)
+ topXOffset = x;
+ }
+ }
+
+ nQuad = decor_set_lXrXtXbX_window_quads (quads,
+ &mContext,
+ &mLayout,
+ lh / 2,
+ rh / 2,
+ topXOffset,
+ w / 2);
+
+ updateBlurProperty (topXOffset, w / 2, lh / 2, rh / 2);
+
+ minWidth = mContext.left_corner_space + 1 + mContext.right_corner_space;
+ }
+ else
+ {
+ nQuad = decor_set_lSrStSbS_window_quads (quads, &mContext, &mLayout);
+
+ minWidth = 1;
+ }
+
+ decor_quads_to_property (data, mTexturePixmap.handle (),
+ &mBorder, &maxExtents,
+ minWidth, 0,
+ quads, nQuad);
+
+ KWD::trapXError ();
+ XChangeProperty (QX11Info::display(), mClientId, atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ KWD::popXError ();
+
+ mUpdateProperty = false;
+}
+
+void
+KWD::Window::handleActiveChange (void)
+{
+ mDecor->activeChange ();
+ resizeDecoration ();
+}
+
+void
+KWD::Window::updateFrame (WId frame)
+{
+ mFrame = frame;
+
+ KWD::trapXError ();
+ XSelectInput (QX11Info::display(), mFrame,
+ StructureNotifyMask | PropertyChangeMask |
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
+ EnterWindowMask | LeaveWindowMask);
+ KWD::popXError ();
+}
+
+void
+KWD::Window::updateSelected (WId selectedId)
+{
+ mSelectedId = selectedId;
+
+ updateName ();
+}
+
+void
+KWD::Window::updateWindowGeometry (void)
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMGeometry);
+ QRect geometry = wInfo.geometry ();
+ int w, h;
+
+ w = mGeometry.width () + mBorder.left + mBorder.right;
+ h = mGeometry.height () + mBorder.top + mBorder.bottom;
+
+ if (mGeometry.width () != geometry.width () ||
+ mGeometry.height () != geometry.height ())
+ {
+ mGeometry = geometry;
+
+ if (resizeDecoration ())
+ return;
+ }
+ else if (mGeometry.x () != geometry.x () ||
+ mGeometry.y () != geometry.y ())
+ {
+ mGeometry = geometry;
+ }
+
+ move (mGeometry.x () + ROOT_OFF_X - mBorder.left,
+ mGeometry.y () + ROOT_OFF_Y - mBorder.top);
+}
+
+void
+KWD::Window::reloadDecoration (void)
+{
+ delete mDecor;
+ mDecor = 0;
+
+ mMapped = false;
+ mShapeSet = false;
+
+ if (mShadow)
+ {
+ decor_shadow_destroy (QX11Info::display(), mShadow);
+ mShadow = NULL;
+ }
+
+ createDecoration ();
+}
+
+Cursor
+KWD::Window::positionToCursor (QPoint pos)
+{
+ switch (mDecor->mousePosition (pos)) {
+ case PositionCenter:
+ return cursors[1][1].cursor;
+ case PositionLeft:
+ return cursors[1][0].cursor;
+ case PositionRight:
+ return cursors[1][2].cursor;
+ case PositionTop:
+ return cursors[0][1].cursor;
+ case PositionBottom:
+ return cursors[2][1].cursor;
+ case PositionTopLeft:
+ return cursors[0][0].cursor;
+ case PositionTopRight:
+ return cursors[0][2].cursor;
+ case PositionBottomLeft:
+ return cursors[2][0].cursor;
+ case PositionBottomRight:
+ return cursors[2][2].cursor;
+ default:
+ break;
+ }
+
+ return cursors[1][1].cursor;
+}
+
+void
+KWD::Window::updateCursor (QPoint pos)
+{
+ KWD::trapXError ();
+ XDefineCursor (QX11Info::display(), mFrame, positionToCursor (pos));
+ KWD::popXError ();
+}
+
+void
+KWD::Window::getWindowProtocols (void)
+{
+ Atom *p;
+ int n;
+ int status;
+
+ mSupportTakeFocus = false;
+ mSupportContextHelp = false;
+
+ KWD::trapXError ();
+ status = XGetWMProtocols (QX11Info::display(), mClientId, &p, &n);
+ if (KWD::popXError ())
+ return;
+
+ if (status)
+ {
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ if (p[i] == Atoms::wmTakeFocus)
+ mSupportTakeFocus = true;
+ else if (p[i] == Atoms::netWmContextHelp)
+ mSupportContextHelp = true;
+ }
+
+ if (n > 0)
+ XFree (p);
+ }
+}
+
+void
+KWD::Window::handlePopupActivated (QAction * action)
+{
+ WindowOperation op = static_cast <WindowOperation> (action->data().toInt());
+
+ performWindowOperation (op);
+}
+
+void
+KWD::Window::handleOpacityPopupActivated (QAction *action)
+{
+ int op = action->data().toInt();
+
+ op = op * 0xffff / 100;
+
+ if (op != mOpacity)
+ Decorator::sendClientMessage (QX11Info::appRootWindow(), mClientId,
+ Atoms::netWmWindowOpacity,
+ (op << 16) | op);
+}
+
+
+void
+KWD::Window::handleDesktopPopupActivated (QAction *action)
+{
+
+ if (action->data().toInt())
+ setDesktop (action->data().toInt());
+ else
+ KWindowSystem::setOnAllDesktops (mClientId, true);
+}
+
+void
+KWD::Window::handlePopupAboutToShow (void)
+{
+ int numberOfDesktops;
+
+ numberOfDesktops = KWindowSystem::numberOfDesktops ();
+ if (numberOfDesktops > 1)
+ {
+ NETRootInfo *rootInfo = Decorator::rootInfo ();
+ QString name;
+ int i;
+ int winDesktop = desktop ();
+ QAction *action;
+ const int BASE = 10;
+
+ mDesktopMenu->clear ();
+
+ action = mDesktopMenu->addAction (i18n ("&All Desktops"));
+ action->setData (0);
+ action->setCheckable (true);
+
+
+ action->setChecked (winDesktop == NET::OnAllDesktops);
+ mDesktopMenu->addSeparator ();
+
+ for (i = 1; i <= numberOfDesktops; i++)
+ {
+ QString basic_name ("%1 %2");
+ if (i < BASE)
+ basic_name.prepend ('&');
+
+ basic_name = basic_name.arg (i).arg (
+ QString (rootInfo->desktopName (i)).replace
+ ('&', "&&"));
+
+ action = mDesktopMenu->addAction (basic_name);
+ action->setData (i);
+ action->setCheckable (true);
+ action->setChecked (winDesktop == i);
+ }
+
+ mDesktopOpAction->setVisible (true);
+ }
+ else
+ {
+ mDesktopOpAction->setVisible (false);
+ }
+
+ mResizeOpAction->setEnabled (isResizable ());
+ mMoveOpAction->setEnabled (isMovable ());
+
+ mMaximizeOpAction->setEnabled (isMaximizable ());
+ mMaximizeOpAction->setChecked (maximizeMode () == MaximizeFull);
+
+ mShadeOpAction->setChecked (isShade ());
+ mShadeOpAction->setEnabled (isShadeable ());
+
+ mKeepAboveOpAction->setChecked (keepAbove ());
+ mKeepBelowOpAction->setChecked (keepBelow ());
+ mFullScreenOpAction->setChecked (mState & NET::FullScreen);
+
+ mMinimizeOpAction->setEnabled (isMinimizable ());
+ mCloseOpAction->setEnabled (isCloseable ());
+
+ foreach (QAction* action, mOpacityMenu->actions ())
+ {
+ if(action->data ().toInt () ==
+ qRound ((float)mOpacity * 100.0 / 0xffff))
+ action->setChecked( true );
+ else
+ action->setChecked( false );
+ }
+
+}
+
+void
+KWD::Window::updateState (void)
+{
+ KWindowInfo wInfo = KWindowSystem::windowInfo (mClientId, NET::WMState, 0);
+
+ unsigned long newState = wInfo.state ();
+ unsigned long stateChange = mState ^ newState;
+
+ mState = newState;
+
+ if (stateChange & NET::Max)
+ {
+ mDecor->maximizeChange ();
+ resizeDecoration (false);
+ }
+
+ if (stateChange & NET::KeepAbove && !(mState & NET::KeepAbove))
+ mDecor->emitKeepAboveChanged (mState & NET::KeepAbove);
+ if (stateChange & NET::KeepBelow && !(mState & NET::KeepBelow))
+ mDecor->emitKeepBelowChanged (mState & NET::KeepBelow);
+ if (stateChange & NET::KeepAbove && mState & NET::KeepAbove)
+ mDecor->emitKeepAboveChanged (mState & NET::KeepAbove);
+ if (stateChange & NET::KeepBelow && mState & NET::KeepBelow)
+ mDecor->emitKeepBelowChanged (mState & NET::KeepBelow);
+ if (stateChange & NET::Shaded)
+ mDecor->shadeChange ();
+ if (stateChange & NET::Sticky)
+ mDecor->desktopChange ();
+}
+
+void
+KWD::Window::updateName (void)
+{
+ KWindowInfo wInfo;
+
+ wInfo = KWindowSystem::windowInfo (mClientId, NET::WMVisibleName, 0);
+
+ mName = wInfo.visibleName ();
+
+ mDecor->captionChange ();
+}
+
+void
+KWD::Window::updateIcons (void)
+{
+ mIcon = KWindowSystem::icon (mClientId, 32, 32, true,
+ KWindowSystem::NETWM |
+ KWindowSystem::WMHints);
+
+ mMiniIcon = KWindowSystem::icon (mClientId, 16, 16, true,
+ KWindowSystem::NETWM |
+ KWindowSystem::WMHints);
+
+ if (mIcon.isNull ())
+ {
+ mIcon = KWindowSystem::icon (mClientId, 32, 32, true,
+ KWindowSystem::ClassHint |
+ KWindowSystem::XApp );
+ mMiniIcon = KWindowSystem::icon (mClientId, 16, 16, true,
+ KWindowSystem::ClassHint |
+ KWindowSystem::XApp );
+ }
+
+ mDecor->iconChange ();
+}
+
+NET::Direction
+KWD::Window::positionToDirection (int pos)
+{
+ switch (pos) {
+ case PositionLeft:
+ return NET::Left;
+ case PositionRight:
+ return NET::Right;
+ case PositionTop:
+ return NET::Top;
+ case PositionBottom:
+ return NET::Bottom;
+ case PositionTopLeft:
+ return NET::TopLeft;
+ case PositionTopRight:
+ return NET::TopRight;
+ case PositionBottomLeft:
+ return NET::BottomLeft;
+ case PositionBottomRight:
+ return NET::BottomRight;
+ default:
+ break;
+ }
+
+ return NET::Move;
+}
+
+void
+KWD::Window::moveWindow (QMouseEvent *qme)
+{
+ NET::Direction direction;
+
+ direction = positionToDirection (mDecor->mousePosition (qme->pos ()));
+
+ XUngrabPointer (QX11Info::display(), CurrentTime);
+ XUngrabKeyboard (QX11Info::display(), CurrentTime);
+
+ Decorator::rootInfo ()->restackRequest (mClientId, NET::FromApplication,
+ None, Above,
+ QX11Info::appTime());
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ qme->globalX (),
+ qme->globalY (),
+ direction);
+ mFakeRelease = true;
+
+}
+
+#define OPACITY_STEP (0xffff / 10)
+
+void
+KWD::Window::performMouseCommand (Options::MouseCommand command,
+ QMouseEvent *qme)
+{
+ switch (command) {
+ case Options::MouseRaise:
+ KWindowSystem::raiseWindow (mClientId);
+ break;
+ case Options::MouseLower:
+ KWindowSystem::lowerWindow (mClientId);
+ break;
+ case Options::MouseShade :
+ setShade (!isShade ());
+ break;
+ case Options::MouseSetShade:
+ setShade (true);
+ break;
+ case Options::MouseUnsetShade:
+ setShade (false);
+ break;
+ case Options::MouseOperationsMenu:
+ {
+ QPoint mp (0, 0);
+
+ if (qme)
+ mp = mapToGlobal (qme->pos ());
+
+ showWindowMenu (mp);
+ } break;
+ case Options::MouseMaximize:
+ maximize (KDecoration::MaximizeFull);
+ break;
+ case Options::MouseRestore:
+ maximize (KDecoration::MaximizeRestore);
+ break;
+ case Options::MouseMinimize:
+ minimize ();
+ break;
+ case Options::MouseAbove:
+ if (keepBelow ())
+ setKeepBelow (false);
+ else
+ setKeepAbove (true);
+ break;
+ case Options::MouseBelow:
+ if (keepAbove ())
+ setKeepAbove (false);
+ else
+ setKeepBelow (true);
+ break;
+ case Options::MousePreviousDesktop:
+ break;
+ case Options::MouseNextDesktop:
+ break;
+ case Options::MouseOpacityMore:
+ {
+ int opacity = mOpacity;
+
+ if (opacity < 0xffff)
+ {
+ opacity += OPACITY_STEP;
+ if (opacity > 0xffff)
+ opacity = 0xffff;
+
+ Decorator::sendClientMessage (QX11Info::appRootWindow(),
+ mClientId,
+ Atoms::netWmWindowOpacity,
+ (opacity << 16) | opacity);
+ }
+ } break;
+ case Options::MouseOpacityLess:
+ {
+ int opacity = mOpacity;
+
+ if (opacity > OPACITY_STEP)
+ {
+ opacity -= OPACITY_STEP;
+ if (opacity < OPACITY_STEP)
+ opacity = OPACITY_STEP;
+
+ Decorator::sendClientMessage (QX11Info::appRootWindow(),
+ mClientId,
+ Atoms::netWmWindowOpacity,
+ (opacity << 16) | opacity);
+ }
+ } break;
+ case Options::MouseActivateRaiseAndMove:
+ case Options::MouseActivateRaiseAndUnrestrictedMove:
+ case Options::MouseMove:
+ case Options::MouseUnrestrictedMove:
+ case Options::MouseResize:
+ case Options::MouseUnrestrictedResize:
+ if (qme)
+ moveWindow (qme);
+ case Options::MouseNothing:
+ default:
+ break;
+ }
+}
+
+void
+KWD::Window::processDamage (void)
+{
+ QRegion r1, r2;
+ int xOff, yOff, w;
+ double alpha;
+ int shade_alpha;
+
+ if (isActive ())
+ {
+ alpha = activeDecorationOpacity;
+ shade_alpha = activeDecorationOpacityShade;
+ }
+ else
+ {
+ alpha = decorationOpacity;
+ shade_alpha = decorationOpacityShade;
+ }
+
+ if (!mPixmap)
+ return;
+
+ if (mDamage.isEmpty ())
+ return;
+
+ if (mShapeSet)
+ mDamage = mShape.intersect (mDamage);
+
+ w = mGeometry.width () + mContext.extents.left + mContext.extents.right;
+
+ xOff = 0;
+ yOff = 0;
+
+ r1 = QRegion (xOff, yOff, w, mContext.extents.top);
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (QX11Info::display(),
+ &mContext,
+ mPicture,
+ xOff, xOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_TOP,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = 0;
+ yOff = mContext.extents.top + mGeometry.height ();
+
+ r1 = QRegion (xOff, yOff, w, mContext.extents.bottom);
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (QX11Info::display(),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_BOTTOM,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = 0;
+ yOff = mContext.extents.top;
+
+ r1 = QRegion (xOff, yOff, mContext.extents.left, mGeometry.height ());
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (QX11Info::display(),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_LEFT,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = mContext.extents.left + mGeometry.width ();
+ yOff = mContext.extents.top;
+
+ r1 = QRegion (xOff, yOff, mContext.extents.right, mGeometry.height ());
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (QX11Info::display(),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_RIGHT,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ mDamage = QRegion ();
+
+ XRenderComposite (QX11Info::display(),
+ PictOpSrc,
+ mTexturePicture,
+ None,
+ mDecorationPicture,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ mTexturePixmap.width (),
+ mTexturePixmap.height ());
+
+ if (mUpdateProperty)
+ updateProperty ();
+}
+
+void
+KWD::Window::showKillProcessDialog (Time timestamp)
+{
+ KWindowInfo kWinInfo =
+ KWindowSystem::windowInfo (mClientId, 0, NET::WM2WindowClass |
+ NET::WM2ClientMachine);
+ NETWinInfo wInfo = NETWinInfo (QX11Info::display(), mClientId,
+ QX11Info::appRootWindow(), NET::WMPid);
+ QByteArray clientMachine, resourceClass;
+ pid_t pid;
+ char buf[257];
+
+ if (mProcessKiller.state () == QProcess::Running)
+ return;
+
+ clientMachine = kWinInfo.clientMachine ();
+ resourceClass = kWinInfo.windowClassClass ();
+ pid = wInfo.pid ();
+
+ if (gethostname (buf, sizeof (buf) - 1) == 0)
+ {
+ if (strcmp (buf, clientMachine) == 0)
+ clientMachine = "localhost";
+ }
+
+ mProcessKiller.start (KStandardDirs::findExe ("kwin_killer_helper"),
+ QStringList () << "--pid" << QByteArray ().setNum (pid) <<
+ "--hostname" << clientMachine <<
+ "--windowname" << mName.toUtf8 () <<
+ "--applicationname" << resourceClass <<
+ "--wid" << QByteArray ().setNum ((unsigned int) mClientId) <<
+ "--timestamp" << QByteArray ().setNum ((unsigned int) timestamp),
+ QIODevice::NotOpen);
+}
+
+void
+KWD::Window::hideKillProcessDialog (void)
+{
+ if (mProcessKiller.state () == QProcess::Running)
+ {
+ mProcessKiller.terminate ();
+ }
+}
diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h
new file mode 100644
index 0000000..034e6fe
--- /dev/null
+++ b/kde/window-decorator-kde4/window.h
@@ -0,0 +1,277 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org>
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _WINDOW_H
+#define _WINDOW_H
+
+#include <kdecorationbridge.h>
+#include <KDE/KActionCollection>
+
+#include <qpixmap.h>
+#include <qwidget.h>
+#include <qprocess.h>
+
+#include <decoration.h>
+
+#include <X11/extensions/Xdamage.h>
+
+#include "utils.h"
+#include "options.h"
+
+class QProcess;
+class KDecoration;
+class KActionCollection;
+class QMenu;
+
+namespace KWD
+{
+class Window:public QWidget, public KDecorationBridgeUnstable {
+ Q_OBJECT public:
+
+ enum Type
+ {
+ Normal,
+ Default,
+ DefaultActive
+ };
+
+ public:
+ Window (WId parentId, WId clientId, WId frame, Type type,
+ int x = 0, int y = 0, int w = 1, int h = 1);
+ ~Window (void);
+
+ virtual bool isActive (void) const;
+ virtual bool isCloseable (void) const;
+ virtual bool isMaximizable (void) const;
+ virtual MaximizeMode maximizeMode (void) const;
+ virtual bool isMinimizable (void) const;
+ virtual bool providesContextHelp (void) const;
+ virtual int desktop (void) const;
+ virtual bool isModal (void) const;
+ virtual bool isShadeable (void) const;
+ virtual bool isShade (void) const;
+ virtual bool isSetShade (void) const;
+ virtual bool keepAbove (void) const;
+ virtual bool keepBelow (void) const;
+ virtual bool isMovable (void) const;
+ virtual bool isResizable (void) const;
+ virtual NET::WindowType
+ windowType (unsigned long supported_types) const;
+ virtual QIcon icon (void) const;
+ virtual QString caption (void) const;
+ virtual void processMousePressEvent (QMouseEvent *);
+ virtual void showWindowMenu (const QRect &);
+ virtual void showWindowMenu (const QPoint &);
+ virtual void performWindowOperation (WindowOperation);
+ virtual void setMask (const QRegion &, int);
+ virtual bool isPreview (void) const;
+ virtual QRect geometry (void) const;
+ virtual QRect iconGeometry (void) const;
+ virtual QRegion unobscuredRegion (const QRegion & r) const;
+ virtual WId windowId (void) const;
+ virtual void closeWindow (void);
+ virtual void maximize (MaximizeMode mode);
+ virtual void minimize (void);
+ virtual void showContextHelp (void);
+ virtual void setDesktop (int desktop);
+ virtual void titlebarDblClickOperation (void);
+ virtual void titlebarMouseWheelOperation (int delta);
+ virtual void setShade (bool set);
+ virtual void setKeepAbove (bool);
+ virtual void setKeepBelow (bool);
+ virtual int currentDesktop (void) const;
+ virtual QWidget *initialParentWidget (void) const;
+ virtual Qt::WFlags initialWFlags (void) const;
+ virtual void grabXServer (bool grab);
+
+ /* unstable API */
+ virtual void repaintShadow ();
+ virtual bool compositingActive () const;
+ virtual bool shadowsActive () const;
+ virtual double opacity () const;
+
+ void handleActiveChange (void);
+ void updateFrame (WId frame);
+ void updateWindowGeometry (void);
+ void updateCursor (QPoint pos);
+ void updateSelected (WId selected);
+ WId frameId (void) const
+ {
+ return mFrame;
+ }
+ KDecoration *decoration (void) const
+ {
+ return mDecor;
+ }
+ QWidget *activeChild (void) const
+ {
+ return mActiveChild;
+ }
+ void setActiveChild (QWidget * child)
+ {
+ mActiveChild = child;
+ }
+ QRegion *getShape (void)
+ {
+ if (mShapeSet)
+ return &mShape;
+
+ return NULL;
+ }
+ void getShapeInfo (bool *horz, bool *vert)
+ {
+ *horz = mUniqueHorzShape;
+ *vert = mUniqueVertShape;
+ }
+ void moveWindow (QMouseEvent *qme);
+ void reloadDecoration (void);
+ void updateState (void);
+ void updateName (void);
+ void updateIcons (void);
+ void updateOpacity (void)
+ {
+ mOpacity = readPropertyShort (mClientId, Atoms::netWmWindowOpacity,
+ 0xffff);
+ }
+ Drawable pixmapId (void) const
+ {
+ return mPixmap;
+ }
+ void addDamageRect (int x, int y, int w, int h)
+ {
+ mDamage += QRegion (x, y, w, h);
+ }
+ bool handleMap (void);
+ bool handleConfigure (QSize size);
+ void processDamage (void);
+ decor_context_t *context (void)
+ {
+ return &mContext;
+ }
+ decor_shadow_t *shadow (void)
+ {
+ return mShadow;
+ }
+ decor_extents_t *border (void)
+ {
+ return &mBorder;
+ }
+
+ QRect clientGeometry (void);
+ void showKillProcessDialog (Time timestamp);
+ void hideKillProcessDialog (void);
+
+ void setFakeRelease (bool fakeRelease)
+ {
+ mFakeRelease = fakeRelease;
+ }
+
+ bool getFakeRelease ()
+ {
+ return mFakeRelease;
+ }
+
+
+ private:
+ void createDecoration (void);
+ bool resizeDecoration (bool force = false);
+ void updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset);
+ void updateProperty (void);
+ void getWindowProtocols (void);
+ void performMouseCommand (KWD::Options::MouseCommand command,
+ QMouseEvent *qme);
+ NET::Direction positionToDirection (int pos);
+ Cursor positionToCursor (QPoint pos);
+ void rebindPixmap (void);
+
+
+ private slots:
+ void updateShadow (void);
+ void handlePopupActivated (QAction *action);
+ void handleOpacityPopupActivated (QAction *action);
+ void handleDesktopPopupActivated (QAction *action);
+ void handlePopupAboutToShow (void);
+
+ private:
+ Type mType;
+ WId mParentId;
+ WId mFrame;
+ WId mClientId;
+ WId mSelectedId;
+ QRect mGeometry;
+ QString mName;
+ QPixmap mIcon;
+ QPixmap mMiniIcon;
+ decor_extents_t mBorder;
+ unsigned short mOpacity;
+ KDecoration *mDecor;
+ QPixmap mTexturePixmap;
+ QPixmap mTexturePixmapBuffer;
+ Pixmap mPixmap;
+ QRegion mDamage;
+ WId mDamageId;
+ decor_layout_t mLayout;
+ decor_context_t mContext;
+ decor_shadow_t *mShadow;
+ Picture mPicture;
+ Picture mTexturePicture;
+ Picture mDecorationPicture;
+ bool mUpdateProperty;
+ bool mShapeSet;
+ bool mUniqueHorzShape;
+ bool mUniqueVertShape;
+ QRegion mShape;
+ QWidget *mActiveChild;
+ bool mSupportTakeFocus;
+ bool mSupportContextHelp;
+ QMenu *mPopup;
+ QMenu *mAdvancedMenu;
+ QMenu *mOpacityMenu;
+ QMenu *mDesktopMenu;
+ unsigned long mState;
+ bool mMapped;
+ int mPendingMap;
+ int mPendingConfigure;
+ QSize mSize;
+ QProcess mProcessKiller;
+ KActionCollection mKeys;
+ bool mFakeRelease;
+
+ QAction *mResizeOpAction;
+ QAction *mMoveOpAction;
+ QAction *mMaximizeOpAction;
+ QAction *mShadeOpAction;
+ QAction *mKeepAboveOpAction;
+ QAction *mKeepBelowOpAction;
+ QAction *mFullScreenOpAction;
+ QAction *mNoBorderOpAction;
+ QAction *mMinimizeOpAction;
+ QAction *mCloseOpAction;
+ QAction *mDesktopOpAction;
+ };
+}
+
+#endif
diff --git a/kde/window-decorator/KWinInterface.h b/kde/window-decorator/KWinInterface.h
new file mode 100644
index 0000000..aa236e9
--- /dev/null
+++ b/kde/window-decorator/KWinInterface.h
@@ -0,0 +1,17 @@
+// taken from KWin
+
+#ifndef KWIN_INTERFACE_H
+#define KWIN_INTERFACE_H
+
+#include <dcopobject.h>
+
+class KWinInterface:virtual public DCOPObject
+{
+ K_DCOP
+
+ k_dcop:
+
+ virtual ASYNC reconfigure () = 0;
+};
+
+#endif
diff --git a/kde/window-decorator/Makefile.am b/kde/window-decorator/Makefile.am
new file mode 100644
index 0000000..e6ed8a4
--- /dev/null
+++ b/kde/window-decorator/Makefile.am
@@ -0,0 +1,44 @@
+if USE_KDE
+
+BUILDSOURCES = \
+ decorator.moc.cpp \
+ window.moc.cpp \
+ KWinInterface_skel.cpp
+
+kde_window_decorator_DEPENDENCIES = \
+ $(top_builddir)/libdecoration/libdecoration.la
+kde_window_decorator_LDADD = \
+ $(top_builddir)/libdecoration/libdecoration.la \
+ @KDE_WINDOW_DECORATOR_LIBS@ @KDE_LIBS@
+dist_kde_window_decorator_SOURCES = \
+ main.cpp \
+ utils.cpp \
+ utils.h \
+ decorator.cpp \
+ decorator.h \
+ window.cpp \
+ window.h \
+ options.cpp \
+ options.h \
+ KWinInterface.h
+
+nodist_kde_window_decorator_SOURCES = $(BUILDSOURCES)
+
+kde_window_decorator_program = kde-window-decorator
+
+INCLUDES = -I$(top_srcdir)/include @KDE_WINDOW_DECORATOR_CFLAGS@ @KDE_CFLAGS@
+
+bin_PROGRAMS = $(kde_window_decorator_program)
+
+%.moc.cpp: %.h
+ $(QT_MOC) $< > $@
+
+%.kidl: %.h
+ $(DCOPIDL) $< > $@
+
+%_skel.cpp: %.kidl
+ $(DCOPIDL2CPP) $< > $@
+
+CLEANFILES = $(BUILDSOURCES) KWinInterface_skel.* KWinInterface_stub.*
+
+endif
diff --git a/kde/window-decorator/Makefile.in b/kde/window-decorator/Makefile.in
new file mode 100644
index 0000000..6722901
--- /dev/null
+++ b/kde/window-decorator/Makefile.in
@@ -0,0 +1,631 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@USE_KDE_TRUE@bin_PROGRAMS = $(am__EXEEXT_1)
+subdir = kde/window-decorator
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+@USE_KDE_TRUE@am__EXEEXT_1 = kde-window-decorator$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am__dist_kde_window_decorator_SOURCES_DIST = main.cpp utils.cpp \
+ utils.h decorator.cpp decorator.h window.cpp window.h \
+ options.cpp options.h KWinInterface.h
+@USE_KDE_TRUE@dist_kde_window_decorator_OBJECTS = main.$(OBJEXT) \
+@USE_KDE_TRUE@ utils.$(OBJEXT) decorator.$(OBJEXT) \
+@USE_KDE_TRUE@ window.$(OBJEXT) options.$(OBJEXT)
+@USE_KDE_TRUE@am__objects_1 = decorator.moc.$(OBJEXT) \
+@USE_KDE_TRUE@ window.moc.$(OBJEXT) \
+@USE_KDE_TRUE@ KWinInterface_skel.$(OBJEXT)
+@USE_KDE_TRUE@nodist_kde_window_decorator_OBJECTS = $(am__objects_1)
+kde_window_decorator_OBJECTS = $(dist_kde_window_decorator_OBJECTS) \
+ $(nodist_kde_window_decorator_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_kde_window_decorator_SOURCES) \
+ $(nodist_kde_window_decorator_SOURCES)
+DIST_SOURCES = $(am__dist_kde_window_decorator_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+@USE_KDE_TRUE@BUILDSOURCES = \
+@USE_KDE_TRUE@ decorator.moc.cpp \
+@USE_KDE_TRUE@ window.moc.cpp \
+@USE_KDE_TRUE@ KWinInterface_skel.cpp
+
+@USE_KDE_TRUE@kde_window_decorator_DEPENDENCIES = \
+@USE_KDE_TRUE@ $(top_builddir)/libdecoration/libdecoration.la
+
+@USE_KDE_TRUE@kde_window_decorator_LDADD = \
+@USE_KDE_TRUE@ $(top_builddir)/libdecoration/libdecoration.la \
+@USE_KDE_TRUE@ @KDE_WINDOW_DECORATOR_LIBS@ @KDE_LIBS@
+
+@USE_KDE_TRUE@dist_kde_window_decorator_SOURCES = \
+@USE_KDE_TRUE@ main.cpp \
+@USE_KDE_TRUE@ utils.cpp \
+@USE_KDE_TRUE@ utils.h \
+@USE_KDE_TRUE@ decorator.cpp \
+@USE_KDE_TRUE@ decorator.h \
+@USE_KDE_TRUE@ window.cpp \
+@USE_KDE_TRUE@ window.h \
+@USE_KDE_TRUE@ options.cpp \
+@USE_KDE_TRUE@ options.h \
+@USE_KDE_TRUE@ KWinInterface.h
+
+@USE_KDE_TRUE@nodist_kde_window_decorator_SOURCES = $(BUILDSOURCES)
+@USE_KDE_TRUE@kde_window_decorator_program = kde-window-decorator
+@USE_KDE_TRUE@INCLUDES = -I$(top_srcdir)/include @KDE_WINDOW_DECORATOR_CFLAGS@ @KDE_CFLAGS@
+@USE_KDE_TRUE@CLEANFILES = $(BUILDSOURCES) KWinInterface_skel.* KWinInterface_stub.*
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu kde/window-decorator/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu kde/window-decorator/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+kde-window-decorator$(EXEEXT): $(kde_window_decorator_OBJECTS) $(kde_window_decorator_DEPENDENCIES)
+ @rm -f kde-window-decorator$(EXEEXT)
+ $(CXXLINK) $(kde_window_decorator_OBJECTS) $(kde_window_decorator_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KWinInterface_skel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decorator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decorator.moc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.moc.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+@USE_KDE_TRUE@%.moc.cpp: %.h
+@USE_KDE_TRUE@ $(QT_MOC) $< > $@
+
+@USE_KDE_TRUE@%.kidl: %.h
+@USE_KDE_TRUE@ $(DCOPIDL) $< > $@
+
+@USE_KDE_TRUE@%_skel.cpp: %.kidl
+@USE_KDE_TRUE@ $(DCOPIDL2CPP) $< > $@
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/kde/window-decorator/decorator.cpp b/kde/window-decorator/decorator.cpp
new file mode 100644
index 0000000..ef08752
--- /dev/null
+++ b/kde/window-decorator/decorator.cpp
@@ -0,0 +1,1055 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <qglobal.h>
+
+#include <dcopclient.h>
+#include <kcmdlineargs.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kwinmodule.h>
+#include <klocale.h>
+#include <kcommondecoration.h>
+#include <kwin.h>
+#include <qwidgetlist.h>
+#include <qpoint.h>
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xcomposite.h>
+
+#include "decorator.h"
+#include "options.h"
+#include "utils.h"
+
+#include <stdio.h>
+
+#define SHADOW_RADIUS 8.0
+#define SHADOW_OPACITY 0.5
+#define SHADOW_OFFSET_X 1
+#define SHADOW_OFFSET_Y 1
+#define SHADOW_COLOR_RED 0x0000
+#define SHADOW_COLOR_GREEN 0x0000
+#define SHADOW_COLOR_BLUE 0x0000
+
+#define DBUS_DEST "org.freedesktop.compiz"
+#define DBUS_PATH "/org/freedesktop/compiz/decoration/display"
+#define DBUS_INTERFACE "org.freedesktop.compiz"
+#define DBUS_METHOD_GET "get"
+
+double decorationOpacity = 0.75;
+bool decorationOpacityShade = false;
+double activeDecorationOpacity = 1.0;
+bool activeDecorationOpacityShade = false;
+int blurType = BLUR_TYPE_NONE;
+
+decor_context_t KWD::Decorator::mDefaultContext;
+decor_extents_t KWD::Decorator::mDefaultBorder;
+decor_shadow_t *KWD::Decorator::mNoBorderShadow = 0;
+decor_shadow_t *KWD::Decorator::mDefaultShadow = 0;
+KWD::PluginManager *KWD::Decorator::mPlugins = 0;
+KWD::Options *KWD::Decorator::mOptions = 0;
+NETRootInfo *KWD::Decorator::mRootInfo;
+WId KWD::Decorator::mActiveId;
+decor_shadow_options_t KWD::Decorator::mShadowOptions;
+
+extern Time qt_x_time;
+
+struct _cursor cursors[3][3] = {
+ { C (top_left_corner), C (top_side), C (top_right_corner) },
+ { C (left_side), C (left_ptr), C (right_side) },
+ { C (bottom_left_corner), C (bottom_side), C (bottom_right_corner) }
+};
+
+KWD::PluginManager::PluginManager (KConfig *config): KDecorationPlugins (config)
+{
+ defaultPlugin = "kwin3_plastik";
+}
+
+static DBusHandlerResult
+dbusHandleMessage (DBusConnection *connection,
+ DBusMessage *message,
+ void *userData)
+{
+ KWD::Decorator *d = (KWD::Decorator *) userData;
+ char **path;
+ const char *interface, *member;
+ DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ interface = dbus_message_get_interface (message);
+ member = dbus_message_get_member (message);
+
+ (void) connection;
+
+ if (!interface || !member)
+ return result;
+
+ if (!dbus_message_is_signal (message, interface, member))
+ return result;
+
+ if (strcmp (member, "changed"))
+ return result;
+
+ if (!dbus_message_get_path_decomposed (message, &path))
+ return result;
+
+ if (!path[0] || !path[1] || !path[2] || !path[3] || !path[4] || !path[5])
+ {
+ dbus_free_string_array (path);
+ return result;
+ }
+
+ if (!strcmp (path[0], "org") &&
+ !strcmp (path[1], "freedesktop") &&
+ !strcmp (path[2], "compiz") &&
+ !strcmp (path[3], "decoration") &&
+ !strcmp (path[4], "display"))
+ {
+ decor_shadow_options_t opt = *d->shadowOptions ();
+
+ result = DBUS_HANDLER_RESULT_HANDLED;
+
+ if (strcmp (path[5], "shadow_radius") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_DOUBLE, &opt.shadow_radius,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_opacity") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_DOUBLE, &opt.shadow_opacity,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_color") == 0)
+ {
+ DBusError error;
+ char *str;
+
+ dbus_error_init (&error);
+
+ dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+
+ if (!dbus_error_is_set (&error))
+ {
+ int c[4];
+
+ if (sscanf (str, "#%2x%2x%2x%2x",
+ &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ opt.shadow_color[0] = c[0] << 8 | c[0];
+ opt.shadow_color[1] = c[1] << 8 | c[1];
+ opt.shadow_color[2] = c[2] << 8 | c[2];
+ }
+ }
+
+ dbus_error_free (&error);
+ }
+ else if (strcmp (path[5], "shadow_x_offset") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_INT32, &opt.shadow_offset_x,
+ DBUS_TYPE_INVALID);
+ }
+ else if (strcmp (path[5], "shadow_y_offset") == 0)
+ {
+ dbus_message_get_args (message, NULL,
+ DBUS_TYPE_INT32, &opt.shadow_offset_y,
+ DBUS_TYPE_INVALID);
+ }
+
+ d->changeShadowOptions (&opt);
+ }
+
+ dbus_free_string_array (path);
+
+ return result;
+}
+
+KWD::Decorator::Decorator (void) : DCOPObject ("KWinInterface"),
+ KApplication (),
+ mConfig (0),
+ mKWinModule (new KWinModule (this, KWinModule::INFO_ALL)),
+ mDBusQtConnection (this),
+ mCompositeWindow (0)
+{
+ XSetWindowAttributes attr;
+ DCOPClient *client;
+ int i, j;
+
+ mRootInfo = new NETRootInfo (qt_xdisplay (), 0);
+
+ mActiveId = 0;
+
+ Atoms::init ();
+
+ mConfig = new KConfig ("kwinrc");
+ mConfig->setGroup ("Style");
+
+ mOptions = new KWD::Options (mConfig);
+ mPlugins = new PluginManager (mConfig);
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ if (cursors[i][j].shape != XC_left_ptr)
+ cursors[i][j].cursor =
+ XCreateFontCursor (qt_xdisplay (), cursors[i][j].shape);
+ }
+ }
+
+ client = dcopClient ();
+ client->registerAs ("kwin", false);
+ client->setDefaultObject ("KWinInterface");
+
+ mShadowOptions.shadow_radius = SHADOW_RADIUS;
+ mShadowOptions.shadow_opacity = SHADOW_OPACITY;
+ mShadowOptions.shadow_offset_x = SHADOW_OFFSET_X;
+ mShadowOptions.shadow_offset_y = SHADOW_OFFSET_Y;
+ mShadowOptions.shadow_color[0] = SHADOW_COLOR_RED;
+ mShadowOptions.shadow_color[1] = SHADOW_COLOR_GREEN;
+ mShadowOptions.shadow_color[2] = SHADOW_COLOR_BLUE;
+
+ attr.override_redirect = True;
+
+ mCompositeWindow = XCreateWindow (qt_xdisplay (), qt_xrootwin (),
+ -ROOT_OFF_X, -ROOT_OFF_Y, 1, 1, 0,
+ CopyFromParent,
+ CopyFromParent,
+ CopyFromParent,
+ CWOverrideRedirect, &attr);
+
+ XCompositeRedirectSubwindows (qt_xdisplay (), mCompositeWindow,
+ CompositeRedirectManual);
+
+ XMapWindow (qt_xdisplay (), mCompositeWindow);
+}
+
+KWD::Decorator::~Decorator (void)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ for (it = mClients.begin (); it != mClients.end (); it++)
+ delete (*it);
+
+ if (mDecorNormal)
+ delete mDecorNormal;
+
+ if (mDecorActive)
+ delete mDecorActive;
+
+ XDestroyWindow (qt_xdisplay (), mCompositeWindow);
+
+ delete mOptions;
+ delete mPlugins;
+ delete mConfig;
+ delete mKWinModule;
+ delete mRootInfo;
+}
+
+bool
+KWD::Decorator::enableDecorations (Time timestamp,
+ int damageEvent)
+{
+ QValueList <WId>::ConstIterator it;
+ DBusError error;
+
+ mDmSnTimestamp = timestamp;
+ mDamageEvent = damageEvent;
+
+ if (!pluginManager ()->loadPlugin (""))
+ return false;
+
+ dbus_error_init (&error);
+
+ mDBusConnection = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!dbus_error_is_set (&error))
+ {
+ dbus_bus_add_match (mDBusConnection, "type='signal'", &error);
+
+ dbus_connection_add_filter (mDBusConnection,
+ dbusHandleMessage,
+ this, NULL);
+
+ mDBusQtConnection.dbus_connection_setup_with_qt_main (mDBusConnection);
+
+ updateAllShadowOptions ();
+ }
+
+ dbus_error_free (&error);
+
+ updateShadow ();
+
+ mDecorNormal = new KWD::Window (mCompositeWindow, qt_xrootwin (),
+ 0, Window::Default);
+ mDecorActive = new KWD::Window (mCompositeWindow, qt_xrootwin (),
+ 0, Window::DefaultActive);
+
+ connect (mKWinModule, SIGNAL (windowAdded (WId)),
+ SLOT (handleWindowAdded (WId)));
+ connect (mKWinModule, SIGNAL (windowRemoved (WId)),
+ SLOT (handleWindowRemoved (WId)));
+ connect (mKWinModule, SIGNAL (activeWindowChanged (WId)),
+ SLOT (handleActiveWindowChanged (WId)));
+ connect (mKWinModule,
+ SIGNAL (windowChanged (WId, const unsigned long *)),
+ SLOT (handleWindowChanged (WId, const unsigned long *)));
+
+ connect (&mIdleTimer, SIGNAL (timeout ()), SLOT (processDamage ()));
+
+ mActiveId = mKWinModule->activeWindow ();
+
+ it = mKWinModule->windows ().begin ();
+ for (; it != mKWinModule->windows ().end (); it++)
+ handleWindowAdded ((*it));
+
+ connect (this, SIGNAL (appearanceChanged ()), SLOT (reconfigure ()));
+
+ (void) QApplication::desktop (); // trigger creation of desktop widget
+
+ // select for client messages
+ XSelectInput (qt_xdisplay(), qt_xrootwin (),
+ StructureNotifyMask | PropertyChangeMask);
+
+ return true;
+}
+
+void
+KWD::Decorator::updateDefaultShadow (KWD::Window *w)
+{
+ bool uniqueHorzShape, uniqueVertShape;
+
+ if (mDefaultShadow)
+ {
+ decor_shadow_destroy (qt_xdisplay (), mDefaultShadow);
+ mDefaultShadow = NULL;
+ }
+
+ w->getShapeInfo (&uniqueHorzShape, &uniqueVertShape);
+
+ /* only return shadow if decoration doesn't use a unique shape */
+ if (uniqueHorzShape || uniqueVertShape)
+ return;
+
+ mDefaultContext = *w->context ();
+ mDefaultBorder = *w->border ();
+ mDefaultShadow = w->shadow ();
+
+ if (mDefaultShadow)
+ decor_shadow_reference (mDefaultShadow);
+}
+
+DBusMessage *
+KWD::Decorator::sendAndBlockForShadowOptionReply (const char *path)
+{
+ DBusMessage *message;
+
+ message = dbus_message_new_method_call (NULL,
+ path,
+ DBUS_INTERFACE,
+ DBUS_METHOD_GET);
+ if (message)
+ {
+ DBusMessage *reply;
+ DBusError error;
+
+ dbus_message_set_destination (message, DBUS_DEST);
+
+ dbus_error_init (&error);
+ reply = dbus_connection_send_with_reply_and_block (mDBusConnection,
+ message, -1,
+ &error);
+ dbus_message_unref (message);
+
+ if (!dbus_error_is_set (&error))
+ return reply;
+ }
+
+ return NULL;
+}
+
+void
+KWD::Decorator::updateAllShadowOptions (void)
+{
+ DBusMessage *reply;
+
+ reply = sendAndBlockForShadowOptionReply (DBUS_PATH "/shadow_radius");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_DOUBLE, &mShadowOptions.shadow_radius,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_unref (reply);
+ }
+
+ reply = sendAndBlockForShadowOptionReply (DBUS_PATH "/shadow_opacity");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_DOUBLE, &mShadowOptions.shadow_opacity,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+
+ reply = sendAndBlockForShadowOptionReply (DBUS_PATH "/shadow_color");
+ if (reply)
+ {
+ DBusError error;
+ char *str;
+
+ dbus_error_init (&error);
+
+ dbus_message_get_args (reply, &error,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID);
+
+ if (!dbus_error_is_set (&error))
+ {
+ int c[4];
+
+ if (sscanf (str, "#%2x%2x%2x%2x", &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ mShadowOptions.shadow_color[0] = c[0] << 8 | c[0];
+ mShadowOptions.shadow_color[1] = c[1] << 8 | c[1];
+ mShadowOptions.shadow_color[2] = c[2] << 8 | c[2];
+ }
+ }
+
+ dbus_error_free (&error);
+
+ dbus_message_unref (reply);
+ }
+
+ reply = sendAndBlockForShadowOptionReply (DBUS_PATH "/shadow_x_offset");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_INT32, &mShadowOptions.shadow_offset_x,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+
+ reply = sendAndBlockForShadowOptionReply (DBUS_PATH "/shadow_y_offset");
+ if (reply)
+ {
+ dbus_message_get_args (reply, NULL,
+ DBUS_TYPE_INT32, &mShadowOptions.shadow_offset_y,
+ DBUS_TYPE_INVALID);
+ dbus_message_unref (reply);
+ }
+}
+
+void
+KWD::Decorator::changeShadowOptions (decor_shadow_options_t *opt)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ if (!memcmp (opt, &mShadowOptions, sizeof (decor_shadow_options_t)))
+ return;
+
+ mShadowOptions = *opt;
+
+ updateShadow ();
+
+ mDecorNormal->reloadDecoration ();
+ mDecorActive->reloadDecoration ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.data ()->reloadDecoration ();
+}
+
+void
+KWD::Decorator::updateShadow (void)
+{
+ Display *xdisplay = qt_xdisplay ();
+ Screen *xscreen = ScreenOfDisplay (xdisplay, qt_xscreen ());
+ decor_context_t context;
+
+ if (mDefaultShadow)
+ {
+ decor_shadow_destroy (xdisplay, mDefaultShadow);
+ mDefaultShadow = NULL;
+ }
+
+ if (mNoBorderShadow)
+ decor_shadow_destroy (xdisplay, mNoBorderShadow);
+
+ mNoBorderShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ 1, 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0, 0, 0,
+ &mShadowOptions,
+ &context,
+ decor_draw_simple,
+ 0);
+
+ if (mNoBorderShadow)
+ {
+ decor_extents_t extents = { 0, 0, 0, 0 };
+ long data[256];
+ decor_quad_t quads[N_QUADS_MAX];
+ int nQuad;
+ decor_layout_t layout;
+
+ decor_get_default_layout (&context, 1, 1, &layout);
+
+ nQuad = decor_set_lSrStSbS_window_quads (quads, &context, &layout);
+
+ decor_quads_to_property (data, mNoBorderShadow->pixmap,
+ &extents, &extents,
+ 0, 0, quads, nQuad);
+
+ KWD::trapXError ();
+ XChangeProperty (qt_xdisplay (), qt_xrootwin (),
+ Atoms::netWindowDecorBare,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ KWD::popXError ();
+ }
+}
+
+void
+KWD::Decorator::processDamage (void)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+
+ mDecorNormal->processDamage ();
+ mDecorActive->processDamage ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.data ()->processDamage ();
+}
+
+bool
+KWD::Decorator::x11EventFilter (XEvent *xevent)
+{
+ KWD::Window *client;
+ int status;
+
+ switch (xevent->type) {
+ case MapNotify: {
+ XMapEvent *xme = reinterpret_cast <XMapEvent *> (xevent);
+
+ if (mWindows.contains (xme->window))
+ client = mWindows[xme->window];
+ else if (mDecorNormal->winId () == xme->window)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xme->window)
+ client = mDecorActive;
+ else
+ break;
+
+ if (client->handleMap ())
+ {
+ if (!mIdleTimer.isActive ())
+ mIdleTimer.start (0, TRUE);
+ }
+ } break;
+ case ConfigureNotify: {
+ XConfigureEvent *xce = reinterpret_cast <XConfigureEvent *> (xevent);
+
+ if (mFrames.contains (xce->window))
+ mFrames[xce->window]->updateFrame (xce->window);
+
+ if (mWindows.contains (xce->window))
+ client = mWindows[xce->window];
+ else if (mDecorNormal->winId () == xce->window)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xce->window)
+ client = mDecorActive;
+ else
+ break;
+
+ if (client->handleConfigure (QSize (xce->width, xce->height)))
+ {
+ if (!mIdleTimer.isActive ())
+ mIdleTimer.start (0, TRUE);
+ }
+ } break;
+ case SelectionRequest:
+ decor_handle_selection_request (qt_xdisplay (), xevent, mDmSnTimestamp);
+ break;
+ case SelectionClear:
+ status = decor_handle_selection_clear (qt_xdisplay (),
+ xevent, 0);
+ if (status == DECOR_SELECTION_GIVE_UP)
+ KApplication::exit (0);
+
+ break;
+ case PropertyNotify:
+ if (xevent->xproperty.atom == Atoms::netFrameWindow)
+ {
+ handleWindowAdded (xevent->xproperty.window);
+ }
+ else if (xevent->xproperty.atom == Atoms::switchSelectWindow)
+ {
+ if (!mClients.contains (xevent->xproperty.window))
+ {
+ handleWindowAdded (xevent->xproperty.window);
+ }
+ else
+ {
+ WId id;
+
+ if (KWD::readWindowProperty (xevent->xproperty.window,
+ Atoms::switchSelectWindow,
+ (long *) &id))
+ mClients[xevent->xproperty.window]->updateSelected (id);
+ }
+ }
+ else if (xevent->xproperty.atom == Atoms::netWmWindowOpacity)
+ {
+ if (mClients.contains (xevent->xproperty.window))
+ mClients[xevent->xproperty.window]->updateOpacity ();
+ }
+ break;
+ case EnterNotify:
+ {
+ XCrossingEvent *xce = reinterpret_cast <XCrossingEvent *> (xevent);
+ QWidget *widget, *child;
+
+ if (!mFrames.contains (xce->window))
+ break;
+
+ client = mFrames[xce->window];
+
+ widget = client->decoration ()->widget ();
+ child = widget->childAt (xce->x, xce->y, true);
+ if (child)
+ {
+ QEvent qe (QEvent::Enter);
+
+ QApplication::sendEvent (child, &qe);
+
+ client->setActiveChild (child);
+ client->updateCursor (QPoint (xce->x, xce->y));
+ }
+ } break;
+ case LeaveNotify:
+ {
+ XCrossingEvent *xce = reinterpret_cast <XCrossingEvent *> (xevent);
+
+ if (mFrames.contains (xce->window))
+ {
+ QEvent qe (QEvent::Leave);
+
+ client = mFrames[xce->window];
+
+ QApplication::sendEvent (client->activeChild (), &qe);
+
+ XUndefineCursor (qt_xdisplay (), client->frameId ());
+ }
+ } break;
+ case MotionNotify:
+ {
+ XMotionEvent *xme = reinterpret_cast < XMotionEvent * >(xevent);
+ QWidget *widget, *child;
+
+ if (!mFrames.contains (xme->window))
+ break;
+
+ client = mFrames[xme->window];
+
+ widget = client->decoration ()->widget ();
+ child = widget->childAt (xme->x, xme->y, true);
+ if (child)
+ {
+ QPoint qp (xme->x, xme->y);
+
+ if (child != client->activeChild ())
+ {
+ QEvent qee (QEvent::Enter);
+ QEvent qle (QEvent::Leave);
+
+ if (client->activeChild ())
+ QApplication::sendEvent (client->activeChild (), &qle);
+
+ QApplication::sendEvent (child, &qee);
+
+ client->setActiveChild (child);
+ }
+
+ if (widget != child)
+ qp -= QPoint (child->pos ().x (), child->pos ().y ());
+
+ QMouseEvent qme (QEvent::MouseMove, qp, Qt::NoButton, Qt::NoButton);
+
+ QApplication::sendEvent (child, &qme);
+
+ client->updateCursor (QPoint (xme->x, xme->y));
+ }
+ } break;
+ case ButtonPress:
+ case ButtonRelease:
+ {
+ XButtonEvent *xbe = reinterpret_cast <XButtonEvent *>(xevent);
+ QWidget *widget, *child;
+
+ if (!mFrames.contains (xbe->window))
+ break;
+
+ client = mFrames[xbe->window];
+
+ widget = client->decoration ()->widget ();
+ child = widget->childAt (xbe->x, xbe->y, true);
+
+ if (child)
+ {
+ XButtonEvent xbe2 = *xbe;
+
+ xbe2.window = child->winId ();
+ if (widget != child)
+ {
+ xbe2.x = xbe->x - child->pos ().x ();
+ xbe2.y = xbe->y - child->pos ().y ();
+ }
+
+ QApplication::x11ProcessEvent ((XEvent *) &xbe2);
+
+ return true;
+ }
+ } break;
+ case ClientMessage:
+ if (xevent->xclient.message_type == Atoms::toolkitActionAtom)
+ {
+ unsigned long action;
+
+ action = xevent->xclient.data.l[0];
+ if (action == Atoms::toolkitActionWindowMenuAtom)
+ {
+ if (mClients.contains (xevent->xclient.window))
+ {
+ QPoint pos;
+
+ client = mClients[xevent->xclient.window];
+
+ if (xevent->xclient.data.l[2])
+ {
+ pos = QPoint (xevent->xclient.data.l[3],
+ xevent->xclient.data.l[4]);
+ }
+ else
+ {
+ pos = client->clientGeometry ().topLeft ();
+ }
+
+ client->showWindowMenu (pos);
+ }
+ }
+ else if (action == Atoms::toolkitActionForceQuitDialogAtom)
+ {
+ if (mClients.contains (xevent->xclient.window))
+ {
+ Time timestamp = xevent->xclient.data.l[1];
+
+ client = mClients[xevent->xclient.window];
+
+ if (xevent->xclient.data.l[2])
+ client->showKillProcessDialog (timestamp);
+ else
+ client->hideKillProcessDialog ();
+ }
+ }
+ }
+ break;
+ default:
+ if (xevent->type == mDamageEvent + XDamageNotify)
+ {
+ XDamageNotifyEvent *xde =
+ reinterpret_cast <XDamageNotifyEvent *>(xevent);
+
+ if (mWindows.contains (xde->drawable))
+ client = mWindows[xde->drawable];
+ else if (mDecorNormal->winId () == xde->drawable)
+ client = mDecorNormal;
+ else if (mDecorActive->winId () == xde->drawable)
+ client = mDecorActive;
+ else
+ break;
+
+ client->addDamageRect (xde->area.x,
+ xde->area.y,
+ xde->area.width,
+ xde->area.height);
+
+ if (client->pixmapId ())
+ {
+ if (!mIdleTimer.isActive ())
+ mIdleTimer.start (0, TRUE);
+ }
+
+ return true;
+ }
+ break;
+ }
+
+ return KApplication::x11EventFilter (xevent);
+}
+
+void
+KWD::Decorator::reconfigure (void)
+{
+ unsigned long changed;
+
+ mConfig->reparseConfiguration ();
+
+ changed = mOptions->updateSettings ();
+ if (mPlugins->reset (changed))
+ {
+ QMap < WId, KWD::Window * >::ConstIterator it;
+
+ updateShadow ();
+
+ mDecorNormal->reloadDecoration ();
+ mDecorActive->reloadDecoration ();
+
+ for (it = mClients.constBegin (); it != mClients.constEnd (); it++)
+ it.data ()->reloadDecoration ();
+
+ mPlugins->destroyPreviousPlugin ();
+ }
+}
+
+void
+KWD::Decorator::handleWindowAdded (WId id)
+{
+ QMap <WId, KWD::Window *>::ConstIterator it;
+ KWD::Window *client = 0;
+ WId select, frame = 0;
+ KWD::Window::Type type;
+ unsigned int width, height, border, depth;
+ int x, y;
+ XID root;
+ QWidgetList *widgets;
+
+ /* avoid adding any of our own top level windows */
+ widgets = QApplication::topLevelWidgets ();
+ if (widgets)
+ {
+ for (QWidgetListIt it (*widgets); it.current (); ++it)
+ {
+ if (it.current ()->winId () == id)
+ {
+ delete widgets;
+ return;
+ }
+ }
+
+ delete widgets;
+ }
+
+ KWD::trapXError ();
+ XGetGeometry (qt_xdisplay (), id, &root, &x, &y, &width, &height,
+ &border, &depth);
+ if (KWD::popXError ())
+ return;
+
+ KWD::readWindowProperty (id, Atoms::netFrameWindow, (long *) &frame);
+ if (KWD::readWindowProperty (id, Atoms::switchSelectWindow,
+ (long *) &select))
+ {
+ type = KWD::Window::Switcher;
+ }
+ else
+ {
+ KWin::WindowInfo wInfo = KWin::windowInfo (id, NET::WMWindowType, 0);
+
+ switch (wInfo.windowType (~0)) {
+ case NET::Normal:
+ case NET::Dialog:
+ case NET::Toolbar:
+ case NET::Menu:
+ case NET::Utility:
+ case NET::Splash:
+ case NET::Unknown:
+ /* decorate these window types */
+ break;
+ default:
+ return;
+ }
+
+ type = KWD::Window::Normal;
+ }
+
+ KWD::trapXError ();
+ XSelectInput (qt_xdisplay (), id, StructureNotifyMask | PropertyChangeMask);
+ KWD::popXError ();
+
+ if (frame)
+ {
+ if (!mClients.contains (id))
+ {
+ client = new KWD::Window (mCompositeWindow, id, frame, type,
+ x, y,
+ width + border * 2,
+ height + border * 2);
+
+ mClients.insert (id, client);
+ mWindows.insert (client->winId (), client);
+ mFrames.insert (frame, client);
+ }
+ else
+ {
+ client = mClients[id];
+ mFrames.remove (client->frameId ());
+ mFrames.insert (frame, client);
+
+ client->updateFrame (frame);
+ }
+ }
+ else if (type == KWD::Window::Switcher)
+ {
+ if (!mClients.contains (id))
+ {
+ client = new KWD::Window (mCompositeWindow, id, 0, type,
+ x, y,
+ width + border * 2,
+ height + border * 2);
+ mClients.insert (id, client);
+ mWindows.insert (client->winId (), client);
+ }
+ }
+ else
+ {
+ if (mClients.contains (id))
+ client = mClients[id];
+
+ if (client)
+ {
+ mClients.remove (client->windowId ());
+ mWindows.remove (client->winId ());
+ mFrames.remove (client->frameId ());
+
+ delete client;
+ }
+ }
+}
+
+void
+KWD::Decorator::handleWindowRemoved (WId id)
+{
+ KWD::Window *window = 0;
+
+ if (mClients.contains (id))
+ window = mClients[id];
+ else if (mFrames.contains (id))
+ window = mFrames[id];
+
+ if (window)
+ {
+ mClients.remove (window->windowId ());
+ mWindows.remove (window->winId ());
+ mFrames.remove (window->frameId ());
+
+ delete window;
+ }
+}
+
+void
+KWD::Decorator::handleActiveWindowChanged (WId id)
+{
+ if (id != mActiveId)
+ {
+ KWD::Window *newActiveWindow = 0;
+ KWD::Window *oldActiveWindow = 0;
+
+ if (mClients.contains (id))
+ newActiveWindow = mClients[id];
+
+ if (mClients.contains (mActiveId))
+ oldActiveWindow = mClients[mActiveId];
+
+ mActiveId = id;
+
+ if (oldActiveWindow)
+ oldActiveWindow->handleActiveChange ();
+
+ if (newActiveWindow)
+ newActiveWindow->handleActiveChange ();
+ }
+}
+
+void
+KWD::Decorator::handleWindowChanged (WId id,
+ const unsigned long *properties)
+{
+ KWD::Window *client;
+
+ if (!mClients.contains (id))
+ return;
+
+ client = mClients[id];
+
+ if (properties[0] & NET::WMName)
+ client->updateName ();
+ if (properties[0] & NET::WMVisibleName)
+ client->updateName ();
+ if (properties[0] & NET::WMState)
+ client->updateState ();
+ if (properties[0] & NET::WMIcon)
+ client->updateIcons ();
+ if (properties[0] & NET::WMGeometry)
+ client->updateWindowGeometry ();
+}
+
+void
+KWD::Decorator::sendClientMessage (WId eventWid,
+ WId wid,
+ Atom atom,
+ Atom value,
+ long data1,
+ long data2,
+ long data3)
+{
+ XEvent ev;
+ long mask = 0;
+
+ memset (&ev, 0, sizeof (ev));
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.window = wid;
+ ev.xclient.message_type = atom;
+ ev.xclient.format = 32;
+
+ ev.xclient.data.l[0] = value;
+ ev.xclient.data.l[1] = qt_x_time;
+ ev.xclient.data.l[2] = data1;
+ ev.xclient.data.l[3] = data2;
+ ev.xclient.data.l[4] = data3;
+
+ if (eventWid == qt_xrootwin ())
+ mask = SubstructureRedirectMask | SubstructureNotifyMask;
+
+ KWD::trapXError ();
+ XSendEvent (qt_xdisplay (), eventWid, false, mask, &ev);
+ KWD::popXError ();
+}
diff --git a/kde/window-decorator/decorator.h b/kde/window-decorator/decorator.h
new file mode 100644
index 0000000..077eebf
--- /dev/null
+++ b/kde/window-decorator/decorator.h
@@ -0,0 +1,183 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _DECORATOR_H
+#define _DECORATOR_H
+
+#include <kapplication.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/cursorfont.h>
+
+#include <qtimer.h>
+
+#include <fixx11h.h>
+#include <kconfig.h>
+#include <kdecoration_plugins_p.h>
+#include <kdecoration_p.h>
+#include <netwm.h>
+
+#include <decoration.h>
+
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/connection.h>
+
+#include "window.h"
+#include "KWinInterface.h"
+
+#define ROOT_OFF_X 8192
+#define ROOT_OFF_Y 8192
+
+#define C(name) { 0, XC_ ## name }
+
+struct _cursor {
+ Cursor cursor;
+ unsigned int shape;
+};
+
+extern struct _cursor cursors[3][3];
+
+extern double decorationOpacity;
+extern bool decorationOpacityShade;
+extern double activeDecorationOpacity;
+extern bool activeDecorationOpacityShade;
+
+#define BLUR_TYPE_NONE 0
+#define BLUR_TYPE_TITLEBAR 1
+#define BLUR_TYPE_ALL 2
+
+extern int blurType;
+
+class KConfig;
+class KWinModule;
+
+namespace KWD
+{
+ class Options;
+
+class PluginManager:public KDecorationPlugins {
+ public:
+ PluginManager (KConfig *config);
+ virtual bool provides (Requirement)
+ {
+ return false;
+ }
+ };
+
+
+class Decorator:public KApplication, public KWinInterface {
+ Q_OBJECT public:
+ Decorator (void);
+ ~Decorator (void);
+
+ static NETRootInfo *rootInfo (void)
+ {
+ return mRootInfo;
+ }
+ static PluginManager *pluginManager (void)
+ {
+ return mPlugins;
+ }
+ static KWD::Options *options (void)
+ {
+ return mOptions;
+ }
+ static WId activeId (void)
+ {
+ return mActiveId;
+ }
+ static decor_shadow_options_t *shadowOptions (void)
+ {
+ return &mShadowOptions;
+ }
+ static decor_shadow_t *defaultWindowShadow (decor_context_t *context,
+ decor_extents_t *border)
+ {
+ if (!mDefaultShadow)
+ return NULL;
+
+ if (memcmp (border, &mDefaultBorder, sizeof (decor_extents_t)) != 0)
+ return NULL;
+
+ *context = mDefaultContext;
+ return mDefaultShadow;
+ }
+ static void sendClientMessage (WId eventWid,
+ WId wid,
+ Atom atom,
+ Atom value,
+ long data1 = 0,
+ long data2 = 0,
+ long data3 = 0);
+ static void updateDefaultShadow (KWD::Window *w);
+
+ bool enableDecorations (Time timestamp, int damageEvent);
+ bool x11EventFilter (XEvent *xevent);
+ void changeShadowOptions (decor_shadow_options_t *opt);
+
+ public slots:
+ void reconfigure (void);
+
+ private:
+ DBusMessage *sendAndBlockForShadowOptionReply (const char *path);
+ WId fetchFrame (WId window);
+ void updateShadow (void);
+ void updateAllShadowOptions (void);
+
+ private slots:
+ void handleWindowAdded (WId id);
+ void handleWindowRemoved (WId id);
+ void handleActiveWindowChanged (WId id);
+ void handleWindowChanged (WId id,
+ const unsigned long *properties);
+ void processDamage (void);
+
+ private:
+ static PluginManager *mPlugins;
+ static KWD::Options *mOptions;
+ static decor_extents_t mDefaultBorder;
+ static decor_context_t mDefaultContext;
+ static decor_shadow_t *mDefaultShadow;
+ static decor_shadow_t *mNoBorderShadow;
+ static decor_shadow_options_t mShadowOptions;
+ static NETRootInfo *mRootInfo;
+ static WId mActiveId;
+
+ KWD::Window *mDecorNormal;
+ KWD::Window *mDecorActive;
+ QMap <WId, KWD::Window *>mClients;
+ QMap <WId, KWD::Window *>mFrames;
+ QMap <WId, KWD::Window *>mWindows;
+ KConfig *mConfig;
+ Time mDmSnTimestamp;
+ int mDamageEvent;
+ QTimer mIdleTimer;
+ KWinModule *mKWinModule;
+ DBusConnection *mDBusConnection;
+ DBusQt::Connection mDBusQtConnection;
+ WId mCompositeWindow;
+ };
+}
+
+#endif
diff --git a/kde/window-decorator/main.cpp b/kde/window-decorator/main.cpp
new file mode 100644
index 0000000..6e9b258
--- /dev/null
+++ b/kde/window-decorator/main.cpp
@@ -0,0 +1,143 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <X11/Xlib.h>
+#include <X11/extensions/Xdamage.h>
+
+#include <fixx11h.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+
+#include "decorator.h"
+
+static const KCmdLineOptions options[] = {
+ { "replace", "Replace existing window decorator", 0 },
+ { "sm-disable", "Disable connection to session manager", 0 },
+ { "opacity <value>", "Decoration opacity", "0.75" },
+ { "no-opacity-shade", "No decoration opacity shading", 0 },
+ { "active-opacity <value>", "Active decoration opacity", "1.0" },
+ { "no-active-opacity-shade", "No active decoration opacity shading", 0 },
+ { "blur <type>", "Blur type", "none" },
+ KCmdLineLastOption
+};
+
+#include <kdebug.h>
+int
+main (int argc, char **argv)
+{
+ KWD::Decorator *app;
+ KCmdLineArgs *args;
+ int status;
+ int event, error;
+ Time timestamp;
+
+ KLocale::setMainCatalogue("kwin");
+
+ KCmdLineArgs::init (argc, argv,
+ "kde-window-decorator",
+ "KWD",
+ "KDE Window Decorator",
+ "0.0.1");
+ KCmdLineArgs::addCmdLineOptions (options);
+ args = KCmdLineArgs::parsedArgs ();
+
+ if (args->isSet ("opacity"))
+ decorationOpacity = args->getOption ("opacity").toDouble ();
+
+ if (args->isSet ("-opacity-shade"))
+ decorationOpacityShade = true;
+
+ if (args->isSet ("active-opacity"))
+ activeDecorationOpacity =
+ args->getOption ("active-opacity").toDouble ();
+
+ if (args->isSet ("-active-opacity-shade"))
+ activeDecorationOpacityShade = true;
+
+ if (args->isSet ("blur"))
+ {
+ QString blur = args->getOption ("blur");
+
+ if (blur == QString ("titlebar"))
+ blurType = BLUR_TYPE_TITLEBAR;
+ else if (blur == QString ("all"))
+ blurType = BLUR_TYPE_ALL;
+ }
+
+ app = new KWD::Decorator ();
+
+ if (args->isSet ("sm-disable"))
+ app->disableSessionManagement ();
+
+ if (!XDamageQueryExtension (qt_xdisplay (), &event, &error))
+ {
+ fprintf (stderr,
+ "%s: Damage extension is missing on display \"%s\"\n",
+ argv[0], DisplayString (qt_xdisplay ()));
+
+ return 1;
+ }
+
+ status = decor_acquire_dm_session (qt_xdisplay (), qt_xscreen (), "kwd",
+ args->isSet ("replace"),
+ &timestamp);
+ if (status != DECOR_ACQUIRE_STATUS_SUCCESS)
+ {
+ if (status == DECOR_ACQUIRE_STATUS_FAILED)
+ {
+ fprintf (stderr,
+ "%s: Could not acquire decoration manager "
+ "selection on screen %d display \"%s\"\n",
+ argv[0], qt_xscreen (), DisplayString (qt_xdisplay ()));
+ }
+ else if (status == DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING)
+ {
+ fprintf (stderr,
+ "%s: Screen %d on display \"%s\" already "
+ "has a decoration manager; try using the "
+ "--replace option to replace the current "
+ "decoration manager.\n",
+ argv[0], qt_xscreen (), DisplayString (qt_xdisplay ()));
+ }
+
+ return 1;
+ }
+
+ decor_set_dm_check_hint (qt_xdisplay (), qt_xscreen ());
+
+ if (!app->enableDecorations (timestamp, event))
+ {
+ fprintf (stderr,
+ "%s: Could not enable decorations on display \"%s\"\n",
+ argv[0], DisplayString (qt_xdisplay ()));
+
+ return 1;
+ }
+
+ status = app->exec ();
+
+ delete app;
+
+ return status;
+}
diff --git a/kde/window-decorator/options.cpp b/kde/window-decorator/options.cpp
new file mode 100644
index 0000000..46b5059
--- /dev/null
+++ b/kde/window-decorator/options.cpp
@@ -0,0 +1,187 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "options.h"
+
+#include <kconfig.h>
+#include <kdecoration_p.h>
+
+KWD::Options::Options (KConfig *config): KDecorationOptions (), mConfig (config)
+{
+ d = new KDecorationOptionsPrivate;
+ updateSettings ();
+}
+
+unsigned long
+KWD::Options::updateSettings (void)
+{
+ unsigned long changed = 0;
+
+ changed |= d->updateKWinSettings (mConfig);
+
+ mConfig->setGroup ("Windows");
+
+ OpTitlebarDblClick =
+ windowOperation (mConfig->readEntry ("TitlebarDoubleClickCommand",
+ "Shade"), true);
+ d->OpMaxButtonLeftClick =
+ windowOperation (mConfig->readEntry ("MaximizeButtonLeftClickCommand",
+ "Maximize"), true);
+ d->OpMaxButtonMiddleClick =
+ windowOperation (mConfig->readEntry ("MaximizeButtonMiddleClickCommand",
+ "Maximize (vertical only)"), true);
+ d->OpMaxButtonRightClick =
+ windowOperation (mConfig->readEntry ("MaximizeButtonRightClickCommand",
+ "Maximize (horizontal only)"),
+ true);
+
+ mConfig->setGroup ("MouseBindings");
+
+ CmdActiveTitlebar1 =
+ mouseCommand (mConfig->readEntry ("CommandActiveTitlebar1",
+ "Raise"), true);
+ CmdActiveTitlebar2 =
+ mouseCommand (mConfig->readEntry ("CommandActiveTitlebar2",
+ "Lower"), true);
+ CmdActiveTitlebar3 =
+ mouseCommand (mConfig->readEntry ("CommandActiveTitlebar3",
+ "Operations menu"), true);
+ CmdInactiveTitlebar1 =
+ mouseCommand (mConfig->readEntry ("CommandInactiveTitlebar1",
+ "Activate and raise"), true);
+ CmdInactiveTitlebar2 =
+ mouseCommand (mConfig->readEntry ("CommandInactiveTitlebar2",
+ "Activate and lower"), true);
+ CmdInactiveTitlebar3 =
+ mouseCommand (mConfig->readEntry ("CommandInactiveTitlebar3",
+ "Operations menu"), true);
+
+ CmdTitlebarWheel =
+ mouseWheelCommand (mConfig->readEntry ("CommandTitlebarWheel",
+ "Nothing"));
+
+ return changed;
+}
+
+// restricted should be true for operations that the user may not be able to
+// repeat if the window is moved out of the workspace (e.g. if the user moves
+// a window by the titlebar, and moves it too high beneath Kicker at the top
+// edge, they may not be able to move it back, unless they know about Alt+LMB)
+KDecorationDefines::WindowOperation
+KWD::Options::windowOperation (const QString &name, bool restricted)
+{
+ if (name == "Move")
+ return restricted ? KWD::Options::MoveOp :
+ KWD::Options::UnrestrictedMoveOp;
+ else if (name == "Resize")
+ return restricted ? KWD::Options::ResizeOp :
+ KWD::Options::UnrestrictedResizeOp;
+ else if (name == "Maximize")
+ return KWD::Options::MaximizeOp;
+ else if (name == "Minimize")
+ return KWD::Options::MinimizeOp;
+ else if (name == "Close")
+ return KWD::Options::CloseOp;
+ else if (name == "OnAllDesktops")
+ return KWD::Options::OnAllDesktopsOp;
+ else if (name == "Shade")
+ return KWD::Options::ShadeOp;
+ else if (name == "Operations")
+ return KWD::Options::OperationsOp;
+ else if (name == "Maximize (vertical only)")
+ return KWD::Options::VMaximizeOp;
+ else if (name == "Maximize (horizontal only)")
+ return KWD::Options::HMaximizeOp;
+ else if (name == "Lower")
+ return KWD::Options::LowerOp;
+ return KWD::Options::NoOp;
+}
+
+KWD::Options::MouseCommand
+KWD::Options::mouseCommand (const QString &name,
+ bool restricted)
+{
+ QString lowerName = name.lower ();
+
+ if (lowerName == "raise") return MouseRaise;
+ if (lowerName == "lower") return MouseLower;
+ if (lowerName == "operations menu") return MouseOperationsMenu;
+ if (lowerName == "toggle raise and lower") return MouseToggleRaiseAndLower;
+ if (lowerName == "activate and raise") return MouseActivateAndRaise;
+ if (lowerName == "activate and lower") return MouseActivateAndLower;
+ if (lowerName == "activate") return MouseActivate;
+ if (lowerName == "activate, raise and pass click")
+ return MouseActivateRaiseAndPassClick;
+ if (lowerName == "activate and pass click")
+ return MouseActivateAndPassClick;
+ if (lowerName == "activate, raise and move")
+ return restricted ? MouseActivateRaiseAndMove :
+ MouseActivateRaiseAndUnrestrictedMove;
+ if (lowerName == "move")
+ return restricted ? MouseMove : MouseUnrestrictedMove;
+ if (lowerName == "resize")
+ return restricted ? MouseResize : MouseUnrestrictedResize;
+ if (lowerName == "shade") return MouseShade;
+ if (lowerName == "minimize") return MouseMinimize;
+ if (lowerName == "nothing") return MouseNothing;
+
+ return MouseNothing;
+}
+
+KWD::Options::MouseWheelCommand
+KWD::Options::mouseWheelCommand (const QString &name)
+{
+ QString lowerName = name.lower ();
+
+ if (lowerName == "raise/lower") return MouseWheelRaiseLower;
+ if (lowerName == "shade/unshade") return MouseWheelShadeUnshade;
+ if (lowerName == "maximize/restore") return MouseWheelMaximizeRestore;
+ if (lowerName == "above/below") return MouseWheelAboveBelow;
+ if (lowerName == "previous/next desktop")
+ return MouseWheelPreviousNextDesktop;
+ if (lowerName == "change opacity") return MouseWheelChangeOpacity;
+
+ return MouseWheelNothing;
+}
+
+KWD::Options::MouseCommand
+KWD::Options::wheelToMouseCommand (MouseWheelCommand com,
+ int delta)
+{
+ switch (com) {
+ case MouseWheelRaiseLower:
+ return delta > 0 ? MouseRaise : MouseLower;
+ case MouseWheelShadeUnshade:
+ return delta > 0 ? MouseSetShade : MouseUnsetShade;
+ case MouseWheelMaximizeRestore:
+ return delta > 0 ? MouseMaximize : MouseRestore;
+ case MouseWheelAboveBelow:
+ return delta > 0 ? MouseAbove : MouseBelow;
+ case MouseWheelPreviousNextDesktop:
+ return delta > 0 ? MousePreviousDesktop : MouseNextDesktop;
+ case MouseWheelChangeOpacity:
+ return delta > 0 ? MouseOpacityMore : MouseOpacityLess;
+ default:
+ return MouseNothing;
+ }
+}
diff --git a/kde/window-decorator/options.h b/kde/window-decorator/options.h
new file mode 100644
index 0000000..785e855
--- /dev/null
+++ b/kde/window-decorator/options.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _OPTIONS_H
+#define _OPTIONS_H
+
+#include <kdecoration.h>
+
+class KConfig;
+
+namespace KWD
+{
+
+class Options : public KDecorationOptions
+ {
+ public:
+ enum MouseCommand
+ {
+ MouseRaise,
+ MouseLower,
+ MouseOperationsMenu,
+ MouseToggleRaiseAndLower,
+ MouseActivateAndRaise,
+ MouseActivateAndLower,
+ MouseActivate,
+ MouseActivateRaiseAndPassClick,
+ MouseActivateAndPassClick,
+ MouseMove,
+ MouseUnrestrictedMove,
+ MouseActivateRaiseAndMove,
+ MouseActivateRaiseAndUnrestrictedMove,
+ MouseResize,
+ MouseUnrestrictedResize,
+ MouseShade,
+ MouseSetShade,
+ MouseUnsetShade,
+ MouseMaximize,
+ MouseRestore,
+ MouseMinimize,
+ MouseNextDesktop,
+ MousePreviousDesktop,
+ MouseAbove,
+ MouseBelow,
+ MouseOpacityMore,
+ MouseOpacityLess,
+ MouseNothing
+ };
+ enum MouseWheelCommand
+ {
+ MouseWheelRaiseLower,
+ MouseWheelShadeUnshade,
+ MouseWheelMaximizeRestore,
+ MouseWheelAboveBelow,
+ MouseWheelPreviousNextDesktop,
+ MouseWheelChangeOpacity,
+ MouseWheelNothing
+ };
+
+ Options (KConfig *config);
+
+ virtual unsigned long updateSettings (void);
+
+ WindowOperation operationTitlebarDblClick (void)
+ {
+ return OpTitlebarDblClick;
+ }
+
+ MouseCommand commandActiveTitlebar1 (void)
+ {
+ return CmdActiveTitlebar1;
+ }
+ MouseCommand commandActiveTitlebar2 (void)
+ {
+ return CmdActiveTitlebar2;
+ }
+ MouseCommand commandActiveTitlebar3 (void)
+ {
+ return CmdActiveTitlebar3;
+ }
+ MouseCommand commandInactiveTitlebar1 (void)
+ {
+ return CmdInactiveTitlebar1;
+ }
+ MouseCommand commandInactiveTitlebar2 (void)
+ {
+ return CmdInactiveTitlebar2;
+ }
+ MouseCommand commandInactiveTitlebar3 (void)
+ {
+ return CmdInactiveTitlebar3;
+ }
+
+ MouseCommand operationTitlebarMouseWheel (int delta)
+ {
+ return wheelToMouseCommand (CmdTitlebarWheel, delta);
+ }
+
+ private:
+ static KDecorationDefines::WindowOperation
+ windowOperation (const QString &name, bool restricted);
+ MouseCommand mouseCommand (const QString &name, bool restricted);
+ MouseWheelCommand mouseWheelCommand (const QString &name);
+ MouseCommand wheelToMouseCommand (MouseWheelCommand com, int delta);
+
+ private:
+ KDecorationDefines::WindowOperation OpTitlebarDblClick;
+ MouseCommand CmdActiveTitlebar1;
+ MouseCommand CmdActiveTitlebar2;
+ MouseCommand CmdActiveTitlebar3;
+ MouseCommand CmdInactiveTitlebar1;
+ MouseCommand CmdInactiveTitlebar2;
+ MouseCommand CmdInactiveTitlebar3;
+ MouseWheelCommand CmdTitlebarWheel;
+
+ KConfig *mConfig;
+ };
+
+}
+
+#endif
diff --git a/kde/window-decorator/utils.cpp b/kde/window-decorator/utils.cpp
new file mode 100644
index 0000000..83d7a12
--- /dev/null
+++ b/kde/window-decorator/utils.cpp
@@ -0,0 +1,205 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "utils.h"
+
+#include <qt.h>
+
+#include <decoration.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+
+#include <stdlib.h>
+
+static int trappedErrorCode = 0;
+
+namespace KWD
+{
+ namespace Atoms
+ {
+ Atom switchSelectWindow;
+ Atom netWmWindowOpacity;
+ Atom netFrameWindow;
+ Atom netWindowDecor;
+ Atom netWindowDecorNormal;
+ Atom netWindowDecorActive;
+ Atom netWindowDecorBare;
+ Atom wmTakeFocus;
+ Atom netWmContextHelp;
+ Atom wmProtocols;
+ Atom toolkitActionAtom;
+ Atom toolkitActionWindowMenuAtom;
+ Atom toolkitActionForceQuitDialogAtom;
+ Atom compizWindowBlurDecor;
+ }
+}
+
+static int (*oldErrorHandler) (Display *display, XErrorEvent *error);
+
+static int
+xErrorHandler (Display *display,
+ XErrorEvent *error)
+{
+ (void) display;
+
+ trappedErrorCode = error->error_code;
+
+ return 0;
+}
+
+void
+KWD::trapXError (void)
+{
+ trappedErrorCode = 0;
+ oldErrorHandler = XSetErrorHandler (xErrorHandler);
+}
+
+int
+KWD::popXError (void)
+{
+ XSync (qt_xdisplay(), false);
+ XSetErrorHandler (oldErrorHandler);
+
+ return trappedErrorCode;
+}
+
+void *
+KWD::readXProperty (WId window,
+ Atom property,
+ Atom type,
+ int *items)
+{
+ long offset = 0, length = 2048L;
+ Atom actualType;
+ int format;
+ unsigned long nItems, bytesRemaining;
+ unsigned char *data = 0l;
+ int result;
+
+ KWD::trapXError ();
+ result = XGetWindowProperty (qt_xdisplay (), window, property, offset,
+ length, false, type,
+ &actualType, &format, &nItems,
+ &bytesRemaining, &data);
+
+ if (KWD::popXError ())
+ return NULL;
+
+ if (result == Success && actualType == type && format == 32 && nItems > 0)
+ {
+ if (items)
+ *items = nItems;
+
+ return reinterpret_cast <void *>(data);
+ }
+
+ if (data)
+ XFree (data);
+
+ if (items)
+ *items = 0;
+
+ return NULL;
+}
+
+bool
+KWD::readWindowProperty (long window,
+ long property,
+ long *value)
+{
+ void *data = readXProperty (window, property, XA_WINDOW, NULL);
+
+ if (data)
+ {
+ if (value)
+ *value = *reinterpret_cast <int *>(data);
+
+ XFree (data);
+
+ return true;
+ }
+
+ return false;
+}
+
+unsigned short
+KWD::readPropertyShort (WId id,
+ Atom property,
+ unsigned short defaultValue)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ KWD::trapXError ();
+ result = XGetWindowProperty (qt_xdisplay (), id, property,
+ 0L, 1L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+ if (KWD::popXError ())
+ return defaultValue;
+
+ if (result == Success && n && data)
+ {
+ unsigned int value;
+
+ memcpy (&value, data, sizeof (unsigned int));
+
+ XFree (data);
+
+ return value >> 16;
+ }
+
+ return defaultValue;
+}
+
+void
+KWD::Atoms::init (void)
+{
+ Display *xdisplay = qt_xdisplay ();
+
+ netFrameWindow = XInternAtom (xdisplay, "_NET_FRAME_WINDOW", false);
+ netWindowDecor = XInternAtom (xdisplay, DECOR_WINDOW_ATOM_NAME, false);
+ netWindowDecorNormal =
+ XInternAtom (xdisplay, DECOR_NORMAL_ATOM_NAME, false);
+ netWindowDecorActive =
+ XInternAtom (xdisplay, DECOR_ACTIVE_ATOM_NAME, false);
+ netWindowDecorBare =
+ XInternAtom (xdisplay, DECOR_BARE_ATOM_NAME, false);
+ switchSelectWindow =
+ XInternAtom (xdisplay, DECOR_SWITCH_WINDOW_ATOM_NAME, false);
+ wmTakeFocus = XInternAtom (xdisplay, "WM_TAKE_FOCUS", false);
+ netWmContextHelp =
+ XInternAtom (xdisplay, "_NET_WM_CONTEXT_HELP", false);
+ wmProtocols = XInternAtom (xdisplay, "WM_PROTOCOLS", false);
+ netWmWindowOpacity =
+ XInternAtom (xdisplay, "_NET_WM_WINDOW_OPACITY", false);
+ toolkitActionAtom = XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION", false);
+ toolkitActionWindowMenuAtom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_WINDOW_MENU", false);
+ toolkitActionForceQuitDialogAtom =
+ XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION_FORCE_QUIT_DIALOG",
+ false);
+ compizWindowBlurDecor =
+ XInternAtom (xdisplay, DECOR_BLUR_ATOM_NAME, false);
+}
diff --git a/kde/window-decorator/utils.h b/kde/window-decorator/utils.h
new file mode 100644
index 0000000..30364ff
--- /dev/null
+++ b/kde/window-decorator/utils.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _UTILS_H
+#define _UTILS_H
+
+#include <X11/Xlib.h>
+#include <fixx11h.h>
+#include <qwidget.h>
+
+namespace KWD
+{
+ namespace Atoms
+ {
+ extern Atom switchSelectWindow;
+ extern Atom netWmWindowOpacity;
+ extern Atom netFrameWindow;
+ extern Atom netWindowDecor;
+ extern Atom netWindowDecorNormal;
+ extern Atom netWindowDecorActive;
+ extern Atom netWindowDecorBare;
+ extern Atom wmTakeFocus;
+ extern Atom netWmContextHelp;
+ extern Atom wmProtocols;
+ extern Atom toolkitActionAtom;
+ extern Atom toolkitActionWindowMenuAtom;
+ extern Atom toolkitActionForceQuitDialogAtom;
+ extern Atom compizWindowBlurDecor;
+
+ void init (void);
+ }
+
+ void trapXError (void);
+ int popXError (void);
+ bool eventFilter (void *message, long *result);
+ void *readXProperty (WId window, Atom property, Atom type, int *items);
+ bool readWindowProperty (long wId, long property, long *value);
+ unsigned short readPropertyShort (WId id,
+ Atom property,
+ unsigned short defaultValue);
+}
+
+#endif
diff --git a/kde/window-decorator/window.cpp b/kde/window-decorator/window.cpp
new file mode 100644
index 0000000..55580e6
--- /dev/null
+++ b/kde/window-decorator/window.cpp
@@ -0,0 +1,2091 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include "window.h"
+#include "decorator.h"
+#include "options.h"
+#include "utils.h"
+
+#include <X11/Xlib.h>
+#include <X11/extensions/shape.h>
+#include <X11/extensions/Xcomposite.h>
+#include <X11/Xregion.h>
+
+#include <fixx11h.h>
+
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kglobalsettings.h>
+#include <kiconloader.h>
+#include <kdecoration.h>
+#include <kwin.h>
+#include <klocale.h>
+#include <kprocess.h>
+#include <kstandarddirs.h>
+
+#include <qapplication.h>
+#include <qlayout.h>
+#include <qevent.h>
+#include <qpainter.h>
+#include <qobjectlist.h>
+#include <qwidget.h>
+#include <qstring.h>
+#include <qtimer.h>
+#include <qcursor.h>
+#include <qpopupmenu.h>
+
+KWD::Window::Window (WId parentId,
+ WId clientId,
+ WId frame,
+ Type type,
+ int x,
+ int y,
+ int w,
+ int h): QWidget (0, 0),
+ mType (type),
+ mParentId (parentId),
+ mFrame (0),
+ mClientId (clientId),
+ mSelectedId (0),
+ mDecor (0),
+ mPixmap (0),
+ mDamageId (0),
+ mShadow (0),
+ mPicture (0),
+ mTexturePicture (0),
+ mDecorationPicture (0),
+ mUpdateProperty (false),
+ mShapeSet (false),
+ mUniqueHorzShape (false),
+ mUniqueVertShape (false),
+ mPopup (0),
+ mAdvancedMenu (0),
+ mDesktopMenu (0),
+ mMapped (false),
+ mPendingMap (0),
+ mPendingConfigure (0),
+ mProcessKiller (0)
+{
+ memset (&mBorder, 0, sizeof (mBorder));
+
+ if (mType == Normal || mType == Switcher)
+ {
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMState |
+ NET::WMVisibleName, 0);
+
+ mState = wInfo.state ();
+
+ if (mType == Normal)
+ {
+ mName = wInfo.visibleName ();
+
+ mIcons = QIconSet (KWin::icon (mClientId, 16, 16, TRUE),
+ KWin::icon (mClientId, 32, 32, TRUE));
+ mOpacity = readPropertyShort (mClientId, Atoms::netWmWindowOpacity,
+ 0xffff);
+ }
+ else
+ {
+ mIcons = QIconSet ();
+ mName = QString ("");
+ }
+
+ updateFrame (frame);
+
+ mGeometry = QRect (x, y, w, h);
+
+ getWindowProtocols ();
+ }
+ else
+ {
+ mIcons = QIconSet ();
+ mName = QString ("");
+ mGeometry = QRect (50, 50, 30, 1);
+ }
+
+ setGeometry (QRect (mGeometry.x () + ROOT_OFF_X,
+ mGeometry.y () + ROOT_OFF_Y,
+ mGeometry.width (), mGeometry.height ()));
+
+ createDecoration ();
+
+ mActiveChild = NULL;
+}
+
+KWD::Window::~Window (void)
+{
+ if (mShadow)
+ decor_shadow_destroy (qt_xdisplay (), mShadow);
+
+ if (mPicture)
+ XRenderFreePicture (qt_xdisplay (), mPicture);
+
+ if (mPixmap)
+ XFreePixmap (qt_xdisplay (), mPixmap);
+
+ if (mTexturePicture)
+ XRenderFreePicture (qt_xdisplay (), mTexturePicture);
+
+ if (mDecorationPicture)
+ XRenderFreePicture (qt_xdisplay (), mDecorationPicture);
+
+ if (mDecor)
+ delete mDecor;
+
+ if (mPopup)
+ delete mPopup;
+
+ if (mProcessKiller)
+ delete mProcessKiller;
+}
+
+bool
+KWD::Window::isActive (void) const
+{
+ if (mType == DefaultActive)
+ return true;
+
+ if (mType == Switcher)
+ return true;
+
+ return Decorator::activeId () == mClientId;
+}
+
+bool
+KWD::Window::isCloseable (void) const
+{
+ KWin::WindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWin::windowInfo (mClientId, NET::WMPid, NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionClose);
+}
+
+bool
+KWD::Window::isMaximizable (void) const
+{
+ KWin::WindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWin::windowInfo (mClientId, NET::WMPid, NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionMax);
+}
+
+KDecoration::MaximizeMode
+KWD::Window::maximizeMode (void) const
+{
+ MaximizeMode mode = MaximizeRestore;
+
+ if (mType != Normal)
+ return mode;
+
+ mode =
+ ((mState & NET::MaxVert) ? MaximizeVertical : MaximizeRestore) |
+ ((mState & NET::MaxHoriz) ? MaximizeHorizontal : MaximizeRestore);
+
+ return mode;
+}
+
+bool
+KWD::Window::isMinimizable (void) const
+{
+ KWin::WindowInfo wInfo;
+
+ if (mType != Normal)
+ return false;
+
+ wInfo = KWin::windowInfo (mClientId, NET::WMPid, NET::WM2AllowedActions);
+ return wInfo.actionSupported (NET::ActionMinimize);
+}
+
+bool
+KWD::Window::providesContextHelp (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return mSupportContextHelp;
+}
+
+int
+KWD::Window::desktop (void) const
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMDesktop, 0);
+
+ return wInfo.desktop ();
+}
+
+bool
+KWD::Window::isModal (void) const
+{
+ return mState & NET::Modal;
+}
+
+bool
+KWD::Window::isShadeable (void) const
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionShade);
+}
+
+bool
+KWD::Window::isShade (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::Shaded);
+}
+
+bool
+KWD::Window::isSetShade (void) const
+{
+ return isShade ();
+}
+
+bool
+KWD::Window::keepAbove (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::KeepAbove);
+}
+
+bool
+KWD::Window::keepBelow (void) const
+{
+ if (mType != Normal)
+ return false;
+
+ return (mState & NET::KeepBelow);
+}
+
+bool
+KWD::Window::isMovable (void) const
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionMove);
+}
+
+NET::WindowType
+KWD::Window::windowType (unsigned long mask) const
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMWindowType, 0);
+
+ return wInfo.windowType (mask);
+}
+
+bool
+KWD::Window::isResizable (void) const
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMPid,
+ NET::WM2AllowedActions);
+
+ return wInfo.actionSupported (NET::ActionResize);
+}
+
+QIconSet
+KWD::Window::icon (void) const
+{
+ return mIcons;
+}
+
+QString
+KWD::Window::caption (void) const
+{
+ return mName;
+}
+
+/* TODO: We should use libtaskmanager, which is part of kdebase to create
+ the window menu instead but the headers for that library are currently
+ not installed. If kdebase could install those headers, we wouldn't have
+ to have our own window menu implementaion here. */
+void
+KWD::Window::showWindowMenu (QPoint pos)
+{
+ if (!mPopup)
+ {
+ mPopup = new QPopupMenu ();
+ mPopup->setCheckable (true);
+ mPopup->setFont (KGlobalSettings::menuFont ());
+
+ mAdvancedMenu = new QPopupMenu (mPopup);
+ mAdvancedMenu->setCheckable (true);
+ mAdvancedMenu->setFont (KGlobalSettings::menuFont ());
+
+ connect (mAdvancedMenu, SIGNAL (activated (int)),
+ SLOT (handlePopupActivated (int)));
+
+ mAdvancedMenu->insertItem (SmallIconSet ("up"),
+ i18n ("Keep &Above Others"),
+ Options::KeepAboveOp);
+ mAdvancedMenu->insertItem (SmallIconSet ("down"),
+ i18n ("Keep &Below Others"),
+ Options::KeepBelowOp);
+ mAdvancedMenu->insertItem (SmallIconSet ("window_fullscreen"),
+ i18n ("&Fullscreen"),
+ Options::FullScreenOp);
+
+ mPopup->insertItem (i18n ("Ad&vanced"), mAdvancedMenu);
+
+ mDesktopMenu = new QPopupMenu (mPopup);
+ mDesktopMenu->setCheckable (true);
+ mDesktopMenu->setFont (KGlobalSettings::menuFont ());
+
+ connect (mDesktopMenu, SIGNAL (activated (int)),
+ SLOT (handleDesktopPopupActivated (int)));
+
+ mPopup->insertItem (i18n ("To &Desktop"), mDesktopMenu, Options::NoOp);
+
+ mPopup->insertItem (SmallIconSet ("move"), i18n ("&Move"),
+ Options::MoveOp);
+ mPopup->insertItem (i18n ("Re&size"), Options::ResizeOp);
+
+ mPopup->insertItem (i18n ("Mi&nimize"), Options::MinimizeOp);
+ mPopup->insertItem (i18n ("Ma&ximize"), Options::MaximizeOp);
+ mPopup->insertItem (i18n ("Sh&ade"), Options::ShadeOp);
+
+ mPopup->insertSeparator ();
+
+ mPopup->insertItem (SmallIconSet ("fileclose"), i18n ("&Close"),
+ Options::CloseOp);
+
+ connect (mPopup, SIGNAL (aboutToShow ()),
+ SLOT (handlePopupAboutToShow ()));
+ connect (mPopup, SIGNAL (activated (int)),
+ SLOT (handlePopupActivated (int)));
+ }
+
+ mPopup->exec (pos);
+}
+
+void
+KWD::Window::showWindowMenu (const QRect &pos)
+{
+ showWindowMenu (pos.bottomLeft ());
+}
+
+void
+KWD::Window::processMousePressEvent (QMouseEvent *qme)
+{
+ Options::MouseCommand com = Options::MouseNothing;
+ bool active = isActive ();
+
+ if (!mSupportTakeFocus)
+ active = TRUE;
+
+ switch (qme->button ()) {
+ case Qt::LeftButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar1 () :
+ Decorator::options()->commandInactiveTitlebar1 ();
+ break;
+ case Qt::MidButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar2 () :
+ Decorator::options()->commandInactiveTitlebar2 ();
+ break;
+ case Qt::RightButton:
+ com = active ? Decorator::options ()->commandActiveTitlebar3 () :
+ Decorator::options()->commandInactiveTitlebar3 ();
+ default:
+ break;
+ }
+
+ if (qme->button () == Qt::LeftButton)
+ {
+ // actions where it's not possible to get the matching release event
+ if (com != Options::MouseOperationsMenu &&
+ com != Options::MouseMinimize)
+ {
+ moveWindow (qme);
+ return;
+ }
+ }
+
+ performMouseCommand (com, qme);
+}
+
+void
+KWD::Window::performWindowOperation (WindowOperation wo)
+{
+ switch (wo) {
+ case KDecoration::MaximizeOp:
+ maximize (maximizeMode () == KDecoration::MaximizeFull ?
+ KDecoration::MaximizeRestore : KDecoration::MaximizeFull);
+ break;
+ case KDecoration::HMaximizeOp:
+ maximize (maximizeMode () ^ KDecoration::MaximizeHorizontal);
+ break;
+ case KDecoration::VMaximizeOp:
+ maximize (maximizeMode () ^ KDecoration::MaximizeVertical);
+ break;
+ case KDecoration::MinimizeOp:
+ minimize ();
+ break;
+ case KDecoration::ShadeOp:
+ setShade (!isShade ());
+ break;
+ case KDecoration::CloseOp:
+ closeWindow ();
+ break;
+ case KDecoration::KeepAboveOp:
+ setKeepAbove (!keepAbove ());
+ break;
+ case KDecoration::KeepBelowOp:
+ setKeepBelow (!keepBelow ());
+ break;
+ case KDecoration::FullScreenOp:
+ if (mState & NET::FullScreen)
+ KWin::clearState (mClientId, NET::FullScreen);
+ else
+ KWin::setState (mClientId, NET::FullScreen);
+ break;
+ case KDecoration::MoveOp:
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ mGeometry.x () +
+ mGeometry.width () / 2,
+ mGeometry.y () +
+ mGeometry.height () / 2,
+ NET::KeyboardMove);
+ break;
+ case KDecoration::ResizeOp:
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ mGeometry.x () +
+ mGeometry.width () / 2,
+ mGeometry.y () +
+ mGeometry.height () / 2,
+ NET::KeyboardSize);
+ default:
+ break;
+ }
+}
+
+bool
+KWD::Window::isPreview (void) const
+{
+ return false;
+}
+
+QRect
+KWD::Window::geometry (void) const
+{
+ QRect rect = QWidget::geometry ();
+
+ return QRect (rect.x () - ROOT_OFF_X,
+ rect.y () - ROOT_OFF_Y,
+ rect.width (),
+ rect.height ());
+}
+
+QRect
+KWD::Window::iconGeometry (void) const
+{
+ return QRect ();
+}
+
+QRect
+KWD::Window::clientGeometry (void)
+{
+ QRect frame = geometry ();
+
+ return QRect (frame.x () + mBorder.left,
+ frame.y () + mBorder.top,
+ frame.width () - mBorder.left - mBorder.right,
+ frame.height () - mBorder.top - mBorder.bottom);
+}
+
+QRegion
+KWD::Window::unobscuredRegion (const QRegion & r) const
+{
+ return r;
+}
+
+QWidget *
+KWD::Window::workspaceWidget (void) const
+{
+ return const_cast <Window *> (this);
+}
+
+WId
+KWD::Window::windowId (void) const
+{
+ return mClientId;
+}
+
+void
+KWD::Window::closeWindow (void)
+{
+ Decorator::rootInfo ()->closeWindowRequest (mClientId);
+}
+
+void
+KWD::Window::maximize (MaximizeMode mode)
+{
+ KWin::setState (mClientId,
+ ((mode & MaximizeVertical) ? NET::MaxVert : 0) |
+ ((mode & MaximizeHorizontal) ? NET::MaxHoriz : 0));
+ KWin::clearState (mClientId,
+ ((mode & MaximizeVertical) ? 0 : NET::MaxVert) |
+ ((mode & MaximizeHorizontal) ? 0 : NET::MaxHoriz));
+}
+
+void
+KWD::Window::minimize (void)
+{
+ KWin::iconifyWindow (mClientId, false);
+}
+
+void
+KWD::Window::showContextHelp (void)
+{
+ if (mSupportContextHelp)
+ KWD::Decorator::sendClientMessage (mClientId, mClientId,
+ Atoms::wmProtocols,
+ Atoms::netWmContextHelp);
+}
+
+void
+KWD::Window::titlebarDblClickOperation (void)
+{
+ WindowOperation op;
+
+ op = KWD::Decorator::options ()->operationTitlebarDblClick ();
+ performWindowOperation (op);
+}
+
+void
+KWD::Window::setDesktop (int desktop)
+{
+ KWin::setOnDesktop (mClientId, desktop);
+}
+
+void
+KWD::Window::setKeepBelow (bool set)
+{
+ if (set)
+ {
+ KWin::clearState (mClientId, NET::KeepAbove);
+ KWin::setState (mClientId, NET::KeepBelow);
+ }
+ else
+ {
+ KWin::clearState (mClientId, NET::KeepBelow);
+ }
+}
+
+void
+KWD::Window::setKeepAbove (bool set)
+{
+ if (set)
+ {
+ KWin::clearState (mClientId, NET::KeepBelow);
+ KWin::setState (mClientId, NET::KeepAbove);
+ }
+ else
+ {
+ KWin::clearState (mClientId, NET::KeepAbove);
+ }
+}
+
+void
+KWD::Window::setShade (bool set)
+{
+ if (set)
+ KWin::setState (mClientId, NET::Shaded);
+ else
+ KWin::clearState (mClientId, NET::Shaded);
+
+ mDecor->shadeChange ();
+}
+
+void
+KWD::Window::titlebarMouseWheelOperation (int delta)
+{
+ Options::MouseCommand com;
+
+ com = Decorator::options()->operationTitlebarMouseWheel (delta);
+ performMouseCommand (com, 0);
+}
+
+int
+KWD::Window::currentDesktop (void) const
+{
+ return KWin::currentDesktop ();
+}
+
+QWidget *
+KWD::Window::initialParentWidget (void) const
+{
+ return const_cast <Window *> (this);
+}
+
+Qt::WFlags
+KWD::Window::initialWFlags (void) const
+{
+ return 0;
+}
+
+void
+KWD::Window::helperShowHide (bool)
+{
+}
+
+void
+KWD::Window::grabXServer (bool)
+{
+}
+
+void
+KWD::Window::createDecoration (void)
+{
+ KDecoration *decor;
+
+ if (mDecor)
+ return;
+
+ decor = Decorator::pluginManager ()->createDecoration (this);
+ decor->init ();
+
+ mDecor = decor;
+
+ if (mType == Normal && mFrame)
+ {
+ KWD::trapXError ();
+ XSelectInput (qt_xdisplay (), mFrame,
+ StructureNotifyMask | PropertyChangeMask |
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
+ EnterWindowMask | LeaveWindowMask);
+ if (KWD::popXError ())
+ return;
+ }
+
+ resizeDecoration (true);
+}
+
+static void
+fillQRegion (Display *xdisplay,
+ Picture picture,
+ int clipX1,
+ int clipY1,
+ int clipX2,
+ int clipY2,
+ int xOff,
+ int yOff,
+ QRegion *region)
+{
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ QMemArray <QRect> rects = region->rects ();
+ QMemArray <QRect>::ConstIterator it;
+ int x1, y1, x2, y2;
+
+ for (it = rects.begin (); it != rects.end (); it++)
+ {
+ x1 = it->x ();
+ y1 = it->y ();
+ x2 = x1 + it->width ();
+ y2 = y1 + it->height ();
+
+ if (x1 < clipX1)
+ x1 = clipX1;
+ if (y1 < clipY1)
+ y1 = clipY1;
+ if (x2 > clipX2)
+ x2 = clipX2;
+ if (y2 > clipY2)
+ y2 = clipY2;
+
+ if (x1 < x2 && y1 < y2)
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ xOff + x1,
+ yOff + y1,
+ x2 - x1,
+ y2 - y1);
+ }
+}
+
+static void
+drawBorderShape (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *c,
+ void *closure)
+{
+ static XRenderColor clear = { 0x0000, 0x0000, 0x0000, 0x0000 };
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ KWD::Window *w = (KWD::Window *) closure;
+ QRegion *shape;
+ bool uniqueHorzShade;
+ bool uniqueVertShade;
+ int xOffLeft, yOffTop, xOffRight, yOffBottom;
+ QRect rect = w->geometry ();
+ int x1, y1, x2, y2;
+
+ (void) pixmap;
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &clear,
+ 0, 0, width, height);
+
+ shape = w->getShape ();
+ w->getShapeInfo (&uniqueHorzShade, &uniqueVertShade);
+
+ xOffLeft = c->left_space - c->extents.left;
+ yOffTop = c->top_space - c->extents.top;
+
+ xOffRight = c->left_space - c->extents.left;
+ yOffBottom = c->top_space - c->extents.top;
+
+ x1 = c->left_space;
+ y1 = c->top_space;
+ x2 = width - c->right_space;
+ y2 = height - c->bottom_space;
+
+ if (shape)
+ {
+ if (uniqueHorzShade && uniqueVertShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ rect.width (), rect.height (),
+ xOffLeft, yOffTop, shape);
+ }
+ else
+ {
+ if (!uniqueHorzShade)
+ xOffRight = x2 - (rect.width () - c->extents.right);
+
+ if (!uniqueVertShade)
+ yOffBottom = y2 - (rect.height () - c->extents.bottom);
+
+ if (uniqueHorzShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ rect.width (), c->extents.top,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ 0, rect.height () - c->extents.bottom,
+ rect.width (), rect.height (),
+ xOffLeft, yOffBottom, shape);
+ }
+ else
+ {
+ fillQRegion (xdisplay, picture,
+ 0, 0,
+ c->extents.left, c->extents.top,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right, 0,
+ rect.width (), c->extents.top,
+ xOffRight, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ 0, rect.height () - c->extents.bottom,
+ c->extents.left, rect.height (),
+ xOffLeft, yOffBottom, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right,
+ rect.height () - c->extents.bottom,
+ rect.width (), rect.height (),
+ xOffRight, yOffBottom, shape);
+
+ y1 -= c->extents.top;
+ y2 += c->extents.bottom;
+ }
+
+ if (uniqueVertShade)
+ {
+ fillQRegion (xdisplay, picture,
+ 0, c->extents.top,
+ c->extents.left,
+ rect.height () - c->extents.bottom,
+ xOffLeft, yOffTop, shape);
+ fillQRegion (xdisplay, picture,
+ rect.width () - c->extents.right, c->extents.top,
+ rect.width (),
+ rect.height () - c->extents.bottom,
+ xOffRight, yOffTop, shape);
+ }
+ else
+ {
+ x1 -= c->extents.left;
+ x2 += c->extents.right;
+ }
+ }
+ }
+ else
+ {
+ x1 -= c->extents.left;
+ x2 += c->extents.right;
+ y1 -= c->extents.top;
+ y2 += c->extents.bottom;
+ }
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ x1,
+ y1,
+ x2 - x1,
+ y2 - y1);
+}
+
+static void
+cornersFromQRegion (QRegion *region,
+ int width,
+ int height,
+ int left,
+ int right,
+ int top,
+ int bottom,
+ int *leftCorner,
+ int *rightCorner,
+ int *topCorner,
+ int *bottomCorner)
+{
+ QRegion l, r, t, b;
+
+ l = QRegion (0, top, left, height - top - bottom) - *region;
+ r = QRegion (width - right, top, right, height - top - bottom) - *region;
+ t = QRegion (0, 0, width, top) - *region;
+ b = QRegion (0, height - bottom, width, bottom) - *region;
+
+ if (l.isEmpty ())
+ *leftCorner = left;
+ else
+ *leftCorner = left -
+ (l.boundingRect ().x () + l.boundingRect ().width ());
+
+ if (r.isEmpty ())
+ *rightCorner = right;
+ else
+ *rightCorner = r.boundingRect ().x () - width + right;
+
+ if (t.isEmpty ())
+ *topCorner = top;
+ else
+ *topCorner = top -
+ (t.boundingRect ().y () + t.boundingRect ().height ());
+
+ if (b.isEmpty ())
+ *bottomCorner = bottom;
+ else
+ *bottomCorner = b.boundingRect ().y () - height + bottom;
+}
+
+void
+KWD::Window::updateShadow (void)
+{
+ Display *xdisplay = qt_xdisplay ();
+ Screen *xscreen = ScreenOfDisplay (xdisplay, qt_xscreen ());
+ XRenderPictFormat *xformat;
+ int leftCorner, rightCorner, topCorner, bottomCorner;
+
+ if (mShadow)
+ {
+ decor_shadow_destroy (qt_xdisplay (), mShadow);
+ mShadow = NULL;
+ }
+
+ if (mShapeSet)
+ {
+ cornersFromQRegion (&mShape,
+ mGeometry.width () + mBorder.left + mBorder.right,
+ mGeometry.height () + mBorder.top + mBorder.bottom,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ &leftCorner,
+ &rightCorner,
+ &topCorner,
+ &bottomCorner);
+ }
+ else
+ {
+ leftCorner = mBorder.left;
+ rightCorner = mBorder.right;
+ topCorner = mBorder.top;
+ bottomCorner = mBorder.bottom;
+ }
+
+ /* use default shadow if such exist */
+ if (!mUniqueHorzShape && !mUniqueVertShape)
+ {
+ mShadow = Decorator::defaultWindowShadow (&mContext, &mBorder);
+ if (mShadow)
+ decor_shadow_reference (mShadow);
+ }
+
+ if (!mShadow)
+ {
+ mShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ mUniqueHorzShape ?
+ mGeometry.width () : 1,
+ mUniqueVertShape ?
+ mGeometry.height () : 1,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ leftCorner,
+ rightCorner,
+ topCorner,
+ bottomCorner,
+ KWD::Decorator::shadowOptions (),
+ &mContext,
+ drawBorderShape,
+ (void *) this);
+
+ if (mType == Default)
+ KWD::Decorator::updateDefaultShadow (this);
+ }
+
+ /* create new layout */
+ if (mType == Normal || mType == Switcher)
+ decor_get_best_layout (&mContext,
+ mGeometry.width (),
+ mGeometry.height (),
+ &mLayout);
+ else
+ decor_get_default_layout (&mContext,
+ mGeometry.width (),
+ mGeometry.height (),
+ &mLayout);
+
+ if (mDecorationPicture)
+ XRenderFreePicture (qt_xdisplay (), mDecorationPicture);
+
+ if (mTexturePicture)
+ XRenderFreePicture (qt_xdisplay (), mTexturePicture);
+
+ if (!mTexturePixmapBuffer.isNull ())
+ mTexturePixmapBuffer.resize (0, 0);
+
+ if (!mTexturePixmap.isNull ())
+ mTexturePixmap.resize (0, 0);
+
+ mTexturePixmap = QPixmap (mLayout.width, mLayout.height, 32);
+ mTexturePixmapBuffer = QPixmap (mLayout.width, mLayout.height, 32);
+
+ xformat = XRenderFindStandardFormat (qt_xdisplay (),
+ PictStandardARGB32);
+
+ mDecorationPicture =
+ XRenderCreatePicture (qt_xdisplay (),
+ mTexturePixmap.handle (),
+ xformat, 0, NULL);
+ mTexturePicture =
+ XRenderCreatePicture (qt_xdisplay (),
+ mTexturePixmapBuffer.handle (),
+ xformat, 0, NULL);
+
+ decor_fill_picture_extents_with_shadow (qt_xdisplay (),
+ mShadow,
+ &mContext,
+ mTexturePicture,
+ &mLayout);
+
+ if (mPixmap)
+ mDecor->widget ()->repaint ();
+
+ mUpdateProperty = true;
+}
+
+void
+KWD::Window::setMask (const QRegion &reg, int)
+{
+ QRegion top, bottom, left, right;
+ bool uniqueHorzShape, uniqueVertShape;
+
+ if (mShapeSet && reg == mShape)
+ return;
+
+ mShape = reg;
+ mShapeSet = true;
+
+ if (mFrame)
+ {
+ QRegion r;
+
+ r = reg - QRegion (mBorder.left, mBorder.top,
+ mGeometry.width (), mGeometry.height ());
+
+ KWD::trapXError ();
+ XShapeCombineRegion (qt_xdisplay (),
+ mFrame,
+ ShapeInput,
+ 0,
+ 0,
+ r.handle (),
+ ShapeSet);
+ KWD::popXError ();
+ }
+
+ top = QRegion (mBorder.left, 0,
+ mGeometry.width (), mBorder.top) - reg;
+ bottom = QRegion (mBorder.left, mGeometry.height () + mBorder.top,
+ mGeometry.width (), mBorder.bottom) - reg;
+ left = QRegion (0, mBorder.top, mBorder.left,
+ mGeometry.height ()) - reg;
+ right = QRegion (mBorder.left + mGeometry.width (), mBorder.top,
+ mBorder.right, mGeometry.height ()) - reg;
+
+ uniqueHorzShape = !top.isEmpty () || !bottom.isEmpty ();
+ uniqueVertShape = !left.isEmpty () || !right.isEmpty ();
+
+ if (uniqueHorzShape || mUniqueHorzShape ||
+ uniqueVertShape || mUniqueVertShape)
+ {
+ mUniqueHorzShape = uniqueHorzShape;
+ mUniqueVertShape = uniqueVertShape;
+
+ if (mPixmap)
+ updateShadow ();
+ }
+}
+
+bool
+KWD::Window::resizeDecoration (bool force)
+{
+ int w, h;
+
+ mDecor->borders (mBorder.left, mBorder.right, mBorder.top, mBorder.bottom);
+
+ w = mGeometry.width () + mBorder.left + mBorder.right;
+ h = mGeometry.height () + mBorder.top + mBorder.bottom;
+
+ if (!force)
+ {
+ if (w == width () && h == height ())
+ return FALSE;
+ }
+
+ /* reset shape */
+ mShapeSet = false;
+ mUniqueHorzShape = false;
+ mUniqueVertShape = false;
+
+ if (mType != Normal && mType != Switcher)
+ {
+ Display *xdisplay = qt_xdisplay ();
+ Screen *xscreen = ScreenOfDisplay (xdisplay, qt_xscreen ());
+ decor_shadow_t *tmpShadow;
+ decor_context_t c;
+
+ /* XXX: we have to create a temporary shadow to get the client
+ geometry. libdecoration should be fixed so it's able to just
+ fill out a context struct and not necessarily generate a
+ shadow for this purpose. */
+ tmpShadow = decor_shadow_create (xdisplay,
+ xscreen,
+ 1, 1,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ mBorder.left,
+ mBorder.right,
+ mBorder.top,
+ mBorder.bottom,
+ KWD::Decorator::shadowOptions (),
+ &c,
+ decor_draw_simple,
+ (void *) 0);
+
+ decor_shadow_destroy (xdisplay, tmpShadow);
+
+ w = c.left_corner_space + 1 + c.right_corner_space;
+
+ /* most styles render something useful at least 30 px width */
+ if (w < 30)
+ w = 30;
+
+ mGeometry = QRect (50, 50, w,
+ c.top_corner_space + 1 + c.bottom_corner_space);
+ }
+
+ w = mGeometry.width () + mBorder.left + mBorder.right;
+ h = mGeometry.height () + mBorder.top + mBorder.bottom;
+
+ if (mPixmap)
+ {
+ XFreePixmap (qt_xdisplay (), mPixmap);
+ mPixmap = None;
+ }
+
+ if (mPicture)
+ {
+ XRenderFreePicture (qt_xdisplay (), mPicture);
+ mPicture = 0;
+ }
+
+ if (w != width() || h != height())
+ {
+ mPendingConfigure = 1;
+ }
+
+ setGeometry (QRect (mGeometry.x () + ROOT_OFF_X - mBorder.left,
+ mGeometry.y () + ROOT_OFF_Y - mBorder.top,
+ w, h));
+
+ mSize = QSize (w, h);
+
+ if (!mMapped)
+ {
+ mPendingMap = 1;
+
+ XReparentWindow (qt_xdisplay (), winId (), mParentId, 0, 0);
+
+ show ();
+
+ mMapped = true;
+
+ if (mDamageId != winId ())
+ {
+ mDamageId = winId ();
+ XDamageCreate (qt_xdisplay (), mDamageId,
+ XDamageReportRawRectangles);
+ }
+ }
+
+ mDecor->resize (QSize (w, h));
+ mDecor->widget ()->show ();
+ mDecor->widget ()->repaint ();
+
+ return TRUE;
+}
+
+void
+KWD::Window::rebindPixmap (void)
+{
+ XRenderPictFormat *xformat;
+ QPaintEvent *e;
+
+ if (mPicture)
+ XRenderFreePicture (qt_xdisplay (), mPicture);
+
+ if (mPixmap)
+ XFreePixmap (qt_xdisplay (), mPixmap);
+
+ mPixmap = XCompositeNameWindowPixmap (qt_xdisplay (), winId ());
+
+ xformat = XRenderFindVisualFormat (qt_xdisplay (),
+ (Visual *) x11Visual ());
+
+ mPicture = XRenderCreatePicture (qt_xdisplay (), mPixmap,
+ xformat, 0, NULL);
+
+ updateShadow ();
+
+ e = new QPaintEvent (mDecor->widget ()->rect (), false);
+ QApplication::postEvent (mDecor->widget (), e);
+}
+
+bool
+KWD::Window::handleMap (void)
+{
+ if (!mPendingMap)
+ return FALSE;
+
+ mPendingMap = 0;
+ if (mPendingConfigure)
+ return FALSE;
+
+ rebindPixmap ();
+
+ return TRUE;
+}
+
+bool
+KWD::Window::handleConfigure (QSize size)
+{
+ if (!mPendingConfigure)
+ return FALSE;
+
+ if (size != mSize)
+ return FALSE;
+
+ mPendingConfigure = 0;
+ if (mPendingConfigure || mPendingMap)
+ return FALSE;
+
+ rebindPixmap ();
+
+ return TRUE;
+}
+
+void
+KWD::Window::updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset)
+{
+ Atom atom = Atoms::compizWindowBlurDecor;
+ QRegion topQRegion, bottomQRegion, leftQRegion, rightQRegion;
+ Region topRegion = NULL;
+ Region bottomRegion = NULL;
+ Region leftRegion = NULL;
+ Region rightRegion = NULL;
+ int size = 0;
+ int w, h;
+
+ w = mGeometry.width () + mContext.extents.left + mContext.extents.right;
+ h = mGeometry.height () + mContext.extents.top + mContext.extents.bottom;
+
+ if (blurType != BLUR_TYPE_NONE)
+ {
+ QRegion r, shape = QRegion (0, 0, w, h);
+
+ if (mShapeSet)
+ shape = mShape;
+
+ r = QRegion (0, 0, w, mContext.extents.top);
+ topQRegion = r.intersect (shape);
+ if (!topQRegion.isEmpty ())
+ {
+ topQRegion.translate (-mContext.extents.left,
+ -mContext.extents.top);
+ topRegion = topQRegion.handle ();
+ }
+
+ if (blurType == BLUR_TYPE_ALL)
+ {
+ r = QRegion (0, h - mContext.extents.bottom,
+ w, mContext.extents.bottom);
+ bottomQRegion = r.intersect (shape);
+ if (!bottomQRegion.isEmpty ())
+ {
+ bottomQRegion.translate (-mContext.extents.left,
+ -(h - mContext.extents.bottom));
+ bottomRegion = bottomQRegion.handle ();
+ }
+
+ r = QRegion (0, mContext.extents.top,
+ mContext.extents.left, mGeometry.height ());
+ leftQRegion = r.intersect (shape);
+ if (!leftQRegion.isEmpty ())
+ {
+ leftQRegion.translate (-mContext.extents.left,
+ -mContext.extents.top);
+ leftRegion = leftQRegion.handle ();
+ }
+
+ r = QRegion (w - mContext.extents.right, mContext.extents.top,
+ mContext.extents.right, mGeometry.height ());
+ rightQRegion = r.intersect (shape);
+ if (!rightQRegion.isEmpty ())
+ {
+ rightQRegion.translate (-(w - mContext.extents.right),
+ -mContext.extents.top);
+ rightRegion = rightQRegion.handle ();
+ }
+ }
+ }
+
+ if (topRegion)
+ size += topRegion->numRects;
+ if (bottomRegion)
+ size += bottomRegion->numRects;
+ if (leftRegion)
+ size += leftRegion->numRects;
+ if (rightRegion)
+ size += rightRegion->numRects;
+
+ if (size)
+ {
+ long data[size * 6 + 2];
+
+ decor_region_to_blur_property (data, 4, 0,
+ mGeometry.width (),
+ mGeometry.height (),
+ topRegion, topOffset,
+ bottomRegion, bottomOffset,
+ leftRegion, leftOffset,
+ rightRegion, rightOffset);
+
+ KWD::trapXError ();
+ XChangeProperty (qt_xdisplay (), mClientId, atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ 2 + size * 6);
+ KWD::popXError ();
+ }
+ else
+ {
+ KWD::trapXError ();
+ XDeleteProperty (qt_xdisplay (), mClientId, atom);
+ KWD::popXError ();
+ }
+}
+
+void
+KWD::Window::updateProperty (void)
+{
+ Atom atom = Atoms::netWindowDecor;
+ decor_extents_t maxExtents;
+ long data[256];
+ decor_quad_t quads[N_QUADS_MAX];
+ int nQuad;
+ int lh, rh;
+ int w;
+ int minWidth;
+ unsigned int saveState;
+
+ if (mType == Default)
+ atom = Atoms::netWindowDecorNormal;
+ else if (mType == DefaultActive)
+ atom = Atoms::netWindowDecorActive;
+
+ saveState = mState;
+ mState = NET::MaxVert | NET::MaxHoriz;
+ mDecor->borders (maxExtents.left, maxExtents.right,
+ maxExtents.top, maxExtents.bottom);
+ mState = saveState;
+ mDecor->borders (mBorder.left, mBorder.right, mBorder.top, mBorder.bottom);
+
+ if (mLayout.rotation)
+ lh = mLayout.left.x2 - mLayout.left.x1;
+ else
+ lh = mLayout.left.y2 - mLayout.left.y1;
+
+ if (mLayout.rotation)
+ rh = mLayout.right.x2 - mLayout.right.x1;
+ else
+ rh = mLayout.right.y2 - mLayout.right.y1;
+
+ w = mLayout.top.x2 - mLayout.top.x1 - mContext.left_space -
+ mContext.right_space;
+
+ if (mType == Normal || mType == Switcher)
+ {
+ int topXOffset = w / 2;
+ QWidget *widget = mDecor->widget ();
+ int x;
+
+ x = w - mContext.left_space - mContext.left_corner_space;
+ if (x > topXOffset)
+ topXOffset = x;
+
+ if (widget)
+ {
+ const QObjectList *children = widget->children ();
+
+ if (children)
+ {
+ QWidget *child;
+
+ for (QObjectListIt it(*children); it.current (); ++it)
+ {
+ if (!it.current ()->isWidgetType ())
+ continue;
+
+ child = static_cast <QWidget *> (it.current ());
+
+ x = child->x () - mBorder.left - 2;
+ if (x > w / 2 && x < topXOffset)
+ topXOffset = x;
+ }
+ }
+ }
+
+ nQuad = decor_set_lXrXtXbX_window_quads (quads,
+ &mContext,
+ &mLayout,
+ lh / 2,
+ rh / 2,
+ topXOffset,
+ w / 2);
+
+ updateBlurProperty (topXOffset, w / 2, lh / 2, rh / 2);
+
+ minWidth = mContext.left_corner_space + 1 + mContext.right_corner_space;
+ }
+ else
+ {
+ nQuad = decor_set_lSrStSbS_window_quads (quads, &mContext, &mLayout);
+
+ minWidth = 1;
+ }
+
+ decor_quads_to_property (data, mTexturePixmap.handle (),
+ &mBorder, &maxExtents,
+ minWidth, 0,
+ quads, nQuad);
+
+ KWD::trapXError ();
+ XChangeProperty (qt_xdisplay (), mClientId, atom,
+ XA_INTEGER,
+ 32, PropModeReplace, (unsigned char *) data,
+ BASE_PROP_SIZE + QUAD_PROP_SIZE * nQuad);
+ KWD::popXError ();
+
+ mUpdateProperty = false;
+}
+
+void
+KWD::Window::handleActiveChange (void)
+{
+ mDecor->activeChange ();
+ resizeDecoration ();
+}
+
+void
+KWD::Window::updateFrame (WId frame)
+{
+ mFrame = frame;
+
+ KWD::trapXError ();
+ XSelectInput (qt_xdisplay (), mFrame,
+ StructureNotifyMask | PropertyChangeMask |
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
+ EnterWindowMask | LeaveWindowMask);
+ KWD::popXError ();
+}
+
+void
+KWD::Window::updateSelected (WId selectedId)
+{
+ mSelectedId = selectedId;
+
+ updateName ();
+}
+
+void
+KWD::Window::updateWindowGeometry (void)
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMGeometry);
+ QRect geometry = wInfo.geometry ();
+
+ if (mGeometry.width () != geometry.width () ||
+ mGeometry.height () != geometry.height ())
+ {
+ mGeometry = geometry;
+
+ if (resizeDecoration ())
+ return;
+ }
+ else
+ {
+ mGeometry = geometry;
+ }
+
+ move (mGeometry.x () + ROOT_OFF_X - mBorder.left,
+ mGeometry.y () + ROOT_OFF_Y - mBorder.top);
+}
+
+void
+KWD::Window::reloadDecoration (void)
+{
+ delete mDecor;
+ mDecor = 0;
+
+ mMapped = false;
+ mShapeSet = false;
+
+ if (mShadow)
+ {
+ decor_shadow_destroy (qt_xdisplay (), mShadow);
+ mShadow = NULL;
+ }
+
+ createDecoration ();
+}
+
+Cursor
+KWD::Window::positionToCursor (QPoint pos)
+{
+ switch (mDecor->mousePosition (pos)) {
+ case PositionCenter:
+ return cursors[1][1].cursor;
+ case PositionLeft:
+ return cursors[1][0].cursor;
+ case PositionRight:
+ return cursors[1][2].cursor;
+ case PositionTop:
+ return cursors[0][1].cursor;
+ case PositionBottom:
+ return cursors[2][1].cursor;
+ case PositionTopLeft:
+ return cursors[0][0].cursor;
+ case PositionTopRight:
+ return cursors[0][2].cursor;
+ case PositionBottomLeft:
+ return cursors[2][0].cursor;
+ case PositionBottomRight:
+ return cursors[2][2].cursor;
+ default:
+ break;
+ }
+
+ return cursors[1][1].cursor;
+}
+
+void
+KWD::Window::updateCursor (QPoint pos)
+{
+ KWD::trapXError ();
+ XDefineCursor (qt_xdisplay (), mFrame, positionToCursor (pos));
+ KWD::popXError ();
+}
+
+void
+KWD::Window::getWindowProtocols (void)
+{
+ Atom *p;
+ int n;
+ int status;
+
+ mSupportTakeFocus = false;
+ mSupportContextHelp = false;
+
+ KWD::trapXError ();
+ status = XGetWMProtocols (qt_xdisplay (), mClientId, &p, &n);
+ if (KWD::popXError ())
+ return;
+
+ if (status)
+ {
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ if (p[i] == Atoms::wmTakeFocus)
+ mSupportTakeFocus = true;
+ else if (p[i] == Atoms::netWmContextHelp)
+ mSupportContextHelp = true;
+ }
+
+ if (n > 0)
+ XFree (p);
+ }
+}
+
+void
+KWD::Window::handlePopupActivated (int id)
+{
+ WindowOperation op = static_cast <WindowOperation> (id);
+
+ performWindowOperation (op);
+}
+
+void
+KWD::Window::handleDesktopPopupActivated (int id)
+{
+ if (id)
+ setDesktop (id);
+ else
+ KWin::setOnAllDesktops (mClientId, true);
+}
+
+void
+KWD::Window::handlePopupAboutToShow (void)
+{
+ int numberOfDesktops;
+
+ numberOfDesktops = KWin::numberOfDesktops ();
+ if (numberOfDesktops > 1)
+ {
+ NETRootInfo *rootInfo = Decorator::rootInfo ();
+ QString name;
+ int id, i;
+ int winDesktop = desktop ();
+
+ mDesktopMenu->clear ();
+
+ id = mDesktopMenu->insertItem (i18n ("&All Desktops"), 0);
+
+ mDesktopMenu->setItemChecked (id, (winDesktop == NET::OnAllDesktops));
+ mDesktopMenu->insertSeparator ();
+
+ for (i = 1; i <= numberOfDesktops; i++)
+ {
+ QString name;
+
+ name =
+ QString ("&%1 ").arg (i) +
+ QString (rootInfo->desktopName (i)).replace ('&', "&&");
+
+ id = mDesktopMenu->insertItem (name, i);
+ mDesktopMenu->setItemChecked (id, (winDesktop == i));
+ }
+
+ mPopup->setItemVisible (Options::NoOp, true);
+ }
+ else
+ {
+ mPopup->setItemVisible (Options::NoOp, false);
+ }
+
+ mPopup->setItemEnabled (Options::ResizeOp, isResizable ());
+ mPopup->setItemEnabled (Options::MoveOp, isMovable ());
+
+ mPopup->setItemEnabled (Options::MaximizeOp, isMaximizable ());
+ mPopup->setItemChecked (Options::MaximizeOp,
+ maximizeMode () == MaximizeFull);
+
+ mPopup->setItemChecked (Options::ShadeOp, isShade ());
+ mPopup->setItemEnabled (Options::ShadeOp, isShadeable ());
+
+ mAdvancedMenu->setItemChecked (Options::KeepAboveOp, keepAbove ());
+ mAdvancedMenu->setItemChecked (Options::KeepBelowOp, keepBelow ());
+ mAdvancedMenu->setItemChecked (Options::FullScreenOp,
+ mState & NET::FullScreen);
+
+ mPopup->setItemEnabled (Options::MinimizeOp, isMinimizable ());
+ mPopup->setItemEnabled (Options::CloseOp, isCloseable ());
+}
+
+void
+KWD::Window::updateState (void)
+{
+ KWin::WindowInfo wInfo = KWin::windowInfo (mClientId, NET::WMState, 0);
+ unsigned long newState = wInfo.state ();
+ unsigned long stateChange = mState ^ newState;
+
+ mState = newState;
+
+ if (stateChange & NET::Max)
+ {
+ mDecor->maximizeChange ();
+ resizeDecoration (false);
+ }
+
+ if (stateChange & NET::KeepAbove && !(mState & NET::KeepAbove))
+ mDecor->emitKeepAboveChanged (mState & NET::KeepAbove);
+ if (stateChange & NET::KeepBelow && !(mState & NET::KeepBelow))
+ mDecor->emitKeepBelowChanged (mState & NET::KeepBelow);
+ if (stateChange & NET::KeepAbove && mState & NET::KeepAbove)
+ mDecor->emitKeepAboveChanged (mState & NET::KeepAbove);
+ if (stateChange & NET::KeepBelow && mState & NET::KeepBelow)
+ mDecor->emitKeepBelowChanged (mState & NET::KeepBelow);
+ if (stateChange & NET::Shaded)
+ mDecor->shadeChange ();
+ if (stateChange & NET::Sticky)
+ mDecor->desktopChange ();
+}
+
+void
+KWD::Window::updateName (void)
+{
+ KWin::WindowInfo wInfo;
+ WId window;
+
+ if (mType == Switcher)
+ {
+ if (!mSelectedId)
+ return;
+ window = mSelectedId;
+ }
+ else
+ window = mClientId;
+
+ wInfo = KWin::windowInfo (window, NET::WMVisibleName, 0);
+
+ mName = wInfo.visibleName ();
+
+ mDecor->captionChange ();
+}
+
+void
+KWD::Window::updateIcons (void)
+{
+ mIcons = QIconSet (KWin::icon (mClientId, 16, 16, TRUE),
+ KWin::icon (mClientId, 32, 32, TRUE));
+ mDecor->iconChange ();
+}
+
+NET::Direction
+KWD::Window::positionToDirection (int pos)
+{
+ switch (pos) {
+ case PositionLeft:
+ return NET::Left;
+ case PositionRight:
+ return NET::Right;
+ case PositionTop:
+ return NET::Top;
+ case PositionBottom:
+ return NET::Bottom;
+ case PositionTopLeft:
+ return NET::TopLeft;
+ case PositionTopRight:
+ return NET::TopRight;
+ case PositionBottomLeft:
+ return NET::BottomLeft;
+ case PositionBottomRight:
+ return NET::BottomRight;
+ default:
+ break;
+ }
+
+ return NET::Move;
+}
+
+void
+KWD::Window::moveWindow (QMouseEvent *qme)
+{
+ NET::Direction direction;
+
+ direction = positionToDirection (mDecor->mousePosition (qme->pos ()));
+
+ XUngrabPointer (qt_xdisplay (), CurrentTime);
+ XUngrabKeyboard (qt_xdisplay (), CurrentTime);
+
+ Decorator::rootInfo ()->restackRequest (mClientId, None, Above);
+ Decorator::rootInfo ()->moveResizeRequest (mClientId,
+ qme->globalX (),
+ qme->globalY (),
+ direction);
+}
+
+#define OPACITY_STEP (0xffff / 10)
+
+void
+KWD::Window::performMouseCommand (Options::MouseCommand command,
+ QMouseEvent *qme)
+{
+ switch (command) {
+ case Options::MouseRaise:
+ KWin::raiseWindow (mClientId);
+ break;
+ case Options::MouseLower:
+ KWin::lowerWindow (mClientId);
+ break;
+ case Options::MouseShade :
+ setShade (!isShade ());
+ break;
+ case Options::MouseSetShade:
+ setShade (true);
+ break;
+ case Options::MouseUnsetShade:
+ setShade (false);
+ break;
+ case Options::MouseOperationsMenu:
+ {
+ QPoint mp (0, 0);
+
+ if (qme)
+ mp = QPoint (qme->globalX (), qme->globalY ());
+
+ showWindowMenu (mp);
+ } break;
+ case Options::MouseMaximize:
+ maximize (KDecoration::MaximizeFull);
+ break;
+ case Options::MouseRestore:
+ maximize (KDecoration::MaximizeRestore);
+ break;
+ case Options::MouseMinimize:
+ minimize ();
+ break;
+ case Options::MouseAbove:
+ if (keepBelow ())
+ setKeepBelow (false);
+ else
+ setKeepAbove (true);
+ break;
+ case Options::MouseBelow:
+ if (keepAbove ())
+ setKeepAbove (false);
+ else
+ setKeepBelow (true);
+ break;
+ case Options::MousePreviousDesktop:
+ break;
+ case Options::MouseNextDesktop:
+ break;
+ case Options::MouseOpacityMore:
+ {
+ int opacity = mOpacity;
+
+ if (opacity < 0xffff)
+ {
+ opacity += OPACITY_STEP;
+ if (opacity > 0xffff)
+ opacity = 0xffff;
+
+ Decorator::sendClientMessage (qt_xrootwin (),
+ mClientId,
+ Atoms::netWmWindowOpacity,
+ (opacity << 16) | opacity);
+ }
+ } break;
+ case Options::MouseOpacityLess:
+ {
+ int opacity = mOpacity;
+
+ if (opacity > OPACITY_STEP)
+ {
+ opacity -= OPACITY_STEP;
+ if (opacity < OPACITY_STEP)
+ opacity = OPACITY_STEP;
+
+ Decorator::sendClientMessage (qt_xrootwin (),
+ mClientId,
+ Atoms::netWmWindowOpacity,
+ (opacity << 16) | opacity);
+ }
+ } break;
+ case Options::MouseActivateRaiseAndMove:
+ case Options::MouseActivateRaiseAndUnrestrictedMove:
+ case Options::MouseMove:
+ case Options::MouseUnrestrictedMove:
+ case Options::MouseResize:
+ case Options::MouseUnrestrictedResize:
+ if (qme)
+ moveWindow (qme);
+ case Options::MouseNothing:
+ default:
+ break;
+ }
+}
+
+void
+KWD::Window::processDamage (void)
+{
+ QRegion r1, r2;
+ int xOff, yOff, w;
+ double alpha;
+ int shade_alpha;
+
+ if (isActive ())
+ {
+ alpha = activeDecorationOpacity;
+ shade_alpha = activeDecorationOpacityShade;
+ }
+ else
+ {
+ alpha = decorationOpacity;
+ shade_alpha = decorationOpacityShade;
+ }
+
+ if (!mPixmap)
+ return;
+
+ if (mDamage.isEmpty ())
+ return;
+
+ if (mShapeSet)
+ mDamage = mShape.intersect (mDamage);
+
+ w = mGeometry.width () + mContext.extents.left + mContext.extents.right;
+
+ if (mType == Switcher)
+ shade_alpha = 0;
+
+ xOff = 0;
+ yOff = 0;
+
+ r1 = QRegion (xOff, yOff, w, mContext.extents.top);
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (qt_xdisplay (),
+ &mContext,
+ mPicture,
+ xOff, xOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_TOP,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = 0;
+ yOff = mContext.extents.top + mGeometry.height ();
+
+ r1 = QRegion (xOff, yOff, w, mContext.extents.bottom);
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (qt_xdisplay (),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_BOTTOM,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = 0;
+ yOff = mContext.extents.top;
+
+ r1 = QRegion (xOff, yOff, mContext.extents.left, mGeometry.height ());
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (qt_xdisplay (),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_LEFT,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ xOff = mContext.extents.left + mGeometry.width ();
+ yOff = mContext.extents.top;
+
+ r1 = QRegion (xOff, yOff, mContext.extents.right, mGeometry.height ());
+ r2 = r1.intersect (mDamage);
+
+ if (!r2.isEmpty ())
+ {
+ r2.translate (-xOff, -yOff);
+
+ decor_blend_border_picture (qt_xdisplay (),
+ &mContext,
+ mPicture,
+ xOff, yOff,
+ mTexturePicture,
+ &mLayout,
+ BORDER_RIGHT,
+ r2.handle (),
+ (unsigned short) (alpha * 0xffff),
+ shade_alpha,
+ TRUE);
+ }
+
+ mDamage = QRegion ();
+
+ XRenderComposite (qt_xdisplay (),
+ PictOpSrc,
+ mTexturePicture,
+ None,
+ mDecorationPicture,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ mTexturePixmap.width (),
+ mTexturePixmap.height ());
+
+ if (mUpdateProperty)
+ {
+ if (mType == Switcher)
+ {
+ QPainter p (this);
+ unsigned long pixel;
+ QColor bg = p.backgroundColor ();
+
+ pixel = (((int) (alpha * 0xff) << 24) |
+ ((int) (alpha * bg.red ()) << 16) |
+ ((int) (alpha * bg.green ()) << 8) |
+ ((int) (alpha * bg.blue ()) << 0));
+
+ KWD::trapXError ();
+ XSetWindowBackground (qt_xdisplay (), mClientId, pixel);
+ XClearWindow (qt_xdisplay (), mClientId);
+ KWD::popXError ();
+ }
+
+ updateProperty ();
+ }
+}
+
+void
+KWD::Window::handleProcessKillerExited (void)
+{
+ if (mProcessKiller)
+ {
+ delete mProcessKiller;
+ mProcessKiller = NULL;
+ }
+}
+
+void
+KWD::Window::showKillProcessDialog (Time timestamp)
+{
+ KWin::WindowInfo kWinInfo =
+ KWin::windowInfo (mClientId, 0,
+ NET::WM2WindowClass | NET::WM2ClientMachine);
+ NETWinInfo wInfo = NETWinInfo (qt_xdisplay(), mClientId,
+ qt_xrootwin (), NET::WMPid);
+ QCString clientMachine, resourceClass;
+ pid_t pid;
+ char buf[257];
+
+ if (mProcessKiller)
+ return;
+
+ clientMachine = kWinInfo.clientMachine ();
+ resourceClass = kWinInfo.windowClassClass ();
+ pid = wInfo.pid ();
+
+ if (gethostname (buf, sizeof (buf) - 1) == 0)
+ {
+ if (strcmp (buf, clientMachine) == 0)
+ clientMachine = "localhost";
+ }
+
+ mProcessKiller = new KProcess (this);
+
+ *mProcessKiller << KStandardDirs::findExe ("kwin_killer_helper") <<
+ "--pid" << QCString ().setNum (pid) <<
+ "--hostname" << clientMachine <<
+ "--windowname" << mName.utf8 () <<
+ "--applicationname" << resourceClass <<
+ "--wid" << QCString ().setNum (mClientId) <<
+ "--timestamp" << QCString ().setNum (timestamp);
+
+ connect (mProcessKiller, SIGNAL (processExited (KProcess *)),
+ SLOT (handleProcessKillerExited ()));
+
+ if (!mProcessKiller->start (KProcess::NotifyOnExit))
+ {
+ delete mProcessKiller;
+ mProcessKiller = NULL;
+ }
+}
+
+void
+KWD::Window::hideKillProcessDialog (void)
+{
+ handleProcessKillerExited ();
+}
diff --git a/kde/window-decorator/window.h b/kde/window-decorator/window.h
new file mode 100644
index 0000000..d22cff2
--- /dev/null
+++ b/kde/window-decorator/window.h
@@ -0,0 +1,243 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ * Copyright © 2006 Dennis Kasprzyk <onestone@beryl-project.org>
+ * Copyright © 2006 Volker Krause <vkrause@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifndef _WINDOW_H
+#define _WINDOW_H
+
+#include <kdecoration_p.h>
+
+#include <qpixmap.h>
+#include <qwidget.h>
+
+#include <decoration.h>
+
+#include <X11/extensions/Xdamage.h>
+
+#include "utils.h"
+#include "options.h"
+
+class KProcess;
+class KDecoration;
+class QPopupMenu;
+
+namespace KWD
+{
+class Window:public QWidget, public KDecorationBridge {
+ Q_OBJECT public:
+
+ enum Type
+ {
+ Normal,
+ Switcher,
+ Default,
+ DefaultActive
+ };
+
+ public:
+ Window (WId parentId, WId clientId, WId frame, Type type,
+ int x = 0, int y = 0, int w = 1, int h = 1);
+ ~Window (void);
+
+ virtual bool isActive (void) const;
+ virtual bool isCloseable (void) const;
+ virtual bool isMaximizable (void) const;
+ virtual MaximizeMode maximizeMode (void) const;
+ virtual bool isMinimizable (void) const;
+ virtual bool providesContextHelp (void) const;
+ virtual int desktop (void) const;
+ virtual bool isModal (void) const;
+ virtual bool isShadeable (void) const;
+ virtual bool isShade (void) const;
+ virtual bool isSetShade (void) const;
+ virtual bool keepAbove (void) const;
+ virtual bool keepBelow (void) const;
+ virtual bool isMovable (void) const;
+ virtual bool isResizable (void) const;
+ virtual NET::WindowType
+ windowType (unsigned long supported_types) const;
+ virtual QIconSet icon (void) const;
+ virtual QString caption (void) const;
+ virtual void processMousePressEvent (QMouseEvent *);
+ virtual void showWindowMenu (const QRect &);
+ virtual void showWindowMenu (QPoint);
+ virtual void performWindowOperation (WindowOperation);
+ virtual void setMask (const QRegion &, int);
+ virtual bool isPreview (void) const;
+ virtual QRect geometry (void) const;
+ virtual QRect iconGeometry (void) const;
+ virtual QRegion unobscuredRegion (const QRegion & r) const;
+ virtual QWidget *workspaceWidget (void) const;
+ virtual WId windowId (void) const;
+ virtual void closeWindow (void);
+ virtual void maximize (MaximizeMode mode);
+ virtual void minimize (void);
+ virtual void showContextHelp (void);
+ virtual void setDesktop (int desktop);
+ virtual void titlebarDblClickOperation (void);
+ virtual void titlebarMouseWheelOperation (int delta);
+ virtual void setShade (bool set);
+ virtual void setKeepAbove (bool);
+ virtual void setKeepBelow (bool);
+ virtual int currentDesktop (void) const;
+ virtual QWidget *initialParentWidget (void) const;
+ virtual Qt::WFlags initialWFlags (void) const;
+ virtual void helperShowHide (bool);
+ virtual void grabXServer (bool grab);
+
+ void handleActiveChange (void);
+ void updateFrame (WId frame);
+ void updateWindowGeometry (void);
+ void updateCursor (QPoint pos);
+ void updateSelected (WId selected);
+ WId frameId (void) const
+ {
+ return mFrame;
+ }
+ KDecoration *decoration (void) const
+ {
+ return mDecor;
+ }
+ QWidget *activeChild (void) const
+ {
+ return mActiveChild;
+ }
+ void setActiveChild (QWidget * child)
+ {
+ mActiveChild = child;
+ }
+ QRegion *getShape (void)
+ {
+ if (mShapeSet)
+ return &mShape;
+
+ return NULL;
+ }
+ void getShapeInfo (bool *horz, bool *vert)
+ {
+ *horz = mUniqueHorzShape;
+ *vert = mUniqueVertShape;
+ }
+ void moveWindow (QMouseEvent *qme);
+ void reloadDecoration (void);
+ void updateState (void);
+ void updateName (void);
+ void updateIcons (void);
+ void updateOpacity (void)
+ {
+ mOpacity = readPropertyShort (mClientId, Atoms::netWmWindowOpacity,
+ 0xffff);
+ }
+ Drawable pixmapId (void) const
+ {
+ return mPixmap;
+ }
+ void addDamageRect (int x, int y, int w, int h)
+ {
+ mDamage += QRegion (x, y, w, h);
+ }
+ bool handleMap (void);
+ bool handleConfigure (QSize size);
+ void processDamage (void);
+ decor_context_t *context (void)
+ {
+ return &mContext;
+ }
+ decor_shadow_t *shadow (void)
+ {
+ return mShadow;
+ }
+ decor_extents_t *border (void)
+ {
+ return &mBorder;
+ }
+ QRect clientGeometry (void);
+ void showKillProcessDialog (Time timestamp);
+ void hideKillProcessDialog (void);
+
+ private:
+ void createDecoration (void);
+ void updateShadow (void);
+ bool resizeDecoration (bool force = false);
+ void updateBlurProperty (int topOffset,
+ int bottomOffset,
+ int leftOffset,
+ int rightOffset);
+ void updateProperty (void);
+ void getWindowProtocols (void);
+ void performMouseCommand (KWD::Options::MouseCommand command,
+ QMouseEvent *qme);
+ NET::Direction positionToDirection (int pos);
+ Cursor positionToCursor (QPoint pos);
+ void rebindPixmap (void);
+
+
+ private slots:
+ void handlePopupActivated (int id);
+ void handleDesktopPopupActivated (int id);
+ void handlePopupAboutToShow (void);
+ void handleProcessKillerExited (void);
+
+ private:
+ Type mType;
+ WId mParentId;
+ WId mFrame;
+ WId mClientId;
+ WId mSelectedId;
+ QRect mGeometry;
+ QString mName;
+ QIconSet mIcons;
+ decor_extents_t mBorder;
+ unsigned short mOpacity;
+ KDecoration *mDecor;
+ QPixmap mTexturePixmap;
+ QPixmap mTexturePixmapBuffer;
+ Pixmap mPixmap;
+ QRegion mDamage;
+ WId mDamageId;
+ decor_layout_t mLayout;
+ decor_context_t mContext;
+ decor_shadow_t *mShadow;
+ Picture mPicture;
+ Picture mTexturePicture;
+ Picture mDecorationPicture;
+ bool mUpdateProperty;
+ bool mShapeSet;
+ bool mUniqueHorzShape;
+ bool mUniqueVertShape;
+ QRegion mShape;
+ QWidget *mActiveChild;
+ bool mSupportTakeFocus;
+ bool mSupportContextHelp;
+ QPopupMenu *mPopup;
+ QPopupMenu *mAdvancedMenu;
+ QPopupMenu *mDesktopMenu;
+ unsigned long mState;
+ bool mMapped;
+ int mPendingMap;
+ int mPendingConfigure;
+ QSize mSize;
+ KProcess *mProcessKiller;
+ };
+}
+
+#endif
diff --git a/libdecoration/Makefile.am b/libdecoration/Makefile.am
new file mode 100644
index 0000000..c2e8c57
--- /dev/null
+++ b/libdecoration/Makefile.am
@@ -0,0 +1,12 @@
+lib_LTLIBRARIES = libdecoration.la
+
+libdecoration_la_LIBADD = @DECORATION_LIBS@ -lm
+libdecoration_la_LDFLAGS = -no-undefined
+libdecoration_la_SOURCES = decoration.c
+
+INCLUDES = @DECORATION_CFLAGS@ -I$(top_srcdir)/include
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libdecoration.pc
+
+EXTRA_DIST = libdecoration.pc.in \ No newline at end of file
diff --git a/libdecoration/Makefile.in b/libdecoration/Makefile.in
new file mode 100644
index 0000000..ff1f755
--- /dev/null
+++ b/libdecoration/Makefile.in
@@ -0,0 +1,605 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libdecoration
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/libdecoration.pc.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = libdecoration.pc
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libdecoration_la_DEPENDENCIES =
+am_libdecoration_la_OBJECTS = decoration.lo
+libdecoration_la_OBJECTS = $(am_libdecoration_la_OBJECTS)
+libdecoration_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libdecoration_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libdecoration_la_SOURCES)
+DIST_SOURCES = $(libdecoration_la_SOURCES)
+pkgconfigDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(pkgconfig_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+lib_LTLIBRARIES = libdecoration.la
+libdecoration_la_LIBADD = @DECORATION_LIBS@ -lm
+libdecoration_la_LDFLAGS = -no-undefined
+libdecoration_la_SOURCES = decoration.c
+INCLUDES = @DECORATION_CFLAGS@ -I$(top_srcdir)/include
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libdecoration.pc
+EXTRA_DIST = libdecoration.pc.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libdecoration/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu libdecoration/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+libdecoration.pc: $(top_builddir)/config.status $(srcdir)/libdecoration.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libdecoration.la: $(libdecoration_la_OBJECTS) $(libdecoration_la_DEPENDENCIES)
+ $(libdecoration_la_LINK) -rpath $(libdir) $(libdecoration_la_OBJECTS) $(libdecoration_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decoration.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pkgconfigDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-pkgconfigDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-pkgconfigDATA
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libdecoration/decoration.c b/libdecoration/decoration.c
new file mode 100644
index 0000000..065a9c3
--- /dev/null
+++ b/libdecoration/decoration.c
@@ -0,0 +1,2829 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+#include <decoration.h>
+
+#include <X11/Xatom.h>
+#include <X11/Xregion.h>
+
+int
+decor_version (void)
+{
+ return DECOR_INTERFACE_VERSION;
+}
+
+/*
+ decoration property
+ -------------------
+
+ data[0] = version
+
+ data[1] = pixmap
+
+ data[2] = input left
+ data[3] = input right
+ data[4] = input top
+ data[5] = input bottom
+
+ data[6] = input left when maximized
+ data[7] = input right when maximized
+ data[8] = input top when maximized
+ data[9] = input bottom when maximized
+
+ data[10] = min width
+ data[11] = min height
+
+ flags
+
+ 1st to 4nd bit p1 gravity, 5rd to 8th bit p2 gravity,
+ 9rd and 10th bit alignment, 11rd and 12th bit clamp,
+ 13th bit XX, 14th bit XY, 15th bit YX, 16th bit YY.
+
+ data[11 + n * 9 + 1] = flags
+ data[11 + n * 9 + 2] = p1 x
+ data[11 + n * 9 + 3] = p1 y
+ data[11 + n * 9 + 4] = p2 x
+ data[11 + n * 9 + 5] = p2 y
+ data[11 + n * 9 + 6] = widthMax
+ data[11 + n * 9 + 7] = heightMax
+ data[11 + n * 9 + 8] = x0
+ data[11 + n * 9 + 9] = y0
+ */
+void
+decor_quads_to_property (long *data,
+ Pixmap pixmap,
+ decor_extents_t *input,
+ decor_extents_t *max_input,
+ int min_width,
+ int min_height,
+ decor_quad_t *quad,
+ int nQuad)
+{
+ *data++ = DECOR_INTERFACE_VERSION;
+
+ memcpy (data++, &pixmap, sizeof (Pixmap));
+
+ *data++ = input->left;
+ *data++ = input->right;
+ *data++ = input->top;
+ *data++ = input->bottom;
+
+ *data++ = max_input->left;
+ *data++ = max_input->right;
+ *data++ = max_input->top;
+ *data++ = max_input->bottom;
+
+ *data++ = min_width;
+ *data++ = min_height;
+
+ while (nQuad--)
+ {
+ *data++ =
+ (quad->p1.gravity << 0) |
+ (quad->p2.gravity << 4) |
+ (quad->align << 8) |
+ (quad->clamp << 10) |
+ (quad->stretch << 12) |
+ (quad->m.xx ? XX_MASK : 0) |
+ (quad->m.xy ? XY_MASK : 0) |
+ (quad->m.yx ? YX_MASK : 0) |
+ (quad->m.yy ? YY_MASK : 0);
+
+ *data++ = quad->p1.x;
+ *data++ = quad->p1.y;
+ *data++ = quad->p2.x;
+ *data++ = quad->p2.y;
+ *data++ = quad->max_width;
+ *data++ = quad->max_height;
+ *data++ = quad->m.x0;
+ *data++ = quad->m.y0;
+
+ quad++;
+ }
+}
+
+int
+decor_property_get_version (long *data)
+{
+ return (int) *data;
+}
+
+int
+decor_property_to_quads (long *data,
+ int size,
+ Pixmap *pixmap,
+ decor_extents_t *input,
+ decor_extents_t *max_input,
+ int *min_width,
+ int *min_height,
+ decor_quad_t *quad)
+{
+ int i, n, flags;
+
+ if (size < BASE_PROP_SIZE + QUAD_PROP_SIZE)
+ return 0;
+
+ if (decor_property_get_version (data) != decor_version ())
+ return 0;
+
+ data++;
+
+ memcpy (pixmap, data++, sizeof (Pixmap));
+
+ input->left = *data++;
+ input->right = *data++;
+ input->top = *data++;
+ input->bottom = *data++;
+
+ max_input->left = *data++;
+ max_input->right = *data++;
+ max_input->top = *data++;
+ max_input->bottom = *data++;
+
+ *min_width = *data++;
+ *min_height = *data++;
+
+ n = (size - BASE_PROP_SIZE) / QUAD_PROP_SIZE;
+
+ for (i = 0; i < n; i++)
+ {
+ flags = *data++;
+
+ quad->p1.gravity = (flags >> 0) & 0xf;
+ quad->p2.gravity = (flags >> 4) & 0xf;
+
+ quad->align = (flags >> 8) & 0x3;
+ quad->clamp = (flags >> 10) & 0x3;
+ quad->stretch = (flags >> 12) & 0x3;
+
+ quad->m.xx = (flags & XX_MASK) ? 1.0f : 0.0f;
+ quad->m.xy = (flags & XY_MASK) ? 1.0f : 0.0f;
+ quad->m.yx = (flags & YX_MASK) ? 1.0f : 0.0f;
+ quad->m.yy = (flags & YY_MASK) ? 1.0f : 0.0f;
+
+ quad->p1.x = *data++;
+ quad->p1.y = *data++;
+ quad->p2.x = *data++;
+ quad->p2.y = *data++;
+
+ quad->max_width = *data++;
+ quad->max_height = *data++;
+
+ quad->m.x0 = *data++;
+ quad->m.y0 = *data++;
+
+ quad++;
+ }
+
+ return n;
+}
+
+static int
+add_blur_boxes (long *data,
+ BoxPtr box,
+ int n_box,
+ int width,
+ int height,
+ int gravity,
+ int offset)
+{
+ int x1, y1, x2, y2;
+ int more_gravity;
+ int n = n_box;
+
+ while (n--)
+ {
+ x1 = box->x1;
+ y1 = box->y1;
+ x2 = box->x2;
+ y2 = box->y2;
+
+ if (gravity & (GRAVITY_NORTH | GRAVITY_SOUTH))
+ {
+ if (x1 > offset)
+ {
+ more_gravity = GRAVITY_EAST;
+ x1 -= width;
+ }
+ else
+ {
+ more_gravity = GRAVITY_WEST;
+ }
+ }
+ else
+ {
+ if (y1 > offset)
+ {
+ more_gravity = GRAVITY_SOUTH;
+ y1 -= height;
+ }
+ else
+ {
+ more_gravity = GRAVITY_NORTH;
+ }
+ }
+
+ *data++ = gravity | more_gravity;
+ *data++ = x1;
+ *data++ = y1;
+
+ if (gravity & (GRAVITY_NORTH | GRAVITY_SOUTH))
+ {
+ if (x2 > offset)
+ {
+ more_gravity = GRAVITY_EAST;
+ x2 -= width;
+ }
+ else
+ {
+ more_gravity = GRAVITY_WEST;
+ }
+ }
+ else
+ {
+ if (y2 > offset)
+ {
+ more_gravity = GRAVITY_SOUTH;
+ y2 -= height;
+ }
+ else
+ {
+ more_gravity = GRAVITY_NORTH;
+ }
+ }
+
+ *data++ = gravity | more_gravity;
+ *data++ = x2;
+ *data++ = y2;
+
+ box++;
+ }
+
+ return n_box * 6;
+}
+
+void
+decor_region_to_blur_property (long *data,
+ int threshold,
+ int filter,
+ int width,
+ int height,
+ Region top_region,
+ int top_offset,
+ Region bottom_region,
+ int bottom_offset,
+ Region left_region,
+ int left_offset,
+ Region right_region,
+ int right_offset)
+{
+ *data++ = threshold;
+ *data++ = filter;
+
+ if (top_region)
+ data += add_blur_boxes (data,
+ top_region->rects,
+ top_region->numRects,
+ width, height,
+ GRAVITY_NORTH,
+ top_offset);
+
+ if (bottom_region)
+ data += add_blur_boxes (data,
+ bottom_region->rects,
+ bottom_region->numRects,
+ width, height,
+ GRAVITY_SOUTH,
+ bottom_offset);
+
+ if (left_region)
+ data += add_blur_boxes (data,
+ left_region->rects,
+ left_region->numRects,
+ width, height,
+ GRAVITY_WEST,
+ left_offset);
+
+ if (right_region)
+ data += add_blur_boxes (data,
+ right_region->rects,
+ right_region->numRects,
+ width, height,
+ GRAVITY_EAST,
+ right_offset);
+}
+
+void
+decor_apply_gravity (int gravity,
+ int x,
+ int y,
+ int width,
+ int height,
+ int *return_x,
+ int *return_y)
+{
+ if (gravity & GRAVITY_EAST)
+ {
+ x += width;
+ *return_x = MAX (0, x);
+ }
+ else if (gravity & GRAVITY_WEST)
+ {
+ *return_x = MIN (width, x);
+ }
+ else
+ {
+ x += width / 2;
+ x = MAX (0, x);
+ x = MIN (width, x);
+ *return_x = x;
+ }
+
+ if (gravity & GRAVITY_SOUTH)
+ {
+ y += height;
+ *return_y = MAX (0, y);
+ }
+ else if (gravity & GRAVITY_NORTH)
+ {
+ *return_y = MIN (height, y);
+ }
+ else
+ {
+ y += height / 2;
+ y = MAX (0, y);
+ y = MIN (height, y);
+ *return_y = y;
+ }
+}
+
+int
+decor_set_vert_quad_row (decor_quad_t *q,
+ int top,
+ int top_corner,
+ int bottom,
+ int bottom_corner,
+ int left,
+ int right,
+ int gravity,
+ int height,
+ int splitY,
+ int splitGravity,
+ double x0,
+ double y0,
+ int rotation)
+{
+ int nQuad = 0;
+
+ q->p1.x = left;
+ q->p1.y = -top;
+ q->p1.gravity = gravity | GRAVITY_NORTH;
+ q->p2.x = right;
+ q->p2.y = splitY;
+ q->p2.gravity = gravity | splitGravity;
+ q->max_width = SHRT_MAX;
+ q->max_height = top + top_corner;
+ q->align = ALIGN_TOP;
+ q->clamp = CLAMP_VERT;
+ q->stretch = 0;
+ q->m.x0 = x0;
+ q->m.y0 = y0;
+
+ if (rotation)
+ {
+ q->m.xx = 0.0;
+ q->m.xy = 1.0;
+ q->m.yx = 1.0;
+ q->m.yy = 0.0;
+ }
+ else
+ {
+ q->m.xx = 1.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 1.0;
+ }
+
+ q++; nQuad++;
+
+ q->p1.x = left;
+ q->p1.y = top_corner;
+ q->p1.gravity = gravity | GRAVITY_NORTH;
+ q->p2.x = right;
+ q->p2.y = -bottom_corner;
+ q->p2.gravity = gravity | GRAVITY_SOUTH;
+ q->max_width = SHRT_MAX;
+ q->max_height = SHRT_MAX;
+ q->align = 0;
+ q->clamp = CLAMP_VERT;
+ q->stretch = 0;
+
+ if (rotation)
+ {
+ q->m.xx = 0.0;
+ q->m.xy = 0.0;
+ q->m.yx = 1.0;
+ q->m.yy = 0.0;
+ q->m.x0 = x0 + top + top_corner;
+ q->m.y0 = y0;
+ }
+ else
+ {
+ q->m.xx = 1.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 0.0;
+ q->m.x0 = x0;
+ q->m.y0 = y0 + top + top_corner;
+ }
+
+ q++; nQuad++;
+
+ q->p1.x = left;
+ q->p1.y = splitY;
+ q->p1.gravity = gravity | splitGravity;
+ q->p2.x = right;
+ q->p2.y = bottom;
+ q->p2.gravity = gravity | GRAVITY_SOUTH;
+ q->max_width = SHRT_MAX;
+ q->max_height = bottom_corner + bottom;
+ q->align = ALIGN_BOTTOM;
+ q->clamp = CLAMP_VERT;
+ q->stretch = 0;
+
+ if (rotation)
+ {
+ q->m.xx = 0.0;
+ q->m.xy = 1.0;
+ q->m.yx = 1.0;
+ q->m.yy = 0.0;
+ q->m.x0 = x0 + height;
+ q->m.y0 = y0;
+ }
+ else
+ {
+ q->m.xx = 1.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 1.0;
+ q->m.x0 = x0;
+ q->m.y0 = y0 + height;
+ }
+
+ nQuad++;
+
+ return nQuad;
+}
+
+int
+decor_set_horz_quad_line (decor_quad_t *q,
+ int left,
+ int left_corner,
+ int right,
+ int right_corner,
+ int top,
+ int bottom,
+ int gravity,
+ int width,
+ int splitX,
+ int splitGravity,
+ double x0,
+ double y0)
+{
+ int nQuad = 0;
+
+ q->p1.x = -left;
+ q->p1.y = top;
+ q->p1.gravity = gravity | GRAVITY_WEST;
+ q->p2.x = splitX;
+ q->p2.y = bottom;
+ q->p2.gravity = gravity | splitGravity;
+ q->max_width = left + left_corner;
+ q->max_height = SHRT_MAX;
+ q->align = ALIGN_LEFT;
+ q->clamp = 0;
+ q->stretch = 0;
+ q->m.xx = 1.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 1.0;
+ q->m.x0 = x0;
+ q->m.y0 = y0;
+
+ q++; nQuad++;
+
+ q->p1.x = left_corner;
+ q->p1.y = top;
+ q->p1.gravity = gravity | GRAVITY_WEST;
+ q->p2.x = -right_corner;
+ q->p2.y = bottom;
+ q->p2.gravity = gravity | GRAVITY_EAST;
+ q->max_width = SHRT_MAX;
+ q->max_height = SHRT_MAX;
+ q->align = 0;
+ q->clamp = 0;
+ q->stretch = 0;
+ q->m.xx = 0.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 1.0;
+ q->m.x0 = x0 + left + left_corner;
+ q->m.y0 = y0;
+
+ q++; nQuad++;
+
+ q->p1.x = splitX;
+ q->p1.y = top;
+ q->p1.gravity = gravity | splitGravity;
+ q->p2.x = right;
+ q->p2.y = bottom;
+ q->p2.gravity = gravity | GRAVITY_EAST;
+ q->max_width = right_corner + right;
+ q->max_height = SHRT_MAX;
+ q->align = ALIGN_RIGHT;
+ q->clamp = 0;
+ q->stretch = 0;
+ q->m.xx = 1.0;
+ q->m.xy = 0.0;
+ q->m.yx = 0.0;
+ q->m.yy = 1.0;
+ q->m.x0 = x0 + width;
+ q->m.y0 = y0;
+
+ nQuad++;
+
+ return nQuad;
+}
+
+int
+decor_set_lSrS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l)
+{
+ int lh, rh, splitY, n, nQuad = 0;
+
+ splitY = (c->top_corner_space - c->bottom_corner_space) / 2;
+
+ if (l->rotation)
+ {
+ lh = l->left.x2 - l->left.x1;
+ rh = l->right.x2 - l->right.x1;
+ }
+ else
+ {
+ lh = l->left.y2 - l->left.y1;
+ rh = l->right.y2 - l->right.y1;
+ }
+
+ /* left quads */
+ n = decor_set_vert_quad_row (q,
+ 0,
+ c->top_corner_space,
+ 0,
+ c->bottom_corner_space,
+ -c->left_space,
+ 0,
+ GRAVITY_WEST,
+ lh,
+ splitY,
+ 0,
+ l->left.x1,
+ l->left.y1,
+ l->rotation);
+
+ q += n; nQuad += n;
+
+ /* right quads */
+ n = decor_set_vert_quad_row (q,
+ 0,
+ c->top_corner_space,
+ 0,
+ c->bottom_corner_space,
+ 0,
+ c->right_space,
+ GRAVITY_EAST,
+ rh,
+ splitY,
+ 0,
+ l->right.x1,
+ l->right.y1,
+ l->rotation);
+
+ nQuad += n;
+
+ return nQuad;
+}
+
+int
+decor_set_lSrStSbS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l)
+{
+ int splitX, n, nQuad = 0;
+
+ splitX = (c->left_corner_space - c->right_corner_space) / 2;
+
+ /* top quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ c->left_corner_space,
+ c->right_space,
+ c->right_corner_space,
+ -c->top_space,
+ 0,
+ GRAVITY_NORTH,
+ l->top.x2 - l->top.x1,
+ splitX,
+ 0,
+ l->top.x1,
+ l->top.y1);
+
+ q += n; nQuad += n;
+
+ n = decor_set_lSrS_window_quads (q, c, l);
+
+ q += n; nQuad += n;
+
+ /* bottom quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ c->left_corner_space,
+ c->right_space,
+ c->right_corner_space,
+ 0,
+ c->bottom_space,
+ GRAVITY_SOUTH,
+ l->bottom.x2 - l->bottom.x1,
+ splitX,
+ 0,
+ l->bottom.x1,
+ l->bottom.y1);
+
+ nQuad += n;
+
+ return nQuad;
+}
+
+int
+decor_set_lSrStXbS_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int top_stretch_offset)
+{
+ int splitX, n, nQuad = 0;
+ int top_left, top_right;
+
+ splitX = (c->left_corner_space - c->right_corner_space) / 2;
+
+ top_left = top_stretch_offset;
+ top_right = l->top.x2 - l->top.x1 -
+ c->left_space - c->right_space - top_left - 1;
+
+ /* top quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ top_left,
+ c->right_space,
+ top_right,
+ -c->top_space,
+ 0,
+ GRAVITY_NORTH,
+ l->top.x2 - l->top.x1,
+ -top_right,
+ GRAVITY_EAST,
+ l->top.x1,
+ l->top.y1);
+
+ q += n; nQuad += n;
+
+ n = decor_set_lSrS_window_quads (q, c, l);
+
+ q += n; nQuad += n;
+
+ /* bottom quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ c->left_corner_space,
+ c->right_space,
+ c->right_corner_space,
+ 0,
+ c->bottom_space,
+ GRAVITY_SOUTH,
+ l->bottom.x2 - l->bottom.x1,
+ splitX,
+ 0,
+ l->bottom.x1,
+ l->bottom.y1);
+
+ nQuad += n;
+
+ return nQuad;
+}
+
+int
+decor_set_lSrStSbX_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int bottom_stretch_offset)
+{
+ int splitX, n, nQuad = 0;
+ int bottom_left, bottom_right;
+
+ splitX = (c->left_corner_space - c->right_corner_space) / 2;
+
+ bottom_left = bottom_stretch_offset;
+ bottom_right = l->bottom.x2 - l->bottom.x1 -
+ c->left_space - c->right_space - bottom_left - 1;
+
+ /* top quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ c->left_corner_space,
+ c->right_space,
+ c->right_corner_space,
+ -c->top_space,
+ 0,
+ GRAVITY_NORTH,
+ l->top.x2 - l->top.x1,
+ splitX,
+ 0,
+ l->top.x1,
+ l->top.y1);
+
+ q += n; nQuad += n;
+
+ n = decor_set_lSrS_window_quads (q, c, l);
+
+ q += n; nQuad += n;
+
+ /* bottom quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ bottom_left,
+ c->right_space,
+ bottom_right,
+ 0,
+ c->bottom_space,
+ GRAVITY_SOUTH,
+ l->bottom.x2 - l->bottom.x1,
+ -bottom_right,
+ GRAVITY_EAST,
+ l->bottom.x1,
+ l->bottom.y1);
+
+ nQuad += n;
+
+ return nQuad;
+}
+
+int
+decor_set_lXrXtXbX_window_quads (decor_quad_t *q,
+ decor_context_t *c,
+ decor_layout_t *l,
+ int left_stretch_offset,
+ int right_stretch_offset,
+ int top_stretch_offset,
+ int bottom_stretch_offset)
+{
+ int lh, rh, n, nQuad = 0;
+ int left_top, left_bottom;
+ int right_top, right_bottom;
+ int top_left, top_right;
+ int bottom_left, bottom_right;
+
+ top_left = top_stretch_offset;
+ top_right = l->top.x2 - l->top.x1 -
+ c->left_space - c->right_space - top_left - 1;
+
+ bottom_left = bottom_stretch_offset;
+ bottom_right = l->bottom.x2 - l->bottom.x1 -
+ c->left_space - c->right_space - bottom_left - 1;
+
+ if (l->rotation)
+ {
+ lh = l->left.x2 - l->left.x1;
+ rh = l->right.x2 - l->right.x1;
+ }
+ else
+ {
+ lh = l->left.y2 - l->left.y1;
+ rh = l->right.y2 - l->right.y1;
+ }
+
+ left_top = left_stretch_offset;
+ left_bottom = lh - left_top - 1;
+
+ right_top = right_stretch_offset;
+ right_bottom = rh - right_top - 1;
+
+
+ /* top quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ top_left,
+ c->right_space,
+ top_right,
+ -c->top_space,
+ 0,
+ GRAVITY_NORTH,
+ l->top.x2 - l->top.x1,
+ -top_right,
+ GRAVITY_EAST,
+ l->top.x1,
+ l->top.y1);
+
+ q += n; nQuad += n;
+
+ /* left quads */
+ n = decor_set_vert_quad_row (q,
+ 0,
+ left_top,
+ 0,
+ left_bottom,
+ -c->left_space,
+ 0,
+ GRAVITY_WEST,
+ lh,
+ -left_bottom,
+ GRAVITY_SOUTH,
+ l->left.x1,
+ l->left.y1,
+ l->rotation);
+
+ q += n; nQuad += n;
+
+ /* right quads */
+ n = decor_set_vert_quad_row (q,
+ 0,
+ right_top,
+ 0,
+ right_bottom,
+ 0,
+ c->right_space,
+ GRAVITY_EAST,
+ rh,
+ -right_bottom,
+ GRAVITY_SOUTH,
+ l->right.x1,
+ l->right.y1,
+ l->rotation);
+
+ q += n; nQuad += n;
+
+ /* bottom quads */
+ n = decor_set_horz_quad_line (q,
+ c->left_space,
+ bottom_left,
+ c->right_space,
+ bottom_right,
+ 0,
+ c->bottom_space,
+ GRAVITY_SOUTH,
+ l->bottom.x2 - l->bottom.x1,
+ -bottom_right,
+ GRAVITY_EAST,
+ l->bottom.x1,
+ l->bottom.y1);
+
+ nQuad += n;
+
+ return nQuad;
+}
+
+#if INT_MAX != LONG_MAX
+
+static int errors;
+
+static int
+error_handler (Display *xdisplay,
+ XErrorEvent *event)
+{
+ errors++;
+ return 0;
+}
+
+/* XRenderSetPictureFilter used to be broken on LP64. This
+ * works with either the broken or fixed version.
+ */
+static void
+XRenderSetPictureFilter_wrapper (Display *dpy,
+ Picture picture,
+ char *filter,
+ XFixed *params,
+ int nparams)
+{
+ int (*old) (Display *, XErrorEvent *);
+
+ errors = 0;
+
+ old = XSetErrorHandler (error_handler);
+
+ XRenderSetPictureFilter (dpy, picture, filter, params, nparams);
+ XSync (dpy, False);
+
+ XSetErrorHandler (old);
+
+ if (errors)
+ {
+ long *long_params = malloc (sizeof (long) * nparams);
+ int i;
+
+ for (i = 0; i < nparams; i++)
+ long_params[i] = params[i];
+
+ XRenderSetPictureFilter (dpy, picture, filter,
+ (XFixed *) long_params, nparams);
+ free (long_params);
+ }
+}
+
+#define XRenderSetPictureFilter XRenderSetPictureFilter_wrapper
+#endif
+
+static void
+set_picture_transform (Display *xdisplay,
+ Picture p,
+ int dx,
+ int dy)
+{
+ XTransform transform = {
+ {
+ { 1 << 16, 0, -dx << 16 },
+ { 0, 1 << 16, -dy << 16 },
+ { 0, 0, 1 << 16 },
+ }
+ };
+
+ XRenderSetPictureTransform (xdisplay, p, &transform);
+}
+
+static void
+set_picture_clip (Display *xdisplay,
+ Picture p,
+ int width,
+ int height,
+ int clipX1,
+ int clipY1,
+ int clipX2,
+ int clipY2)
+{
+ XRectangle clip[4];
+
+ clip[0].x = 0;
+ clip[0].y = 0;
+ clip[0].width = width;
+ clip[0].height = clipY1;
+
+ clip[1].x = 0;
+ clip[1].y = clipY2;
+ clip[1].width = width;
+ clip[1].height = height - clipY2;
+
+ clip[2].x = 0;
+ clip[2].y = clipY1;
+ clip[2].width = clipX1;
+ clip[2].height = clipY2 - clipY1;
+
+ clip[3].x = clipX2;
+ clip[3].y = clipY1;
+ clip[3].width = width - clipX2;
+ clip[3].height = clipY2 - clipY1;
+
+ XRenderSetPictureClipRectangles (xdisplay, p, 0, 0, clip, 4);
+}
+
+static void
+set_no_picture_clip (Display *xdisplay,
+ Picture p)
+{
+ XRectangle clip;
+
+ clip.x = 0;
+ clip.y = 0;
+ clip.width = SHRT_MAX;
+ clip.height = SHRT_MAX;
+
+ XRenderSetPictureClipRectangles (xdisplay, p, 0, 0, &clip, 1);
+}
+
+static XFixed *
+create_gaussian_kernel (double radius,
+ double sigma,
+ double alpha,
+ int *r_size)
+{
+ XFixed *params;
+ double *amp, scale, x_scale, fx, sum;
+ int size, half_size, x, i, n;
+
+ scale = 1.0f / (2.0f * M_PI * sigma * sigma);
+ half_size = alpha + 0.5f;
+
+ if (half_size == 0)
+ half_size = 1;
+
+ size = half_size * 2 + 1;
+ x_scale = 2.0f * radius / size;
+
+ if (size < 3)
+ return NULL;
+
+ n = size;
+
+ amp = malloc (sizeof (double) * n);
+ if (!amp)
+ return NULL;
+
+ n += 2;
+
+ params = malloc (sizeof (XFixed) * n);
+ if (!params)
+ {
+ free (amp);
+ return NULL;
+ }
+
+ i = 0;
+ sum = 0.0f;
+
+ for (x = 0; x < size; x++)
+ {
+ fx = x_scale * (x - half_size);
+
+ amp[i] = scale * exp ((-1.0f * (fx * fx)) / (2.0f * sigma * sigma));
+
+ sum += amp[i];
+
+ i++;
+ }
+
+ /* normalize */
+ if (sum != 0.0)
+ sum = 1.0 / sum;
+
+ params[0] = params[1] = 0;
+
+ for (i = 2; i < n; i++)
+ params[i] = XDoubleToFixed (amp[i - 2] * sum);
+
+ free (amp);
+
+ *r_size = size;
+
+ return params;
+}
+
+#define SIGMA(r) ((r) / 2.0)
+#define ALPHA(r) (r)
+
+decor_shadow_t *
+decor_shadow_create (Display *xdisplay,
+ Screen *screen,
+ int width,
+ int height,
+ int left,
+ int right,
+ int top,
+ int bottom,
+ int solid_left,
+ int solid_right,
+ int solid_top,
+ int solid_bottom,
+ decor_shadow_options_t *opt,
+ decor_context_t *c,
+ decor_draw_func_t draw,
+ void *closure)
+{
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+ XRenderPictFormat *format;
+ Pixmap pixmap;
+ Picture src, dst, tmp;
+ XFixed opacity, *params;
+ XFilters *filters;
+ char *filter = NULL;
+ int size, n_params = 0;
+ XRenderColor color;
+ int shadow_offset_x;
+ int shadow_offset_y;
+ Pixmap d_pixmap;
+ int d_width;
+ int d_height;
+ Window xroot = screen->root;
+ decor_shadow_t *shadow;
+ int clipX1, clipY1, clipX2, clipY2;
+
+ shadow = malloc (sizeof (decor_shadow_t));
+ if (!shadow)
+ return NULL;
+
+ shadow->ref_count = 1;
+
+ shadow->pixmap = 0;
+ shadow->picture = 0;
+ shadow->width = 0;
+ shadow->height = 0;
+
+ shadow_offset_x = opt->shadow_offset_x;
+ shadow_offset_y = opt->shadow_offset_y;
+
+ /* compute a gaussian convolution kernel */
+ params = create_gaussian_kernel (opt->shadow_radius,
+ SIGMA (opt->shadow_radius),
+ ALPHA (opt->shadow_radius),
+ &size);
+ if (!params)
+ shadow_offset_x = shadow_offset_y = size = 0;
+
+ if (opt->shadow_radius <= 0.0 &&
+ shadow_offset_x == 0 &&
+ shadow_offset_y == 0)
+ size = 0;
+
+ n_params = size + 2;
+ size = size / 2;
+
+ c->extents.left = left;
+ c->extents.right = right;
+ c->extents.top = top;
+ c->extents.bottom = bottom;
+
+ c->left_space = left + size - shadow_offset_x;
+ c->right_space = right + size + shadow_offset_x;
+ c->top_space = top + size - shadow_offset_y;
+ c->bottom_space = bottom + size + shadow_offset_y;
+
+ c->left_space = MAX (left, c->left_space);
+ c->right_space = MAX (right, c->right_space);
+ c->top_space = MAX (top, c->top_space);
+ c->bottom_space = MAX (bottom, c->bottom_space);
+
+ c->left_corner_space = MAX (1, size - solid_left + shadow_offset_x);
+ c->right_corner_space = MAX (1, size - solid_right - shadow_offset_x);
+ c->top_corner_space = MAX (1, size - solid_top + shadow_offset_y);
+ c->bottom_corner_space = MAX (1, size - solid_bottom - shadow_offset_y);
+
+ width = MAX (width, c->left_corner_space + c->right_corner_space);
+ height = MAX (height, c->top_corner_space + c->bottom_corner_space);
+
+ width = MAX (1, width);
+ height = MAX (1, height);
+
+ d_width = c->left_space + width + c->right_space;
+ d_height = c->top_space + height + c->bottom_space;
+
+ /* all pixmaps are ARGB32 */
+ format = XRenderFindStandardFormat (xdisplay, PictStandardARGB32);
+
+ /* no shadow */
+ if (size <= 0)
+ {
+ if (params)
+ free (params);
+
+ return shadow;
+ }
+
+ pixmap = XCreatePixmap (xdisplay, xroot, d_width, d_height, 32);
+ if (!pixmap)
+ {
+ free (params);
+ return shadow;
+ }
+
+ /* query server for convolution filter */
+ filters = XRenderQueryFilters (xdisplay, pixmap);
+ if (filters)
+ {
+ int i;
+
+ for (i = 0; i < filters->nfilter; i++)
+ {
+ if (strcmp (filters->filter[i], FilterConvolution) == 0)
+ {
+ filter = (char *) FilterConvolution;
+ break;
+ }
+ }
+
+ XFree (filters);
+ }
+
+ if (!filter)
+ {
+ XFreePixmap (xdisplay, pixmap);
+ free (params);
+
+ return shadow;
+ }
+
+ /* create pixmap for temporary decorations */
+ d_pixmap = XCreatePixmap (xdisplay, xroot, d_width, d_height, 32);
+ if (!d_pixmap)
+ {
+ XFreePixmap (xdisplay, pixmap);
+ free (params);
+
+ return shadow;
+ }
+
+ src = XRenderCreateSolidFill (xdisplay, &white);
+ dst = XRenderCreatePicture (xdisplay, d_pixmap, format, 0, NULL);
+ tmp = XRenderCreatePicture (xdisplay, pixmap, format, 0, NULL);
+
+ /* draw decoration */
+ (*draw) (xdisplay, d_pixmap, dst, d_width, d_height, c, closure);
+
+ /* first pass */
+ params[0] = (n_params - 2) << 16;
+ params[1] = 1 << 16;
+
+ clipX1 = c->left_space + size;
+ clipY1 = c->top_space + size;
+ clipX2 = d_width - c->right_space - size;
+ clipY2 = d_height - c->bottom_space - size;
+
+ if (clipX1 < clipX2 && clipY1 < clipY2)
+ set_picture_clip (xdisplay, tmp, d_width, d_height,
+ clipX1, clipY1, clipX2, clipY2);
+
+ set_picture_transform (xdisplay, dst, shadow_offset_x, 0);
+ XRenderSetPictureFilter (xdisplay, dst, filter, params, n_params);
+ XRenderComposite (xdisplay,
+ PictOpSrc,
+ src,
+ dst,
+ tmp,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ d_width, d_height);
+
+ set_no_picture_clip (xdisplay, tmp);
+
+ XRenderFreePicture (xdisplay, src);
+
+ /* second pass */
+ params[0] = 1 << 16;
+ params[1] = (n_params - 2) << 16;
+
+ opacity = XDoubleToFixed (opt->shadow_opacity);
+ if (opacity < (1 << 16))
+ {
+ /* apply opacity as shadow color if less than 1.0 */
+ color.red = (opt->shadow_color[0] * opacity) >> 16;
+ color.green = (opt->shadow_color[1] * opacity) >> 16;
+ color.blue = (opt->shadow_color[2] * opacity) >> 16;
+ color.alpha = opacity;
+
+ opacity = 1 << 16;
+ }
+ else
+ {
+ /* shadow color */
+ color.red = opt->shadow_color[0];
+ color.green = opt->shadow_color[1];
+ color.blue = opt->shadow_color[2];
+ color.alpha = 0xffff;
+ }
+
+ src = XRenderCreateSolidFill (xdisplay, &color);
+
+ clipX1 = c->left_space;
+ clipY1 = c->top_space;
+ clipX2 = d_width - c->right_space;
+ clipY2 = d_height - c->bottom_space;
+
+ if (clipX1 < clipX2 && clipY1 < clipY2)
+ set_picture_clip (xdisplay, dst, d_width, d_height,
+ clipX1, clipY1, clipX2, clipY2);
+
+ set_picture_transform (xdisplay, tmp, 0, shadow_offset_y);
+ XRenderSetPictureFilter (xdisplay, tmp, filter, params, n_params);
+ XRenderComposite (xdisplay,
+ PictOpSrc,
+ src,
+ tmp,
+ dst,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ d_width, d_height);
+
+ set_no_picture_clip (xdisplay, dst);
+
+ XRenderFreePicture (xdisplay, src);
+
+ if (opacity != (1 << 16))
+ {
+ XFixed p[3];
+
+ p[0] = 1 << 16;
+ p[1] = 1 << 16;
+ p[2] = opacity;
+
+ if (clipX1 < clipX2 && clipY1 < clipY2)
+ set_picture_clip (xdisplay, tmp, d_width, d_height,
+ clipX1, clipY1, clipX2, clipY2);
+
+ /* apply opacity */
+ set_picture_transform (xdisplay, dst, 0, 0);
+ XRenderSetPictureFilter (xdisplay, dst, filter, p, 3);
+ XRenderComposite (xdisplay,
+ PictOpSrc,
+ dst,
+ None,
+ tmp,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ d_width, d_height);
+
+ XFreePixmap (xdisplay, d_pixmap);
+ shadow->pixmap = pixmap;
+ }
+ else
+ {
+ XFreePixmap (xdisplay, pixmap);
+ shadow->pixmap = d_pixmap;
+ }
+
+ XRenderFreePicture (xdisplay, tmp);
+ XRenderFreePicture (xdisplay, dst);
+
+ shadow->picture = XRenderCreatePicture (xdisplay, shadow->pixmap,
+ format, 0, NULL);
+
+ shadow->width = d_width;
+ shadow->height = d_height;
+
+ free (params);
+
+ return shadow;
+}
+
+void
+decor_shadow_destroy (Display *xdisplay,
+ decor_shadow_t *shadow)
+{
+ shadow->ref_count--;
+ if (shadow->ref_count)
+ return;
+
+ if (shadow->picture)
+ XRenderFreePicture (xdisplay, shadow->picture);
+
+ if (shadow->pixmap)
+ XFreePixmap (xdisplay, shadow->pixmap);
+
+ free (shadow);
+}
+
+void
+decor_shadow_reference (decor_shadow_t *shadow)
+{
+ shadow->ref_count++;
+}
+
+void
+decor_draw_simple (Display *xdisplay,
+ Pixmap pixmap,
+ Picture picture,
+ int width,
+ int height,
+ decor_context_t *c,
+ void *closure)
+{
+ static XRenderColor clear = { 0x0000, 0x0000, 0x0000, 0x0000 };
+ static XRenderColor white = { 0xffff, 0xffff, 0xffff, 0xffff };
+
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &clear,
+ 0,
+ 0,
+ width,
+ height);
+ XRenderFillRectangle (xdisplay, PictOpSrc, picture, &white,
+ c->left_space - c->extents.left,
+ c->top_space - c->extents.top,
+ width - c->left_space - c->right_space +
+ c->extents.left + c->extents.right,
+ height - c->top_space - c->bottom_space +
+ c->extents.top + c->extents.bottom);
+}
+
+void
+decor_get_default_layout (decor_context_t *c,
+ int width,
+ int height,
+ decor_layout_t *layout)
+{
+ width = MAX (width, c->left_corner_space + c->right_corner_space);
+ height = MAX (height, c->top_corner_space + c->bottom_corner_space);
+
+ width += c->left_space + c->right_space;
+
+ layout->top.x1 = 0;
+ layout->top.y1 = 0;
+ layout->top.x2 = width;
+ layout->top.y2 = c->top_space;
+ layout->top.pad = 0;
+
+ layout->left.x1 = 0;
+ layout->left.y1 = c->top_space;
+ layout->left.x2 = c->left_space;
+ layout->left.y2 = c->top_space + height;
+ layout->left.pad = 0;
+
+ layout->right.x1 = width - c->right_space;
+ layout->right.y1 = c->top_space;
+ layout->right.x2 = width;
+ layout->right.y2 = c->top_space + height;
+ layout->right.pad = 0;
+
+ layout->bottom.x1 = 0;
+ layout->bottom.y1 = height + c->top_space;
+ layout->bottom.x2 = width;
+ layout->bottom.y2 = height + c->top_space + c->bottom_space;
+ layout->bottom.pad = 0;
+
+ layout->width = width;
+ layout->height = height + c->top_space + c->bottom_space;
+
+ layout->rotation = 0;
+}
+
+void
+decor_get_best_layout (decor_context_t *c,
+ int width,
+ int height,
+ decor_layout_t *layout)
+{
+ int y;
+
+ /* use default layout when no left and right extents */
+ if (c->extents.left == 0 && c->extents.right == 0)
+ {
+ decor_get_default_layout (c, width, 1, layout);
+ return;
+ }
+
+ width = MAX (width, c->left_corner_space + c->right_corner_space);
+ height = MAX (height, c->top_corner_space + c->bottom_corner_space);
+
+ width += c->left_space + c->right_space;
+
+ if (width >= (height + 2))
+ {
+ int max;
+
+ layout->width = width;
+
+ layout->top.x1 = 0;
+ layout->top.y1 = 0;
+ layout->top.x2 = width;
+ layout->top.y2 = c->top_space;
+
+ y = c->top_space;
+
+ max = MAX (c->left_space, c->right_space);
+ if (max < height)
+ {
+ layout->rotation = 1;
+
+ y += 2;
+
+ layout->top.pad = PAD_BOTTOM;
+ layout->bottom.pad = PAD_TOP;
+ layout->left.pad = PAD_TOP | PAD_BOTTOM | PAD_LEFT | PAD_RIGHT;
+ layout->right.pad = PAD_TOP | PAD_BOTTOM | PAD_LEFT | PAD_RIGHT;
+
+ layout->left.x1 = 1;
+ layout->left.y1 = y;
+ layout->left.x2 = 1 + height;
+ layout->left.y2 = y + c->left_space;
+
+ if ((height + 2) <= (width / 2))
+ {
+ layout->right.x1 = height + 3;
+ layout->right.y1 = y;
+ layout->right.x2 = height + 3 + height;
+ layout->right.y2 = y + c->right_space;
+
+ y += max + 2;
+ }
+ else
+ {
+ y += c->left_space + 2;
+
+ layout->right.x1 = 1;
+ layout->right.y1 = y;
+ layout->right.x2 = 1 + height;
+ layout->right.y2 = y + c->right_space;
+
+ y += c->right_space + 2;
+ }
+ }
+ else
+ {
+ layout->top.pad = 0;
+ layout->bottom.pad = 0;
+ layout->left.pad = 0;
+ layout->right.pad = 0;
+
+ layout->left.x1 = 0;
+ layout->left.y1 = y;
+ layout->left.x2 = c->left_space;
+ layout->left.y2 = y + height;
+
+ layout->right.x1 = width - c->right_space;
+ layout->right.y1 = y;
+ layout->right.x2 = width;
+ layout->right.y2 = y + height;
+
+ y += height;
+ }
+
+ layout->bottom.x1 = 0;
+ layout->bottom.y1 = y;
+ layout->bottom.x2 = width;
+ layout->bottom.y2 = y + c->bottom_space;
+
+ y += c->bottom_space;
+ }
+ else
+ {
+ layout->rotation = 1;
+
+ layout->left.pad = PAD_TOP | PAD_BOTTOM | PAD_LEFT | PAD_RIGHT;
+ layout->right.pad = PAD_TOP | PAD_BOTTOM | PAD_LEFT | PAD_RIGHT;
+
+ layout->top.x1 = 0;
+ layout->top.y1 = 0;
+ layout->top.x2 = width;
+ layout->top.y2 = c->top_space;
+
+ if (((width * 2) + 3) <= (height + 2))
+ {
+ layout->width = height + 2;
+
+ layout->top.pad = PAD_BOTTOM | PAD_RIGHT;
+ layout->bottom.pad = PAD_TOP | PAD_BOTTOM | PAD_RIGHT | PAD_LEFT;
+
+ layout->bottom.x1 = width + 2;
+ layout->bottom.y1 = 1;
+ layout->bottom.x2 = width + 2 + width;
+ layout->bottom.y2 = 1 + c->bottom_space;
+
+ y = MAX (c->top_space, 1 + c->bottom_space) + 2;
+
+ layout->left.x1 = 1;
+ layout->left.y1 = y;
+ layout->left.x2 = 1 + height;
+ layout->left.y2 = y + c->left_space;
+
+ y += c->left_space + 2;
+
+ layout->right.x1 = 1;
+ layout->right.y1 = y;
+ layout->right.x2 = 1 + height;
+ layout->right.y2 = y + c->right_space;
+
+ y += c->right_space;
+ }
+ else
+ {
+ layout->width = height + 2;
+
+ layout->top.pad = PAD_BOTTOM | PAD_RIGHT;
+ layout->bottom.pad = PAD_TOP | PAD_RIGHT;
+
+ y = c->top_space + 2;
+
+ layout->left.x1 = 1;
+ layout->left.y1 = y;
+ layout->left.x2 = 1 + height;
+ layout->left.y2 = y + c->left_space;
+
+ y += c->left_space + 2;
+
+ layout->right.x1 = 1;
+ layout->right.y1 = y;
+ layout->right.x2 = 1 + height;
+ layout->right.y2 = y + c->right_space;
+
+ y += c->right_space + 2;
+
+ layout->bottom.x1 = 0;
+ layout->bottom.y1 = y;
+ layout->bottom.x2 = width;
+ layout->bottom.y2 = y + c->bottom_space;
+
+ y += c->bottom_space;
+ }
+ }
+
+ layout->height = y;
+}
+
+static XTransform xident = {
+ {
+ { 1 << 16, 0, 0 },
+ { 0, 1 << 16, 0 },
+ { 0, 0, 1 << 16 },
+ }
+};
+
+void
+decor_fill_picture_extents_with_shadow (Display *xdisplay,
+ decor_shadow_t *shadow,
+ decor_context_t *context,
+ Picture picture,
+ decor_layout_t *layout)
+{
+ int w, h, left, right, top, bottom, width, height;
+
+ if (!shadow->picture)
+ return;
+
+ width = layout->top.x2 - layout->top.x1;
+ if (layout->rotation)
+ height = layout->left.x2 - layout->left.x1;
+ else
+ height = layout->left.y2 - layout->left.y1;
+
+ height += context->top_space + context->bottom_space;
+
+ left = context->left_space + context->left_corner_space;
+ right = context->right_space + context->right_corner_space;
+ top = context->top_space + context->top_corner_space;
+ bottom = context->bottom_space + context->bottom_corner_space;
+
+ if (width - left - right < 0)
+ {
+ left = width / 2;
+ right = width - left;
+ }
+
+ if (height - top - bottom < 0)
+ {
+ top = height / 2;
+ bottom = height - top;
+ }
+
+ w = width - left - right;
+ h = height - top - bottom;
+
+ /* top left */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->top.x1, layout->top.y1,
+ left, context->top_space);
+
+ /* top right */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ shadow->width - right, 0,
+ 0, 0,
+ layout->top.x2 - right, layout->top.y1,
+ right, context->top_space);
+
+ /* bottom left */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, shadow->height - context->bottom_space,
+ 0, 0,
+ layout->bottom.x1, layout->bottom.y1,
+ left, context->bottom_space);
+
+ /* bottom right */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ shadow->width - right,
+ shadow->height - context->bottom_space,
+ 0, 0,
+ layout->bottom.x2 - right, layout->bottom.y1,
+ right, context->bottom_space);
+
+ if (w > 0)
+ {
+ int sw = shadow->width - left - right;
+ int sx = left;
+
+ if (sw != w)
+ {
+ XTransform t = {
+ {
+ { (sw << 16) / w, 0, left << 16 },
+ { 0, 1 << 16, 0 },
+ { 0, 0, 1 << 16 },
+ }
+ };
+
+ sx = 0;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+ }
+
+ /* top */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ sx, 0,
+ 0, 0,
+ layout->top.x1 + left, layout->top.y1,
+ w, context->top_space);
+
+ /* bottom */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ sx, shadow->height - context->bottom_space,
+ 0, 0,
+ layout->bottom.x1 + left, layout->bottom.y1,
+ w, context->bottom_space);
+
+ if (sw != w)
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &xident);
+ }
+
+ if (layout->rotation)
+ {
+ XTransform t = {
+ {
+ { 0, 1 << 16, 0 },
+ { 1 << 16, 0, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+
+ t.matrix[1][2] = context->top_space << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* left top */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->left.x1,
+ layout->left.y1,
+ top - context->top_space, context->left_space);
+
+ t.matrix[0][2] = (shadow->width - context->right_space) << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* right top */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->right.x1,
+ layout->right.y1,
+ top - context->top_space, context->right_space);
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &xident);
+ }
+ else
+ {
+ /* left top */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, context->top_space,
+ 0, 0,
+ layout->left.x1, layout->left.y1,
+ context->left_space, top - context->top_space);
+
+ /* right top */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ shadow->width - context->right_space,
+ context->top_space,
+ 0, 0,
+ layout->right.x1, layout->right.y1,
+ context->right_space, top - context->top_space);
+ }
+
+ if (layout->rotation)
+ {
+ XTransform t = {
+ {
+ { 0, 1 << 16, 0 },
+ { 1 << 16, 0, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+
+ t.matrix[1][2] = (shadow->height - bottom) << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* left bottom */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->left.x2 - (bottom - context->bottom_space),
+ layout->left.y1,
+ bottom - context->bottom_space, context->left_space);
+
+ t.matrix[0][2] = (shadow->width - context->right_space) << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* right bottom */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->right.x2 - (bottom - context->bottom_space),
+ layout->right.y1,
+ bottom - context->bottom_space, context->right_space);
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &xident);
+ }
+ else
+ {
+ /* left bottom */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, shadow->height - bottom,
+ 0, 0,
+ layout->left.x1,
+ layout->left.y2 - (bottom - context->bottom_space),
+ context->left_space, bottom - context->bottom_space);
+
+ /* right bottom */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ shadow->width - context->right_space,
+ shadow->height - bottom,
+ 0, 0,
+ layout->right.x1,
+ layout->right.y2 - (bottom - context->bottom_space),
+ context->right_space, bottom - context->bottom_space);
+ }
+
+ if (h > 0)
+ {
+ int sh = shadow->height - top - bottom;
+
+ if (layout->rotation)
+ {
+ XTransform t = {
+ {
+ { 0, 1 << 16, 0 },
+ { (sh << 16) / h, 0, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+
+ t.matrix[1][2] = top << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* left */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->left.x1 + (top - context->top_space),
+ layout->left.y1,
+ h, context->left_space);
+
+ t.matrix[0][2] = (shadow->width - context->right_space) << 16;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+
+ /* right */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, 0,
+ 0, 0,
+ layout->right.x1 + (top - context->top_space),
+ layout->right.y1,
+ h, context->right_space);
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &xident);
+
+ }
+ else
+ {
+ int sy = top;
+
+ if (sh != h)
+ {
+ XTransform t = {
+ {
+ { 1 << 16, 0, 0 },
+ { 0, (sh << 16) / h, top << 16 },
+ { 0, 0, 1 << 16 },
+ }
+ };
+
+ sy = 0;
+
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &t);
+ }
+
+ /* left */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ 0, sy,
+ 0, 0,
+ layout->left.x1,
+ layout->left.y1 + (top - context->top_space),
+ context->left_space, h);
+
+ /* right */
+ XRenderComposite (xdisplay, PictOpSrc, shadow->picture, 0, picture,
+ shadow->width - context->right_space, sy,
+ 0, 0,
+ layout->right.x2 - context->right_space,
+ layout->right.y1 + (top - context->top_space),
+ context->right_space, h);
+
+ if (sh != h)
+ XRenderSetPictureTransform (xdisplay, shadow->picture, &xident);
+ }
+ }
+}
+
+static void
+_decor_pad_border_picture (Display *xdisplay,
+ Picture dst,
+ decor_box_t *box)
+{
+ int x1, y1, x2, y2;
+
+ x1 = box->x1;
+ y1 = box->y1;
+ x2 = box->x2;
+ y2 = box->y2;
+
+ if (box->pad & PAD_TOP)
+ {
+ XRenderComposite (xdisplay, PictOpSrc, dst, None, dst,
+ x1, y1,
+ 0, 0,
+ x1, y1 - 1,
+ x2 - x1, 1);
+
+ y1--;
+ }
+
+ if (box->pad & PAD_BOTTOM)
+ {
+ XRenderComposite (xdisplay, PictOpSrc, dst, None, dst,
+ x1, y2 - 1,
+ 0, 0,
+ x1, y2,
+ x2 - x1, 1);
+
+ y2++;
+ }
+
+ if (box->pad & PAD_LEFT)
+ {
+ XRenderComposite (xdisplay, PictOpSrc, dst, None, dst,
+ x1, y1,
+ 0, 0,
+ x1 - 1, y1,
+ 1, y2 - y1);
+ }
+
+ if (box->pad & PAD_RIGHT)
+ {
+ XRenderComposite (xdisplay, PictOpSrc, dst, None, dst,
+ x2 - 1, y1,
+ 0, 0,
+ x2, y1,
+ 1, y2 - y1);
+ }
+}
+
+#ifndef HAVE_XRENDER_0_9_3
+/* XRenderCreateLinearGradient and XRenderCreateRadialGradient used to be
+ * broken. Flushing Xlib's output buffer before calling one of these
+ * functions will avoid this specific issue.
+ */
+static Picture
+XRenderCreateLinearGradient_wrapper (Display *xdisplay,
+ const XLinearGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nStops)
+{
+ XFlush (xdisplay);
+
+ return XRenderCreateLinearGradient (xdisplay, gradient,
+ stops, colors, nStops);
+}
+
+static Picture
+XRenderCreateRadialGradient_wrapper (Display *xdisplay,
+ const XRadialGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nStops)
+{
+ XFlush (xdisplay);
+
+ return XRenderCreateRadialGradient (xdisplay, gradient,
+ stops, colors, nStops);
+}
+
+#define XRenderCreateLinearGradient XRenderCreateLinearGradient_wrapper
+#define XRenderCreateRadialGradient XRenderCreateRadialGradient_wrapper
+#endif
+
+static void
+_decor_blend_horz_border_picture (Display *xdisplay,
+ decor_context_t *context,
+ Picture src,
+ int xSrc,
+ int ySrc,
+ Picture dst,
+ decor_layout_t *layout,
+ Region region,
+ unsigned short alpha,
+ int shade_alpha,
+ int x1,
+ int y1,
+ int x2,
+ int y2,
+ int dy,
+ int direction,
+ int ignore_src_alpha)
+{
+ XRenderColor color[3] = {
+ { 0xffff, 0xffff, 0xffff, 0xffff },
+ { alpha, alpha, alpha, alpha },
+ { 0x0, 0x0, 0x0, 0xffff }
+ };
+ int op = PictOpSrc, gop = PictOpSrc;
+ int left, right;
+
+ left = context->extents.left;
+ right = context->extents.right;
+
+ XOffsetRegion (region, x1, y1);
+ XRenderSetPictureClipRegion (xdisplay, dst, region);
+ XOffsetRegion (region, -x1, -y1);
+
+ if (ignore_src_alpha)
+ {
+ XRenderComposite (xdisplay, PictOpSrc, src, None, dst,
+ xSrc, ySrc,
+ 0, 0,
+ x1, y1,
+ x2 - x1, y2 - y1);
+ XRenderFillRectangle (xdisplay, PictOpAdd, dst, &color[2], x1, y1,
+ x2 - x1, y2 - y1);
+ gop = PictOpInReverse;
+ }
+
+ if (alpha != 0xffff)
+ {
+ op = PictOpIn;
+
+ if (shade_alpha)
+ {
+ static XFixed stop[2] = { 0, 1 << 16 };
+ XTransform transform = {
+ {
+ { 1 << 16, 0, 0 },
+ { 0, 1 << 16, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+ Picture grad;
+ XLinearGradient linear;
+ XRadialGradient radial;
+ XRenderPictureAttributes attrib;
+
+ attrib.repeat = RepeatPad;
+
+ radial.inner.x = 0;
+ radial.inner.y = 0;
+ radial.inner.radius = 0;
+ radial.outer.x = 0;
+ radial.outer.y = 0;
+
+ /* left */
+ radial.outer.radius = left << 16;
+
+ grad = XRenderCreateRadialGradient (xdisplay,
+ &radial,
+ stop,
+ color,
+ 2);
+
+ transform.matrix[1][1] = (left << 16) / dy;
+ transform.matrix[0][2] = -left << 16;
+
+ if (direction < 0)
+ transform.matrix[1][2] = -left << 16;
+
+ XRenderSetPictureTransform (xdisplay, grad, &transform);
+ XRenderChangePicture (xdisplay, grad, CPRepeat, &attrib);
+
+ XRenderComposite (xdisplay, gop, grad, None, dst,
+ 0, 0,
+ 0, 0,
+ x1, y1,
+ left, dy);
+
+ XRenderFreePicture (xdisplay, grad);
+
+ /* middle */
+ linear.p1.x = 0;
+ linear.p2.x = 0;
+
+ if (direction > 0)
+ {
+ linear.p1.y = 0;
+ linear.p2.y = dy << 16;
+ }
+ else
+ {
+ linear.p1.y = dy << 16;
+ linear.p2.y = 0;
+ }
+
+ grad = XRenderCreateLinearGradient (xdisplay,
+ &linear,
+ stop,
+ color,
+ 2);
+
+ XRenderChangePicture (xdisplay, grad, CPRepeat, &attrib);
+
+ XRenderComposite (xdisplay, gop, grad, None, dst,
+ 0, 0,
+ 0, 0,
+ x1 + left, y1,
+ (x2 - x1) - left - right, dy);
+
+ XRenderFreePicture (xdisplay, grad);
+
+ /* right */
+ radial.outer.radius = right << 16;
+
+ grad = XRenderCreateRadialGradient (xdisplay,
+ &radial,
+ stop,
+ color,
+ 2);
+
+ transform.matrix[1][1] = (right << 16) / dy;
+ transform.matrix[0][2] = 1 << 16;
+
+ if (direction < 0)
+ transform.matrix[1][2] = -right << 16;
+
+ XRenderSetPictureTransform (xdisplay, grad, &transform);
+ XRenderChangePicture (xdisplay, grad, CPRepeat, &attrib);
+
+ XRenderComposite (xdisplay, gop, grad, None, dst,
+ 0, 0,
+ 0, 0,
+ x2 - right, y1,
+ right, dy);
+
+ XRenderFreePicture (xdisplay, grad);
+ }
+ else
+ {
+ XRenderFillRectangle (xdisplay, gop, dst, &color[1],
+ x1, y1, x2 - x1, y2 - y1);
+ }
+ }
+
+ if (!ignore_src_alpha)
+ XRenderComposite (xdisplay, op, src, None, dst,
+ xSrc, ySrc,
+ 0, 0,
+ x1, y1,
+ x2 - x1, y2 - y1);
+
+ set_no_picture_clip (xdisplay, dst);
+}
+
+static void
+_decor_blend_vert_border_picture (Display *xdisplay,
+ decor_context_t *context,
+ Picture src,
+ int xSrc,
+ int ySrc,
+ Picture dst,
+ decor_layout_t *layout,
+ Region region,
+ unsigned short alpha,
+ int shade_alpha,
+ int x1,
+ int y1,
+ int x2,
+ int y2,
+ int direction,
+ int ignore_src_alpha)
+{
+ XRenderColor color[3] = {
+ { 0xffff, 0xffff, 0xffff, 0xffff },
+ { alpha, alpha, alpha, alpha },
+ { 0x0, 0x0, 0x0, 0xffff }
+ };
+ int op = PictOpSrc, gop = PictOpSrc;
+
+ if (layout->rotation)
+ {
+ Region rotated_region;
+ XRectangle rect;
+ BoxPtr pBox = region->rects;
+ int nBox = region->numRects;
+
+ rotated_region = XCreateRegion ();
+
+ while (nBox--)
+ {
+ rect.x = x1 + pBox->y1;
+ rect.y = y1 + pBox->x1;
+ rect.width = pBox->y2 - pBox->y1;
+ rect.height = pBox->x2 - pBox->x1;
+
+ XUnionRectWithRegion (&rect, rotated_region, rotated_region);
+
+ pBox++;
+ }
+
+ XRenderSetPictureClipRegion (xdisplay, dst, rotated_region);
+ XDestroyRegion (rotated_region);
+ }
+ else
+ {
+ XOffsetRegion (region, x1, y1);
+ XRenderSetPictureClipRegion (xdisplay, dst, region);
+ XOffsetRegion (region, -x1, -y1);
+ }
+
+ if (ignore_src_alpha)
+ {
+ if (layout->rotation)
+ {
+ XTransform t = {
+ {
+ { 0, 1 << 16, 0 },
+ { 1 << 16, 0, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+
+ t.matrix[0][2] = xSrc << 16;
+ t.matrix[1][2] = ySrc << 16;
+
+ XRenderSetPictureTransform (xdisplay, src, &t);
+
+ XRenderComposite (xdisplay, PictOpSrc, src, None, dst,
+ 0, 0,
+ 0, 0,
+ x1, y1, x2 - x1, y2 - y1);
+ XRenderFillRectangle (xdisplay, PictOpAdd, dst, &color[2], x1, y1,
+ x2 - x1, y2 - y1);
+
+ XRenderSetPictureTransform (xdisplay, src, &xident);
+ }
+ else
+ {
+ XRenderComposite (xdisplay, PictOpSrc, src, None, dst,
+ xSrc, ySrc,
+ 0, 0,
+ x1, y1, x2 - x1, y2 - y1);
+ XRenderFillRectangle (xdisplay, PictOpAdd, dst, &color[2], x1, y1,
+ x2 - x1, y2 - y1);
+ }
+ gop = PictOpInReverse;
+ }
+
+ if (alpha != 0xffff)
+ {
+ op = PictOpIn;
+
+ if (shade_alpha)
+ {
+ static XFixed stop[2] = { 0, 1 << 16 };
+ Picture grad;
+ XLinearGradient linear;
+ XRenderPictureAttributes attrib;
+
+ attrib.repeat = RepeatPad;
+
+ if (layout->rotation)
+ {
+ linear.p1.x = 0;
+ linear.p2.x = 0;
+
+ if (direction < 0)
+ {
+ linear.p1.y = 0;
+ linear.p2.y = (y2 - y1) << 16;
+ }
+ else
+ {
+ linear.p1.y = (y2 - y1) << 16;
+ linear.p2.y = 0 << 16;
+ }
+ }
+ else
+ {
+ linear.p1.y = 0;
+ linear.p2.y = 0;
+
+ if (direction < 0)
+ {
+ linear.p1.x = 0;
+ linear.p2.x = (x2 - x1) << 16;
+ }
+ else
+ {
+ linear.p1.x = (x2 - x1) << 16;
+ linear.p2.x = 0;
+ }
+ }
+
+ grad = XRenderCreateLinearGradient (xdisplay,
+ &linear,
+ stop,
+ color,
+ 2);
+
+ XRenderChangePicture (xdisplay, grad, CPRepeat, &attrib);
+
+ XRenderComposite (xdisplay, gop, grad, None, dst,
+ 0, 0,
+ 0, 0,
+ x1, y1,
+ x2 - x1, y2 - y1);
+
+ XRenderFreePicture (xdisplay, grad);
+ }
+ else
+ {
+ XRenderFillRectangle (xdisplay, gop, dst, &color[1],
+ x1, y1, x2 - x1, y2 - y1);
+ }
+ }
+
+ if (!ignore_src_alpha)
+ {
+ if (layout->rotation)
+ {
+ XTransform t = {
+ {
+ { 0, 1 << 16, 0 },
+ { 1 << 16, 0, 0 },
+ { 0, 0, 1 << 16 }
+ }
+ };
+
+ t.matrix[0][2] = xSrc << 16;
+ t.matrix[1][2] = ySrc << 16;
+
+ XRenderSetPictureTransform (xdisplay, src, &t);
+
+ XRenderComposite (xdisplay, op, src, None, dst,
+ 0, 0,
+ 0, 0,
+ x1, y1, x2 - x1, y2 - y1);
+
+ XRenderSetPictureTransform (xdisplay, src, &xident);
+ }
+ else
+ {
+ XRenderComposite (xdisplay, op, src, None, dst,
+ xSrc, ySrc,
+ 0, 0,
+ x1, y1, x2 - x1, y2 - y1);
+ }
+ }
+
+ set_no_picture_clip (xdisplay, dst);
+}
+
+void
+decor_blend_border_picture (Display *xdisplay,
+ decor_context_t *context,
+ Picture src,
+ int xSrc,
+ int ySrc,
+ Picture dst,
+ decor_layout_t *layout,
+ unsigned int border,
+ Region region,
+ unsigned short alpha,
+ int shade_alpha,
+ int ignore_src_alpha)
+{
+ int left, right, bottom, top;
+ int x1, y1, x2, y2;
+
+ left = context->extents.left;
+ right = context->extents.right;
+ top = context->extents.top;
+ bottom = context->extents.bottom;
+
+ switch (border)
+ {
+ case BORDER_TOP:
+ x1 = layout->top.x1 + context->left_space - left;
+ y1 = layout->top.y1 + context->top_space - top;
+ x2 = layout->top.x2 - context->right_space + right;
+ y2 = layout->top.y2;
+
+ _decor_blend_horz_border_picture (xdisplay,
+ context,
+ src,
+ xSrc,
+ ySrc,
+ dst,
+ layout,
+ region,
+ alpha,
+ shade_alpha,
+ x1,
+ y1,
+ x2,
+ y2,
+ top,
+ -1,
+ ignore_src_alpha);
+
+ _decor_pad_border_picture (xdisplay, dst, &layout->top);
+ break;
+ case BORDER_BOTTOM:
+ x1 = layout->bottom.x1 + context->left_space - left;
+ y1 = layout->bottom.y1;
+ x2 = layout->bottom.x2 - context->right_space + right;
+ y2 = layout->bottom.y1 + bottom;
+
+ _decor_blend_horz_border_picture (xdisplay,
+ context,
+ src,
+ xSrc,
+ ySrc,
+ dst,
+ layout,
+ region,
+ alpha,
+ shade_alpha,
+ x1,
+ y1,
+ x2,
+ y2,
+ bottom,
+ 1,
+ ignore_src_alpha);
+
+ _decor_pad_border_picture (xdisplay, dst, &layout->bottom);
+ break;
+ case BORDER_LEFT:
+ x1 = layout->left.x1;
+ y1 = layout->left.y1;
+ x2 = layout->left.x2;
+ y2 = layout->left.y2;
+
+ if (layout->rotation)
+ y1 += context->left_space - context->extents.left;
+ else
+ x1 += context->left_space - context->extents.left;
+
+ _decor_blend_vert_border_picture (xdisplay,
+ context,
+ src,
+ xSrc,
+ ySrc,
+ dst,
+ layout,
+ region,
+ alpha,
+ shade_alpha,
+ x1,
+ y1,
+ x2,
+ y2,
+ 1,
+ ignore_src_alpha);
+
+ _decor_pad_border_picture (xdisplay, dst, &layout->left);
+ break;
+ case BORDER_RIGHT:
+ x1 = layout->right.x1;
+ y1 = layout->right.y1;
+ x2 = layout->right.x2;
+ y2 = layout->right.y2;
+
+ if (layout->rotation)
+ y2 -= context->right_space - context->extents.right;
+ else
+ x2 -= context->right_space - context->extents.right;
+
+ _decor_blend_vert_border_picture (xdisplay,
+ context,
+ src,
+ xSrc,
+ ySrc,
+ dst,
+ layout,
+ region,
+ alpha,
+ shade_alpha,
+ x1,
+ y1,
+ x2,
+ y2,
+ -1,
+ ignore_src_alpha);
+
+ _decor_pad_border_picture (xdisplay, dst, &layout->right);
+ break;
+ default:
+ break;
+ }
+}
+
+int
+decor_acquire_dm_session (Display *xdisplay,
+ int screen,
+ const char *name,
+ int replace_current_dm,
+ Time *timestamp)
+{
+ XEvent event;
+ XSetWindowAttributes attr;
+ Window current_dm_sn_owner, new_dm_sn_owner;
+ Atom dm_sn_atom;
+ Atom manager_atom;
+ Atom dm_name_atom;
+ Atom utf8_string_atom;
+ Time dm_sn_timestamp;
+ char buf[128];
+
+ manager_atom = XInternAtom (xdisplay, "MANAGER", FALSE);
+ dm_name_atom = XInternAtom (xdisplay, "_COMPIZ_DM_NAME", 0);
+
+ utf8_string_atom = XInternAtom (xdisplay, "UTF8_STRING", 0);
+
+ sprintf (buf, "_COMPIZ_DM_S%d", screen);
+ dm_sn_atom = XInternAtom (xdisplay, buf, 0);
+
+ current_dm_sn_owner = XGetSelectionOwner (xdisplay, dm_sn_atom);
+
+ if (current_dm_sn_owner != None)
+ {
+ if (!replace_current_dm)
+ return DECOR_ACQUIRE_STATUS_OTHER_DM_RUNNING;
+
+ XSelectInput (xdisplay, current_dm_sn_owner, StructureNotifyMask);
+ }
+
+ attr.override_redirect = TRUE;
+ attr.event_mask = PropertyChangeMask;
+
+ new_dm_sn_owner =
+ XCreateWindow (xdisplay, XRootWindow (xdisplay, screen),
+ -100, -100, 1, 1, 0,
+ CopyFromParent, CopyFromParent,
+ CopyFromParent,
+ CWOverrideRedirect | CWEventMask,
+ &attr);
+
+ XChangeProperty (xdisplay,
+ new_dm_sn_owner,
+ dm_name_atom,
+ utf8_string_atom, 8,
+ PropModeReplace,
+ (unsigned char *) name,
+ strlen (name));
+
+ XWindowEvent (xdisplay,
+ new_dm_sn_owner,
+ PropertyChangeMask,
+ &event);
+
+ dm_sn_timestamp = event.xproperty.time;
+
+ XSetSelectionOwner (xdisplay, dm_sn_atom, new_dm_sn_owner,
+ dm_sn_timestamp);
+
+ if (XGetSelectionOwner (xdisplay, dm_sn_atom) != new_dm_sn_owner)
+ {
+ XDestroyWindow (xdisplay, new_dm_sn_owner);
+
+ return DECOR_ACQUIRE_STATUS_FAILED;
+ }
+
+ /* Send client message indicating that we are now the DM */
+ event.xclient.type = ClientMessage;
+ event.xclient.window = XRootWindow (xdisplay, screen);
+ event.xclient.message_type = manager_atom;
+ event.xclient.format = 32;
+ event.xclient.data.l[0] = dm_sn_timestamp;
+ event.xclient.data.l[1] = dm_sn_atom;
+ event.xclient.data.l[2] = 0;
+ event.xclient.data.l[3] = 0;
+ event.xclient.data.l[4] = 0;
+
+ XSendEvent (xdisplay, XRootWindow (xdisplay, screen), 0,
+ StructureNotifyMask, &event);
+
+ /* Wait for old decoration manager to go away */
+ if (current_dm_sn_owner != None)
+ {
+ do {
+ XWindowEvent (xdisplay, current_dm_sn_owner,
+ StructureNotifyMask, &event);
+ } while (event.type != DestroyNotify);
+ }
+
+ *timestamp = dm_sn_timestamp;
+
+ return DECOR_ACQUIRE_STATUS_SUCCESS;
+}
+
+void
+decor_set_dm_check_hint (Display *xdisplay,
+ int screen)
+{
+ XSetWindowAttributes attrs;
+ unsigned long data;
+ Window xroot;
+ Atom atom;
+
+ attrs.override_redirect = 1;
+ attrs.event_mask = PropertyChangeMask;
+
+ xroot = RootWindow (xdisplay, screen);
+
+ data = XCreateWindow (xdisplay,
+ xroot,
+ -100, -100, 1, 1,
+ 0,
+ CopyFromParent,
+ CopyFromParent,
+ (Visual *) CopyFromParent,
+ CWOverrideRedirect | CWEventMask,
+ &attrs);
+
+ atom = XInternAtom (xdisplay, DECOR_SUPPORTING_DM_CHECK_ATOM_NAME, 0);
+
+ XChangeProperty (xdisplay, xroot,
+ atom,
+ XA_WINDOW,
+ 32, PropModeReplace, (unsigned char *) &data, 1);
+}
+
+/* from fvwm2, Copyright Matthias Clasen, Dominik Vogt */
+static int
+convert_property (Display *xdisplay,
+ Window w,
+ Atom target,
+ Atom property,
+ Time dm_sn_timestamp)
+{
+
+#define N_TARGETS 4
+
+ Atom conversion_targets[N_TARGETS];
+ long icccm_version[] = { 2, 0 };
+
+ conversion_targets[0] = XInternAtom (xdisplay, "TARGETS", 0);
+ conversion_targets[1] = XInternAtom (xdisplay, "MULTIPLE", 0);
+ conversion_targets[2] = XInternAtom (xdisplay, "TIMESTAMP", 0);
+ conversion_targets[3] = XInternAtom (xdisplay, "VERSION", 0);
+
+ if (target == conversion_targets[0])
+ XChangeProperty (xdisplay, w, property,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) conversion_targets, N_TARGETS);
+ else if (target == conversion_targets[2])
+ XChangeProperty (xdisplay, w, property,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) &dm_sn_timestamp, 1);
+ else if (target == conversion_targets[3])
+ XChangeProperty (xdisplay, w, property,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) icccm_version, 2);
+ else
+ return 0;
+
+ /* Be sure the PropertyNotify has arrived so we
+ * can send SelectionNotify
+ */
+ XSync (xdisplay, 0);
+
+ return 1;
+}
+
+void
+decor_handle_selection_request (Display *xdisplay,
+ XEvent *event,
+ Time timestamp)
+{
+ XSelectionEvent reply;
+ Atom multiple_atom;
+ Atom atom_pair_atom;
+
+ reply.type = SelectionNotify;
+ reply.display = xdisplay;
+ reply.requestor = event->xselectionrequest.requestor;
+ reply.selection = event->xselectionrequest.selection;
+ reply.target = event->xselectionrequest.target;
+ reply.property = None;
+ reply.time = event->xselectionrequest.time;
+
+ multiple_atom = XInternAtom (xdisplay, "MULTIPLE", 0);
+ atom_pair_atom = XInternAtom (xdisplay, "ATOM_PAIR", 0);
+
+ if (event->xselectionrequest.target == multiple_atom)
+ {
+ if (event->xselectionrequest.property != None)
+ {
+ Atom type, *adata;
+ int i, format;
+ unsigned long num, rest;
+ unsigned char *data;
+
+ if (XGetWindowProperty (xdisplay,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.property,
+ 0, 256, FALSE,
+ atom_pair_atom,
+ &type, &format, &num, &rest,
+ &data) != Success)
+ return;
+
+ /* FIXME: to be 100% correct, should deal with rest > 0,
+ * but since we have 4 possible targets, we will hardly ever
+ * meet multiple requests with a length > 8
+ */
+ adata = (Atom *) data;
+ i = 0;
+ while (i < (int) num)
+ {
+ if (!convert_property (xdisplay,
+ event->xselectionrequest.requestor,
+ adata[i], adata[i + 1],
+ timestamp))
+ adata[i + 1] = None;
+
+ i += 2;
+ }
+
+ XChangeProperty (xdisplay,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.property,
+ atom_pair_atom,
+ 32, PropModeReplace, data, num);
+ }
+ }
+ else
+ {
+ if (event->xselectionrequest.property == None)
+ event->xselectionrequest.property = event->xselectionrequest.target;
+
+ if (convert_property (xdisplay,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.target,
+ event->xselectionrequest.property,
+ timestamp))
+ reply.property = event->xselectionrequest.property;
+ }
+
+ XSendEvent (xdisplay,
+ event->xselectionrequest.requestor,
+ FALSE, 0L, (XEvent *) &reply);
+}
+
+int
+decor_handle_selection_clear (Display *xdisplay,
+ XEvent *xevent,
+ int screen)
+{
+ Atom dm_sn_atom;
+ char buf[128];
+
+ sprintf (buf, "_COMPIZ_DM_S%d", screen);
+ dm_sn_atom = XInternAtom (xdisplay, buf, 0);
+
+ if (xevent->xselectionclear.selection == dm_sn_atom)
+ return DECOR_SELECTION_GIVE_UP;
+
+ return DECOR_SELECTION_KEEP;
+}
diff --git a/libdecoration/libdecoration.pc.in b/libdecoration/libdecoration.pc.in
new file mode 100644
index 0000000..239dc72
--- /dev/null
+++ b/libdecoration/libdecoration.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libdecoration
+Description: Window decoration library
+Version: @VERSION@
+
+Requires: @DECORATION_REQUIRES@
+Libs: @DECORATION_LIBS@ -L${libdir} -ldecoration
+Cflags: @DECORATION_CFLAGS@ -I${includedir}/compiz
diff --git a/ltmain.sh b/ltmain.sh
new file mode 100644
index 0000000..2bcb848
--- /dev/null
+++ b/ltmain.sh
@@ -0,0 +1,6956 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.26
+TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ SP2NL='tr \040 \012'
+ NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ SP2NL='tr \100 \n'
+ NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+lt_env=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test \"\${$lt_var+set}\" = set; then
+ save_$lt_var=\$$lt_var
+ lt_env=\"$lt_var=\$$lt_var \$lt_env\"
+ $lt_var=C
+ export $lt_var
+ fi"
+done
+
+if test -n "$lt_env"; then
+ lt_env="env $lt_env"
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+duplicate_deps=no
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $mkdir "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || {
+ $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
+ exit $EXIT_FAILURE
+ }
+ fi
+
+ $echo "X$my_tmpdir" | $Xsed
+}
+
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+ win32_nmres=`eval $NM -f posix -A $1 | \
+ $SED -n -e '1,100{
+ / I /{
+ s,.*,import,
+ p
+ q
+ }
+ }'`
+ case $win32_nmres in
+ import*) win32_libid_type="x86 archive import";;
+ *) win32_libid_type="x86 archive static";;
+ esac
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case "$@ " in
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+ $echo "$modename: specify a tag with \`--tag'" 1>&2
+ exit $EXIT_FAILURE
+# else
+# $echo "$modename: using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+
+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+ my_status=""
+
+ $show "${rm}r $my_gentop"
+ $run ${rm}r "$my_gentop"
+ $show "$mkdir $my_gentop"
+ $run $mkdir "$my_gentop"
+ my_status=$?
+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+ exit $my_status
+ fi
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ extracted_serial=`expr $extracted_serial + 1`
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib_u"
+
+ $show "${rm}r $my_xdir"
+ $run ${rm}r "$my_xdir"
+ $show "$mkdir $my_xdir"
+ $run $mkdir "$my_xdir"
+ exit_status=$?
+ if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
+ exit $exit_status
+ fi
+ case $host in
+ *-darwin*)
+ $show "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ if test -z "$run"; then
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ $show "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+ lipo -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ ${rm}r unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd "$darwin_orig_dir"
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ fi # $run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+ done
+ func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+disable_libs=no
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+ arg="$1"
+ shift
+
+ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ execute_dlfiles)
+ execute_dlfiles="$execute_dlfiles $arg"
+ ;;
+ tag)
+ tagname="$arg"
+ preserve_args="${preserve_args}=$arg"
+
+ # Check whether tagname contains only valid characters
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ $echo "$progname: invalid tag name: $tagname" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $tagname in
+ CC)
+ # Don't test for the "default" C tag, as we know, it's there, but
+ # not specially marked.
+ ;;
+ *)
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+ taglist="$taglist $tagname"
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+ else
+ $echo "$progname: ignoring unknown tag $tagname" 1>&2
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ echo "\
+$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ exit $?
+ ;;
+
+ --config)
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+ done
+ exit $?
+ ;;
+
+ --debug)
+ $echo "$progname: enabling shell trace mode"
+ set -x
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ $echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ $echo "enable shared libraries"
+ else
+ $echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ $echo "enable static libraries"
+ else
+ $echo "disable static libraries"
+ fi
+ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --preserve-dup-deps) duplicate_deps="yes" ;;
+
+ --quiet | --silent)
+ show=:
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --tag)
+ prevopt="--tag"
+ prev=tag
+ preserve_args="$preserve_args --tag"
+ ;;
+ --tag=*)
+ set tag "$optarg" ${1+"$@"}
+ shift
+ prev=tag
+ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+fi
+
+case $disable_libs in
+no)
+ ;;
+shared)
+ build_libtool_libs=no
+ build_old_libs=yes
+ ;;
+static)
+ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+ ;;
+esac
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+ case $nonopt in
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+ for arg
+ do
+ case $arg in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+
+ for arg
+ do
+ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ if test -n "$libobj" ; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ arg_mode=target
+ continue
+ ;;
+
+ -static | -prefer-pic | -prefer-non-pic)
+ later="$later $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ lastarg="$lastarg $arg"
+ done
+ IFS="$save_ifs"
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+ # Add the arguments to base_compile.
+ base_compile="$base_compile $lastarg"
+ continue
+ ;;
+
+ * )
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ case $lastarg in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, and some SunOS ksh mistreat backslash-escaping
+ # in scan sets (worked around with variable expansion),
+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
+ # at all, so we specify them separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ base_compile="$base_compile $lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ $echo "$modename: you must specify an argument for -Xcompile"
+ exit $EXIT_FAILURE
+ ;;
+ target)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *)
+ # Get the name of the library object.
+ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSifmso]'
+ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.ii) xform=ii ;;
+ *.class) xform=class ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.[fF][09]?) xform=[fF][09]. ;;
+ *.for) xform=for ;;
+ *.java) xform=java ;;
+ *.obj) xform=obj ;;
+ *.sx) xform=sx ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ test "X$libobj" != "X$qlibobj" \
+ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir=
+ else
+ xdir=$xdir/
+ fi
+ lobj=${xdir}$objdir/$objname
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+ $echo "$srcfile" > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
+
+ $run $rm "$libobj" "${libobj}T"
+
+ # Create a libtool object file (analogous to a ".la" file),
+ # but don't create it if we're doing a dry run.
+ test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ if test ! -d "${xdir}$objdir"; then
+ $show "$mkdir ${xdir}$objdir"
+ $run $mkdir ${xdir}$objdir
+ exit_status=$?
+ if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
+ exit $exit_status
+ fi
+ fi
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ command="$command -o $lobj"
+ fi
+
+ $run $rm "$lobj" "$output_obj"
+
+ $show "$command"
+ if $run eval $lt_env "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ $show "$mv $output_obj $lobj"
+ if $run $mv $output_obj $lobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the PIC object to the libtool object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ else
+ # No PIC object so indicate it doesn't exist in the libtool
+ # object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$obj" "$output_obj"
+ $show "$command"
+ if $run eval $lt_env "$command"; then :
+ else
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+ else
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+ fi
+
+ $run $mv "${libobj}T" "${libobj}"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+ link | relink)
+ modename="$modename: link"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args="$nonopt"
+ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ notinst_path= # paths that contain not-installed libtool libraries
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+ single_module="${wl}-single_module"
+
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -all-static | -static | -static-libtool-libs)
+ case $arg in
+ -all-static)
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ -static)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=built
+ ;;
+ -static-libtool-libs)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ esac
+ build_libtool_libs=no
+ build_old_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+ ;;
+ *) qarg=$arg ;;
+ esac
+ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat $save_arg`
+ do
+# moreargs="$moreargs $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ done
+ else
+ $echo "$modename: link input file \`$save_arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ xcompiler)
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
+ prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
+ continue
+ ;;
+ xcclinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ darwin_framework|darwin_framework_skip)
+ test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ prev=
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: more than one -exported-symbols argument is not allowed"
+ exit $EXIT_FAILURE
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework|-arch|-isysroot)
+ case " $CC " in
+ *" ${arg} ${1} "* | *" ${arg} ${1} "*)
+ prev=darwin_framework_skip ;;
+ *) compiler_flags="$compiler_flags $arg"
+ prev=darwin_framework ;;
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ notinst_path="$notinst_path $dir"
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "*) ;;
+ *)
+ deplibs="$deplibs -L$dir"
+ lib_search_path="$lib_search_path $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$testbindir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ deplibs="$deplibs -framework System"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ test "X$arg" = "X-lc" && continue
+ ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ -model)
+ compile_command="$compile_command $arg"
+ compiler_flags="$compiler_flags $arg"
+ finalize_command="$finalize_command $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -multi_module)
+ single_module="${wl}-multi_module"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+ # +DA*, +DD* enable 64-bit mode on the HP compiler
+ # -q* pass through compiler args for the IBM compiler
+ # -m* pass through architecture-specific compiler args for GCC
+ # -m*, -t[45]*, -txscale* pass through architecture-specific
+ # compiler args for GCC
+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+ # -F/path gives path to uninstalled frameworks, gcc on darwin
+ # @file GCC response files
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ compiler_flags="$compiler_flags $arg"
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # and Darwin in order for the loader to find any dlls it needs.
+ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static | -static-libtool-libs)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $wl$flag"
+ linker_flags="$linker_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.$objext)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs="$deplibs $arg"
+ old_deplibs="$old_deplibs $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles="$dlfiles $arg"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles="$dlprefiles $arg"
+ prev=
+ else
+ deplibs="$deplibs $arg"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done # argument parsing loop
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+ # Create the object directory.
+ if test ! -d "$output_objdir"; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ exit_status=$?
+ if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
+ exit $exit_status
+ fi
+ fi
+
+ # Determine the type of output
+ case $output in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ case $host in
+ *cygwin* | *mingw* | *pw32*)
+ # don't eliminate duplications in $postdeps and $predeps
+ duplicate_compiler_generated_deps=yes
+ ;;
+ *)
+ duplicate_compiler_generated_deps=$duplicate_deps
+ ;;
+ esac
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ libs="$libs $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+ esac
+ pre_post_deps="$pre_post_deps $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+ for pass in $passes; do
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags $deplib"
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+ continue
+ fi
+ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+ if test "$linkmode" = lib; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if (${SED} -e '2q' $lib |
+ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ library_names=
+ old_library=
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ *)
+ $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la) lib="$deplib" ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ if eval $echo \"$deplib\" 2>/dev/null \
+ | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ $echo
+ $echo "*** Warning: Trying to link with static lib archive $deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because the file extensions .$libext of this argument makes me believe"
+ $echo "*** that it is just a static archive that I should not used here."
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the"
+ $echo "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles="$newdlprefiles $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles="$newdlfiles $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ $echo "$modename: \`$lib' is not a convenience library" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ dlprefiles="$dlprefiles $lib $dependency_libs"
+ else
+ newdlfiles="$newdlfiles $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ $echo "$modename: warning: library \`$lib' was moved." 1>&2
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ fi
+ fi # $installed = yes
+ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles="$newdlprefiles $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles="$newdlprefiles $dir/$dlname"
+ else
+ newdlprefiles="$newdlprefiles $dir/$linklib"
+ fi
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { { test "$prefer_static_libs" = no ||
+ test "$prefer_static_libs,$installed" = "built,yes"; } ||
+ test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *" $absdir "*) ;;
+ *) temp_rpath="$temp_rpath $absdir" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test "$use_static_libs" = built && test "$installed" = yes ; then
+ use_static_libs=no
+ fi
+ if test -n "$library_names" &&
+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+ need_relink=yes
+ fi
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on
+ # some systems (darwin)
+ if test "$shouldnotlink" = yes && test "$pass" = link ; then
+ $echo
+ if test "$linkmode" = prog; then
+ $echo "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $echo "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $echo "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+ libname=`eval \\$echo \"$libname_spec\"`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw*)
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ $show "extracting exported symbol list from \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$extract_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ $show "generating import library for \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$old_archive_from_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+ *-*-unixware7*) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a module then we can not link against
+ # it, someone is ignoring the new warnings I added
+ if /usr/bin/file -L $add 2> /dev/null |
+ $EGREP ": [^:]* bundle" >/dev/null ; then
+ $echo "** Warning, lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ $echo
+ $echo "** And there doesn't seem to be a static archive available"
+ $echo "** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes && \
+ test "$hardcode_minus_L" != yes && \
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ $echo
+ $echo "*** Warning: This system can not link to static lib archive $lib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ $echo "*** But as you try to build a module library, libtool will still create "
+ $echo "*** a static module, that should work as long as the dlopening application"
+ $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$deplib" && dir="."
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$absdir" != "$libdir"; then
+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="$absdir"
+ fi
+ depdepl=
+ case $host in
+ *-*-darwin*)
+ # we do not want to link against static libs,
+ # but need to link against shared
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$deplibdir/$depdepl" ; then
+ depdepl="$deplibdir/$depdepl"
+ elif test -f "$path/$depdepl" ; then
+ depdepl="$path/$depdepl"
+ else
+ # Can't find it, oh well...
+ depdepl=
+ fi
+ # do not add paths which are already there
+ case " $newlib_search_path " in
+ *" $path "*) ;;
+ *) newlib_search_path="$newlib_search_path $path";;
+ esac
+ fi
+ path=""
+ ;;
+ *)
+ path="-L$path"
+ ;;
+ esac
+ ;;
+ -l*)
+ case $host in
+ *-*-darwin*)
+ # Again, we only want to link against shared libraries
+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+ for tmp in $newlib_search_path ; do
+ if test -f "$tmp/lib$tmp_libs.dylib" ; then
+ eval depdepl="$tmp/lib$tmp_libs.dylib"
+ break
+ fi
+ done
+ path=""
+ ;;
+ *) continue ;;
+ esac
+ ;;
+ *) continue ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ case " $deplibs " in
+ *" $depdepl "*) ;;
+ *) deplibs="$depdepl $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ tmp_libs="$tmp_libs $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
+ esac
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs="$objs$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+ exit $EXIT_FAILURE
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the non-libtool"
+ $echo "*** objects $objs is not portable!"
+ libobjs="$libobjs $objs"
+ fi
+ fi
+
+ if test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test "$#" -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$2"
+ number_minor="$3"
+ number_revision="$4"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ darwin|linux|osf|windows|none)
+ current=`expr $number_major + $number_minor`
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ current=`expr $number_major + $number_minor`
+ age="$number_minor"
+ revision="$number_minor"
+ lt_irix_increment=no
+ ;;
+ esac
+ ;;
+ no)
+ current="$2"
+ revision="$3"
+ age="$4"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ minor_current=`expr $current + 1`
+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ irix | nonstopux)
+ if test "X$lt_irix_increment" = "Xno"; then
+ major=`expr $current - $age`
+ else
+ major=`expr $current - $age + 1`
+ fi
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+ fi
+
+ if test "$mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$echo "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ removelist="$removelist $p"
+ ;;
+ *) ;;
+ esac
+ done
+ if test -n "$removelist"; then
+ $show "${rm}r $removelist"
+ $run ${rm}r $removelist
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ #for path in $notinst_path; do
+ # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+ # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+ # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+ #done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles="$dlfiles $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles="$dlprefiles $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs="$deplibs -framework System"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ deplibs="$deplibs -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name=`expr $i : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which I believe you do not have"
+ $echo "*** because a test_compile did reveal that the linker did not use it for"
+ $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ name=`expr $i : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ $rm conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because a test_compile did reveal that the linker did not use this one"
+ $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning! Library $i is needed by this library but I was not able to"
+ $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** library that it depends on before this library will be fully"
+ $echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name=`expr $a_deplib : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name=`expr $a_deplib : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval $echo \"$potent_lib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+ done
+ fi
+ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
+ | grep . >/dev/null; then
+ $echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ $echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ $echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ $echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ $echo
+ $echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $echo "*** dependencies of module $libname. Therefore, libtool will create"
+ $echo "*** a static module, that should work as long as the dlopening"
+ $echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ $echo "*** The inter-library dependencies that have been dropped here will be"
+ $echo "*** automatically added whenever a program is linked with this library"
+ $echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ $echo
+ $echo "*** Since this library must not contain undefined symbols,"
+ $echo "*** because either the platform does not support them or"
+ $echo "*** it was explicitly requested with -no-undefined,"
+ $echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+ new_libs="$new_libs -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$new_libs $deplib" ;;
+ esac
+ ;;
+ *) new_libs="$new_libs $deplib" ;;
+ esac
+ done
+ deplibs="$new_libs"
+
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath="$dep_rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+ case $archive_cmds in
+ *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
+ *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
+ esac
+ else
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ linknames=
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ if len=`expr "X$cmd" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ $show "using reloadable object file for export list..."
+ skipped_export=:
+ # Break out early, otherwise skipped_export may be
+ # set to false by a later but shorter cmd.
+ break
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ libobjs="$libobjs $func_extract_archives_result"
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags="$linker_flags $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" &&
+ len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise.
+ $echo "creating reloadable object files..."
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ delfiles=
+ last_robj=
+ k=1
+ output=$output_objdir/$output_la-${k}.$objext
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+ if test "X$objlist" = X ||
+ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len"; }; then
+ objlist="$objlist $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ k=`expr $k + 1`
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=$obj
+ len=1
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+ if ${skipped_export-false}; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+ fi
+
+ # Set up a command to remove the reloadable object files
+ # after they are used.
+ i=0
+ while test "$i" -lt "$k"
+ do
+ i=`expr $i + 1`
+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+ done
+
+ $echo "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+
+ # Append the command to remove the reloadable object files
+ # to the just-reset $cmds.
+ eval cmds=\"\$cmds~\$rm $delfiles\"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ fi
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
+ esac
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case $output in
+ *.lo)
+ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec and hope we can get by with
+ # turning comma into space..
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+ else
+ gentop="$output_objdir/${obj}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $run eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ case $host in
+ *darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ if test "$tagname" = CXX ; then
+ compile_command="$compile_command ${wl}-bind_at_load"
+ finalize_command="$finalize_command ${wl}-bind_at_load"
+ fi
+ ;;
+ esac
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+ new_libs="$new_libs -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $compile_deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$new_libs $deplib" ;;
+ esac
+ ;;
+ *) new_libs="$new_libs $deplib" ;;
+ esac
+ done
+ compile_deplibs="$new_libs"
+
+
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$testbindir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $run $rm $export_symbols
+ $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* )
+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ else
+ $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* )
+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+ $run eval '$echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+ case $host in
+ *cygwin* | *mingw* )
+ $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+ runtime relocations are performed -- see ld's documentation
+ on pseudo-relocs */
+struct {
+"
+ ;;
+ * )
+ $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+ ;;
+ esac
+
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ case $host in
+ *cygwin* | *mingw* )
+ if test -f "$output_objdir/${outputname}.def" ; then
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ else
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ fi
+ ;;
+ * )
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ ;;
+ esac
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+ fi
+
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ exit_status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $exit_status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $run $rm $output
+ # Link the executable and exit
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+ case $progpath in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ output_name=`basename $output`
+ output_path=`dirname $output`
+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
+ cwrapper="$output_path/$output_name.exe"
+ $rm $cwrappersource $cwrapper
+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+
+ Currently, it simply execs the wrapper *script* "/bin/sh $output",
+ but could eventually absorb all of the scripts functionality and
+ exec $objdir/$outputname directly.
+*/
+EOF
+ cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+# define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+# define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+/* -DDEBUG is fairly common in CFLAGS. */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int check_executable(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ DEBUG("(main) argv[0] : %s\n",argv[0]);
+ DEBUG("(main) program_name : %s\n",program_name);
+ newargz = XMALLOC(char *, argc+2);
+EOF
+
+ cat >> $cwrappersource <<EOF
+ newargz[0] = (char *) xstrdup("$SHELL");
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+ newargz[1] = find_executable(argv[0]);
+ if (newargz[1] == NULL)
+ lt_fatal("Couldn't find %s", argv[0]);
+ DEBUG("(main) found exe at : %s\n",newargz[1]);
+ /* we know the script has the same name, without the .exe */
+ /* so make sure newargz[1] doesn't end in .exe */
+ strendzap(newargz[1],".exe");
+ for (i = 1; i < argc; i++)
+ newargz[i+1] = xstrdup(argv[i]);
+ newargz[argc+1] = NULL;
+
+ for (i=0; i<argc+1; i++)
+ {
+ DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
+ ;
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat >> $cwrappersource <<EOF
+ execv("$SHELL",(char const **)newargz);
+EOF
+ ;;
+ *)
+ cat >> $cwrappersource <<EOF
+ execv("$SHELL",newargz);
+EOF
+ ;;
+ esac
+
+ cat >> $cwrappersource <<"EOF"
+ return 127;
+}
+
+void *
+xmalloc (size_t num)
+{
+ void * p = (void *) malloc (num);
+ if (!p)
+ lt_fatal ("Memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable(const char * path)
+{
+ struct stat st;
+
+ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0) &&
+ (
+ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+ ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+ ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+ ((st.st_mode & S_IXUSR) == S_IXUSR))
+ )
+ return 1;
+ else
+ return 0;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise */
+char *
+find_executable (const char* wrapper)
+{
+ int has_slash = 0;
+ const char* p;
+ const char* p_next;
+ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
+ int tmp_len;
+ char* concat_name;
+
+ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+
+ /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable(concat_name))
+ return concat_name;
+ XFREE(concat_name);
+ }
+ else
+ {
+#endif
+ if (IS_DIR_SEPARATOR (wrapper[0]))
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable(concat_name))
+ return concat_name;
+ XFREE(concat_name);
+ }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ }
+#endif
+
+ for (p = wrapper; *p; p++)
+ if (*p == '/')
+ {
+ has_slash = 1;
+ break;
+ }
+ if (!has_slash)
+ {
+ /* no slashes; search PATH */
+ const char* path = getenv ("PATH");
+ if (path != NULL)
+ {
+ for (p = path; *p; p = p_next)
+ {
+ const char* q;
+ size_t p_len;
+ for (q = p; *q; q++)
+ if (IS_PATH_SEPARATOR(*q))
+ break;
+ p_len = q - p;
+ p_next = (*q == '\0' ? q : q + 1);
+ if (p_len == 0)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal ("getcwd failed");
+ tmp_len = strlen(tmp);
+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+ }
+ else
+ {
+ concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+ memcpy (concat_name, p, p_len);
+ concat_name[p_len] = '/';
+ strcpy (concat_name + p_len + 1, wrapper);
+ }
+ if (check_executable(concat_name))
+ return concat_name;
+ XFREE(concat_name);
+ }
+ }
+ /* not found in PATH; assume curdir */
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal ("getcwd failed");
+ tmp_len = strlen(tmp);
+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+
+ if (check_executable(concat_name))
+ return concat_name;
+ XFREE(concat_name);
+ return NULL;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert(str != NULL);
+ assert(pat != NULL);
+
+ len = strlen(str);
+ patlen = strlen(pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp(str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+ const char * message, va_list ap)
+{
+ fprintf (stderr, "%s: %s: ", program_name, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+ va_end (ap);
+}
+EOF
+ # we should really use a build-platform specific compiler
+ # here, but OTOH, the wrappers (shell script and this C one)
+ # are only useful if you want to execute the "real" binary.
+ # Since the "real" binary is built for $host, then this
+ # wrapper might as well be built for $host, too.
+ $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+ ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $echo >> $output "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ $echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ $echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \$*\"
+ exit $EXIT_FAILURE
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $addlibs
+ oldobjs="$oldobjs $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ exit_status=$?
+ if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
+ exit $exit_status
+ fi
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
+ eval cmds=\"$old_archive_cmds\"
+
+ if len=`expr "X$cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ $echo "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ for obj in $save_oldobjs
+ do
+ oldobjs="$objlist $obj"
+ objlist="$objlist $obj"
+ eval test_cmds=\"$old_archive_cmds\"
+ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ eval cmd=\"$cmd\"
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdependency_libs="$newdependency_libs $libdir/$name"
+ ;;
+ *) newdependency_libs="$newdependency_libs $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+ for lib in $dlfiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlfiles="$newdlfiles $libdir/$name"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlprefiles="$newdlprefiles $libdir/$name"
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlfiles="$newdlfiles $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlprefiles="$newdlprefiles $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
+ # place dlname in correct position for cygwin
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $echo >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ $echo "X$nonopt" | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f)
+ case " $install_prog " in
+ *[\\\ /]cp\ *) ;;
+ *) prev=$arg ;;
+ esac
+ ;;
+ -g | -m | -o) prev=$arg ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*)
+ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest=$arg
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test "$#" -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+ old_library=
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ if test "$inst_prefix_dir" = "$destdir"; then
+ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
+ else
+ relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
+ fi
+
+ $echo "$modename: warning: relinking \`$file'" 1>&2
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$srcname $destdir/$realname"
+ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$striplib $destdir/$realname"
+ $run eval "$striplib $destdir/$realname" || exit $?
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ # Try `ln -sf' first, because the `ln' binary might depend on
+ # the symlink we replace! Solaris /bin/ln does not understand -f,
+ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+ $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ cmds=$postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin*|*mingw*)
+ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+ notinst_deplibs=
+ relink_command=
+
+ # Note that it is not necessary on cygwin/mingw to append a dot to
+ # foo even if both foo and FILE.exe exist: automatic-append-.exe
+ # behavior happens only for exec(3), not for open(2)! Also, sourcing
+ # `FILE.' does not work on cygwin managed mounts.
+ #
+ # If there is no directory component, then add one.
+ case $wrapper in
+ */* | *\\*) . ${wrapper} ;;
+ *) . ./${wrapper} ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$notinst_deplibs"; then
+ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ # Note that it is not necessary on cygwin/mingw to append a dot to
+ # foo even if both foo and FILE.exe exist: automatic-append-.exe
+ # behavior happens only for exec(3), not for open(2)! Also, sourcing
+ # `FILE.' does not work on cygwin managed mounts.
+ #
+ # If there is no directory component, then add one.
+ case $wrapper in
+ */* | *\\*) . ${wrapper} ;;
+ *) . ./${wrapper} ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir=`func_mktempdir`
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+ ;;
+ esac
+ ;;
+ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ $show "$old_striplib $oldlib"
+ $run eval "$old_striplib $oldlib" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ cmds=$old_postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ cmds=$finish_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit $EXIT_SUCCESS
+
+ $echo "X----------------------------------------------------------------------" | $Xsed
+ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $echo " $libdir"
+ done
+ $echo
+ $echo "If you ever happen to want to link against installed libraries"
+ $echo "in a given directory, LIBDIR, you must either use libtool, and"
+ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ $echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ $echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ $echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ $echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ $echo
+ $echo "See any operating system documentation about shared libraries for"
+ $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ $echo "X----------------------------------------------------------------------" | $Xsed
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit $EXIT_FAILURE
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ dir=
+ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ do
+ eval "if test \"\${save_$lt_var+set}\" = set; then
+ $lt_var=\$save_$lt_var; export $lt_var
+ fi"
+ done
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool clean and uninstall mode
+ clean | uninstall)
+ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ rmdirs=
+
+ origobjdir="$objdir"
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$file"; then
+ dir=.
+ objdir="$origobjdir"
+ else
+ objdir="$dir/$origobjdir"
+ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ test "$mode" = uninstall && objdir="$dir"
+
+ # Remember objdir for removal later, being careful to avoid duplicates
+ if test "$mode" = clean; then
+ case " $rmdirs " in
+ *" $objdir "*) ;;
+ *) rmdirs="$rmdirs $objdir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if (test -L "$file") >/dev/null 2>&1 \
+ || (test -h "$file") >/dev/null 2>&1 \
+ || test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+ case "$mode" in
+ clean)
+ case " $library_names " in
+ # " " in the beginning catches empty $dlname
+ *" $dlname "*) ;;
+ *) rmfiles="$rmfiles $objdir/$dlname" ;;
+ esac
+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ cmds=$postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ cmds=$old_postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ ;;
+ esac
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles || exit_status=1
+ done
+ objdir="$origobjdir"
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ $show "rmdir $dir"
+ $run rmdir $dir >/dev/null 2>&1
+ fi
+ done
+
+ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ --version print version information
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+ exit $EXIT_SUCCESS
+ ;;
+
+clean)
+ $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+disable_libs=shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+disable_libs=static
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/metadata/Makefile.am b/metadata/Makefile.am
new file mode 100644
index 0000000..af5c9ce
--- /dev/null
+++ b/metadata/Makefile.am
@@ -0,0 +1,135 @@
+xmldir = $(metadatadir)
+xml_in_files = \
+ core.xml.in \
+ annotate.xml.in \
+ blur.xml.in \
+ clone.xml.in \
+ commands.xml.in \
+ cube.xml.in \
+ dbus.xml.in \
+ decoration.xml.in \
+ fade.xml.in \
+ fs.xml.in \
+ gconf.xml.in \
+ glib.xml.in \
+ gnomecompat.xml.in \
+ ini.xml.in \
+ inotify.xml.in \
+ kconfig.xml.in \
+ minimize.xml.in \
+ move.xml.in \
+ obs.xml.in \
+ place.xml.in \
+ png.xml.in \
+ regex.xml.in \
+ resize.xml.in \
+ rotate.xml.in \
+ scale.xml.in \
+ screenshot.xml.in \
+ svg.xml.in \
+ switcher.xml.in \
+ video.xml.in \
+ water.xml.in \
+ wobbly.xml.in \
+ zoom.xml.in
+xml_files = $(xml_in_files:.xml.in=.xml)
+xml_DATA = $(xml_files)
+
+core.xml.in: core.xml.in.in Makefile
+ plugins=$(default_plugins); \
+ if [ -z $$plugins ]; then plugins="core"; fi; \
+ plugin_values=`echo $$plugins | sed 's/\([a-zA-Z0-9]*\)/<value>\1<\/value>/g' | tr ',' '\n' | sed 's/^/\t\t /g'`; \
+ $(AWK) -v aa="$$plugin_values" '{gsub("\t\t <default_plugins/>", aa); print }' <$(srcdir)/core.xml.in.in >core.xml.in
+
+@INTLTOOL_XML_RULE@
+
+if USE_GCONF
+schemadir = $(GCONF_SCHEMA_FILE_DIR)
+schema_files = $(patsubst %.xml.in,compiz-%.schemas,$(xml_in_files))
+schema_DATA = $(schema_files)
+
+%.schemas: $(xml_files)
+ xsltproc -o $@ --param defaultPlugins "'$(default_plugins)'" \
+ $(srcdir)/schemas.xslt $(subst compiz-,,$*).xml
+
+schemas_stylesheets = schemas.xslt
+
+endif
+
+if USE_KCONFIG
+kde_kcfgdir = $(DESTDIR)$(KDE_KCFG_DIR)
+kde_kcfg_files = $(patsubst %.xml.in,compiz-%.kcfg,$(xml_in_files))
+
+kde_kcfg_stylesheets = kcfg.xslt
+
+%.kcfg: $(xml_files)
+ xsltproc -o $@ $(srcdir)/kcfg.xslt $(subst compiz-,,$*).xml;
+
+kde_configdir = $(DESTDIR)$(KDE_KCONFIG_DIR)
+kde_config_files = compizrc
+
+compizrc: $(kde_kcfg_files)
+ xsltproc --stringparam screen 0 $(srcdir)/kconfig.xslt \
+ $(kde_kcfg_files) > $@;
+
+kde_config_stylesheets = kconfig.xslt
+
+endif
+
+noinst_DATA = \
+ $(kde_kcfg_files) \
+ $(kde_config_files)
+
+install-data-local:
+if USE_GCONF
+if GCONF_SCHEMAS_INSTALL
+ if test -z "$(DESTDIR)" ; then \
+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schema_DATA); \
+ fi
+endif
+endif
+if USE_KCONFIG
+ if mkdir -p $(kde_kcfgdir) && test -w $(kde_kcfgdir); then ( \
+ $(INSTALL) -m 644 $(kde_kcfg_files) $(kde_kcfgdir) \
+ ); \
+ fi
+ if mkdir -p $(kde_configdir) && test -w $(kde_configdir); then ( \
+ $(INSTALL) -m 644 $(kde_config_files) $(kde_configdir) \
+ ); \
+ fi
+endif
+
+uninstall-local:
+if USE_KCONFIG
+ if test -w $(kde_kcfgdir); then ( \
+ for file in $(kde_kcfg_files); do \
+ rm -f $(kde_kcfgdir)/$$file; \
+ done \
+ ); \
+ fi
+ if test -w $(kde_configdir); then ( \
+ for file in $(kde_config_files); do \
+ rm -f $(kde_configdir)/$$file; \
+ done \
+ ); \
+ fi
+endif
+
+xsltdir = $(stylesheetdir)
+xslt_files = \
+ $(schemas_stylesheets) \
+ $(kde_kcfg_stylesheets) \
+ $(kde_config_stylesheets)
+xslt_DATA = $(xslt_files)
+
+EXTRA_DIST = \
+ $(xml_in_files) \
+ core.xml.in.in \
+ $(xslt_files)
+
+DISTCLEANFILES = \
+ $(xml_files) \
+ core.xml.in \
+ $(schema_files) \
+ $(kde_kcfg_files) \
+ $(kde_config_files)
diff --git a/metadata/Makefile.in b/metadata/Makefile.in
new file mode 100644
index 0000000..3e2ff1f
--- /dev/null
+++ b/metadata/Makefile.in
@@ -0,0 +1,621 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = metadata
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(schemadir)" "$(DESTDIR)$(xmldir)" \
+ "$(DESTDIR)$(xsltdir)"
+schemaDATA_INSTALL = $(INSTALL_DATA)
+xmlDATA_INSTALL = $(INSTALL_DATA)
+xsltDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(noinst_DATA) $(schema_DATA) $(xml_DATA) $(xslt_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+xmldir = $(metadatadir)
+xml_in_files = \
+ core.xml.in \
+ annotate.xml.in \
+ blur.xml.in \
+ clone.xml.in \
+ commands.xml.in \
+ cube.xml.in \
+ dbus.xml.in \
+ decoration.xml.in \
+ fade.xml.in \
+ fs.xml.in \
+ gconf.xml.in \
+ glib.xml.in \
+ gnomecompat.xml.in \
+ ini.xml.in \
+ inotify.xml.in \
+ kconfig.xml.in \
+ minimize.xml.in \
+ move.xml.in \
+ obs.xml.in \
+ place.xml.in \
+ png.xml.in \
+ regex.xml.in \
+ resize.xml.in \
+ rotate.xml.in \
+ scale.xml.in \
+ screenshot.xml.in \
+ svg.xml.in \
+ switcher.xml.in \
+ video.xml.in \
+ water.xml.in \
+ wobbly.xml.in \
+ zoom.xml.in
+
+xml_files = $(xml_in_files:.xml.in=.xml)
+xml_DATA = $(xml_files)
+@USE_GCONF_TRUE@schemadir = $(GCONF_SCHEMA_FILE_DIR)
+@USE_GCONF_TRUE@schema_files = $(patsubst %.xml.in,compiz-%.schemas,$(xml_in_files))
+@USE_GCONF_TRUE@schema_DATA = $(schema_files)
+@USE_GCONF_TRUE@schemas_stylesheets = schemas.xslt
+@USE_KCONFIG_TRUE@kde_kcfgdir = $(DESTDIR)$(KDE_KCFG_DIR)
+@USE_KCONFIG_TRUE@kde_kcfg_files = $(patsubst %.xml.in,compiz-%.kcfg,$(xml_in_files))
+@USE_KCONFIG_TRUE@kde_kcfg_stylesheets = kcfg.xslt
+@USE_KCONFIG_TRUE@kde_configdir = $(DESTDIR)$(KDE_KCONFIG_DIR)
+@USE_KCONFIG_TRUE@kde_config_files = compizrc
+@USE_KCONFIG_TRUE@kde_config_stylesheets = kconfig.xslt
+noinst_DATA = \
+ $(kde_kcfg_files) \
+ $(kde_config_files)
+
+xsltdir = $(stylesheetdir)
+xslt_files = \
+ $(schemas_stylesheets) \
+ $(kde_kcfg_stylesheets) \
+ $(kde_config_stylesheets)
+
+xslt_DATA = $(xslt_files)
+EXTRA_DIST = \
+ $(xml_in_files) \
+ core.xml.in.in \
+ $(xslt_files)
+
+DISTCLEANFILES = \
+ $(xml_files) \
+ core.xml.in \
+ $(schema_files) \
+ $(kde_kcfg_files) \
+ $(kde_config_files)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu metadata/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu metadata/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-schemaDATA: $(schema_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(schemadir)" || $(MKDIR_P) "$(DESTDIR)$(schemadir)"
+ @list='$(schema_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(schemaDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(schemadir)/$$f'"; \
+ $(schemaDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(schemadir)/$$f"; \
+ done
+
+uninstall-schemaDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(schema_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(schemadir)/$$f'"; \
+ rm -f "$(DESTDIR)$(schemadir)/$$f"; \
+ done
+install-xmlDATA: $(xml_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(xmldir)" || $(MKDIR_P) "$(DESTDIR)$(xmldir)"
+ @list='$(xml_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(xmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xmldir)/$$f'"; \
+ $(xmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xmldir)/$$f"; \
+ done
+
+uninstall-xmlDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(xml_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(xmldir)/$$f'"; \
+ rm -f "$(DESTDIR)$(xmldir)/$$f"; \
+ done
+install-xsltDATA: $(xslt_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(xsltdir)" || $(MKDIR_P) "$(DESTDIR)$(xsltdir)"
+ @list='$(xslt_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(xsltDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltdir)/$$f'"; \
+ $(xsltDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltdir)/$$f"; \
+ done
+
+uninstall-xsltDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(xslt_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(xsltdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(xsltdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(schemadir)" "$(DESTDIR)$(xmldir)" "$(DESTDIR)$(xsltdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-schemaDATA install-xmlDATA \
+ install-xsltDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local uninstall-schemaDATA uninstall-xmlDATA \
+ uninstall-xsltDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-schemaDATA install-strip install-xmlDATA \
+ install-xsltDATA installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-local uninstall-schemaDATA \
+ uninstall-xmlDATA uninstall-xsltDATA
+
+
+core.xml.in: core.xml.in.in Makefile
+ plugins=$(default_plugins); \
+ if [ -z $$plugins ]; then plugins="core"; fi; \
+ plugin_values=`echo $$plugins | sed 's/\([a-zA-Z0-9]*\)/<value>\1<\/value>/g' | tr ',' '\n' | sed 's/^/\t\t /g'`; \
+ $(AWK) -v aa="$$plugin_values" '{gsub("\t\t <default_plugins/>", aa); print }' <$(srcdir)/core.xml.in.in >core.xml.in
+
+@INTLTOOL_XML_RULE@
+
+@USE_GCONF_TRUE@%.schemas: $(xml_files)
+@USE_GCONF_TRUE@ xsltproc -o $@ --param defaultPlugins "'$(default_plugins)'" \
+@USE_GCONF_TRUE@ $(srcdir)/schemas.xslt $(subst compiz-,,$*).xml
+
+@USE_KCONFIG_TRUE@%.kcfg: $(xml_files)
+@USE_KCONFIG_TRUE@ xsltproc -o $@ $(srcdir)/kcfg.xslt $(subst compiz-,,$*).xml;
+
+@USE_KCONFIG_TRUE@compizrc: $(kde_kcfg_files)
+@USE_KCONFIG_TRUE@ xsltproc --stringparam screen 0 $(srcdir)/kconfig.xslt \
+@USE_KCONFIG_TRUE@ $(kde_kcfg_files) > $@;
+
+install-data-local:
+@GCONF_SCHEMAS_INSTALL_TRUE@@USE_GCONF_TRUE@ if test -z "$(DESTDIR)" ; then \
+@GCONF_SCHEMAS_INSTALL_TRUE@@USE_GCONF_TRUE@ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schema_DATA); \
+@GCONF_SCHEMAS_INSTALL_TRUE@@USE_GCONF_TRUE@ fi
+@USE_KCONFIG_TRUE@ if mkdir -p $(kde_kcfgdir) && test -w $(kde_kcfgdir); then ( \
+@USE_KCONFIG_TRUE@ $(INSTALL) -m 644 $(kde_kcfg_files) $(kde_kcfgdir) \
+@USE_KCONFIG_TRUE@ ); \
+@USE_KCONFIG_TRUE@ fi
+@USE_KCONFIG_TRUE@ if mkdir -p $(kde_configdir) && test -w $(kde_configdir); then ( \
+@USE_KCONFIG_TRUE@ $(INSTALL) -m 644 $(kde_config_files) $(kde_configdir) \
+@USE_KCONFIG_TRUE@ ); \
+@USE_KCONFIG_TRUE@ fi
+
+uninstall-local:
+@USE_KCONFIG_TRUE@ if test -w $(kde_kcfgdir); then ( \
+@USE_KCONFIG_TRUE@ for file in $(kde_kcfg_files); do \
+@USE_KCONFIG_TRUE@ rm -f $(kde_kcfgdir)/$$file; \
+@USE_KCONFIG_TRUE@ done \
+@USE_KCONFIG_TRUE@ ); \
+@USE_KCONFIG_TRUE@ fi
+@USE_KCONFIG_TRUE@ if test -w $(kde_configdir); then ( \
+@USE_KCONFIG_TRUE@ for file in $(kde_config_files); do \
+@USE_KCONFIG_TRUE@ rm -f $(kde_configdir)/$$file; \
+@USE_KCONFIG_TRUE@ done \
+@USE_KCONFIG_TRUE@ ); \
+@USE_KCONFIG_TRUE@ fi
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/metadata/annotate.xml.in b/metadata/annotate.xml.in
new file mode 100644
index 0000000..14f837a
--- /dev/null
+++ b/metadata/annotate.xml.in
@@ -0,0 +1,63 @@
+<compiz>
+ <plugin name="annotate">
+ <_short>Annotate</_short>
+ <_long>Annotate plugin</_long>
+ <category>Extras</category>
+ <display>
+ <option name="initiate_button" type="button">
+ <_short>Initiate</_short>
+ <_long>Initiate annotate drawing</_long>
+ <default>&lt;Super&gt;&lt;Alt&gt;Button1</default>
+ </option>
+ <option name="draw" type="action">
+ <_short>Draw</_short>
+ <_long>Draw using tool</_long>
+ <allowed/>
+ </option>
+ <option name="erase_button" type="button">
+ <_short>Initiate erase</_short>
+ <_long>Initiate annotate erasing</_long>
+ <default>&lt;Super&gt;&lt;Alt&gt;Button3</default>
+ </option>
+ <option name="clear_key" type="key">
+ <_short>Clear</_short>
+ <_long>Clear</_long>
+ <default>&lt;Super&gt;&lt;Alt&gt;k</default>
+ </option>
+ <option name="clear_button" type="button">
+ <_short>Clear</_short>
+ <_long>Clear</_long>
+ </option>
+ <option name="fill_color" type="color">
+ <_short>Annotate Fill Color</_short>
+ <_long>Fill color for annotations</_long>
+ <default>
+ <red>0xffff</red>
+ </default>
+ </option>
+ <option name="stroke_color" type="color">
+ <_short>Annotate Stroke Color</_short>
+ <_long>Stroke color for annotations</_long>
+ <default>
+ <green>0xffff</green>
+ </default>
+ </option>
+ <option name="line_width" type="float">
+ <_short>Line width</_short>
+ <_long>Line width for annotations</_long>
+ <default>3.0</default>
+ <min>0.1</min>
+ <max>100.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="stroke_width" type="float">
+ <_short>Stroke width</_short>
+ <_long>Stroke width for annotations</_long>
+ <default>1.0</default>
+ <min>0.1</min>
+ <max>20.0</max>
+ <precision>0.1</precision>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/blur.xml.in b/metadata/blur.xml.in
new file mode 100644
index 0000000..63a48bd
--- /dev/null
+++ b/metadata/blur.xml.in
@@ -0,0 +1,111 @@
+<compiz>
+ <plugin name="blur">
+ <_short>Blur Windows</_short>
+ <_long>Blur windows</_long>
+ <category>Effects</category>
+ <feature>blur</feature>
+ <deps>
+ <relation type="before">
+ <plugin>video</plugin>
+ </relation>
+ <relation type="after">
+ <plugin>decoration</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="pulse" type="bell">
+ <_short>Pulse</_short>
+ <_long>Pulse effect</_long>
+ </option>
+ </display>
+ <screen>
+ <option name="blur_speed" type="float">
+ <_short>Blur Speed</_short>
+ <_long>Window blur speed</_long>
+ <default>3.5</default>
+ <min>0.1</min>
+ <max>10.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="focus_blur_match" type="match">
+ <_short>Focus blur windows</_short>
+ <_long>Windows that should be affected by focus blur</_long>
+ <default>toolbar | menu | utility | normal | dialog | modaldialog</default>
+ </option>
+ <option name="focus_blur" type="bool">
+ <_short>Focus Blur</_short>
+ <_long>Blur windows that doesn't have focus</_long>
+ <default>false</default>
+ </option>
+ <option name="alpha_blur_match" type="match">
+ <_short>Alpha blur windows</_short>
+ <_long>Windows that should be use alpha blur by default</_long>
+ <default>any</default>
+ </option>
+ <option name="alpha_blur" type="bool">
+ <_short>Alpha Blur</_short>
+ <_long>Blur behind translucent parts of windows</_long>
+ <default>true</default>
+ </option>
+ <option name="filter" type="int">
+ <_short>Blur Filter</_short>
+ <_long>Filter method used for blurring</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>2</max>
+ <desc>
+ <value>0</value>
+ <_name>4xBilinear</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Gaussian</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Mipmap</_name>
+ </desc>
+ </option>
+ <option name="gaussian_radius" type="int">
+ <_short>Gaussian Radius</_short>
+ <_long>Gaussian radius</_long>
+ <default>3</default>
+ <min>1</min>
+ <max>15</max>
+ </option>
+ <option name="gaussian_strength" type="float">
+ <_short>Gaussian Strength</_short>
+ <_long>Gaussian strength</_long>
+ <default>1.0</default>
+ <min>0.0</min>
+ <max>1.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="mipmap_lod" type="float">
+ <_short>Mipmap LOD</_short>
+ <_long>Mipmap level-of-detail</_long>
+ <default>2.5</default>
+ <min>0.1</min>
+ <max>5.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="saturation" type="int">
+ <_short>Blur Saturation</_short>
+ <_long>Blur saturation</_long>
+ <default>100</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="occlusion" type="bool">
+ <_short>Blur Occlusion</_short>
+ <_long>Disable blurring of screen regions obscured by other windows.</_long>
+ <default>true</default>
+ </option>
+ <option name="independent_tex" type="bool">
+ <_short>Independent texture fetch</_short>
+ <_long>Use the available texture units to do as many as possible independent texture fetches.</_long>
+ <default>false</default>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/clone.xml.in b/metadata/clone.xml.in
new file mode 100644
index 0000000..dcac108
--- /dev/null
+++ b/metadata/clone.xml.in
@@ -0,0 +1,14 @@
+<compiz>
+ <plugin name="clone">
+ <_short>Clone Output</_short>
+ <_long>Output clone handler</_long>
+ <category>Desktop</category>
+ <display>
+ <option name="initiate_button" type="button">
+ <_short>Initiate</_short>
+ <_long>Initiate clone selection</_long>
+ <default>&lt;Super&gt;&lt;Shift&gt;Button1</default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/commands.xml.in b/metadata/commands.xml.in
new file mode 100644
index 0000000..ca5f74c
--- /dev/null
+++ b/metadata/commands.xml.in
@@ -0,0 +1,225 @@
+<compiz>
+ <plugin name="commands">
+ <_short>Commands</_short>
+ <_long>Assigns bindings to arbitrary commands</_long>
+ <category>General</category>
+ <display>
+ <group>
+ <_short>Commands</_short>
+ <option name="command0" type="string">
+ <_short>Command line 0</_short>
+ <_long>Command line to be executed in shell when run_command0 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command1" type="string">
+ <_short>Command line 1</_short>
+ <_long>Command line to be executed in shell when run_command1 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command2" type="string">
+ <_short>Command line 2</_short>
+ <_long>Command line to be executed in shell when run_command2 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command3" type="string">
+ <_short>Command line 3</_short>
+ <_long>Command line to be executed in shell when run_command3 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command4" type="string">
+ <_short>Command line 4</_short>
+ <_long>Command line to be executed in shell when run_command4 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command5" type="string">
+ <_short>Command line 5</_short>
+ <_long>Command line to be executed in shell when run_command5 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command6" type="string">
+ <_short>Command line 6</_short>
+ <_long>Command line to be executed in shell when run_command6 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command7" type="string">
+ <_short>Command line 7</_short>
+ <_long>Command line to be executed in shell when run_command7 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command8" type="string">
+ <_short>Command line 8</_short>
+ <_long>Command line to be executed in shell when run_command8 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command9" type="string">
+ <_short>Command line 9</_short>
+ <_long>Command line to be executed in shell when run_command9 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command10" type="string">
+ <_short>Command line 10</_short>
+ <_long>Command line to be executed in shell when run_command10 is invoked</_long>
+ <default></default>
+ </option>
+ <option name="command11" type="string">
+ <_short>Command line 11</_short>
+ <_long>Command line to be executed in shell when run_command11 is invoked</_long>
+ <default></default>
+ </option>
+ </group>
+ <group>
+ <_short>Key Bindings</_short>
+ <option name="run_command0_key" type="key">
+ <_short>Run command 0</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command0</_long>
+ </option>
+ <option name="run_command1_key" type="key">
+ <_short>Run command 1</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command1</_long>
+ </option>
+ <option name="run_command2_key" type="key">
+ <_short>Run command 2</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command2</_long>
+ </option>
+ <option name="run_command3_key" type="key">
+ <_short>Run command 3</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command3</_long>
+ </option>
+ <option name="run_command4_key" type="key">
+ <_short>Run command 4</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command4</_long>
+ </option>
+ <option name="run_command5_key" type="key">
+ <_short>Run command 5</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command5</_long>
+ </option>
+ <option name="run_command6_key" type="key">
+ <_short>Run command 6</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command6</_long>
+ </option>
+ <option name="run_command7_key" type="key">
+ <_short>Run command 7</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command7</_long>
+ </option>
+ <option name="run_command8_key" type="key">
+ <_short>Run command 8</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command8</_long>
+ </option>
+ <option name="run_command9_key" type="key">
+ <_short>Run command 9</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command9</_long>
+ </option>
+ <option name="run_command10_key" type="key">
+ <_short>Run command 10</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command10</_long>
+ </option>
+ <option name="run_command11_key" type="key">
+ <_short>Run command 11</_short>
+ <_long>A keybinding that when invoked, will run the shell command identified by command11</_long>
+ </option>
+ </group>
+ <group>
+ <_short>Button Bindings</_short>
+ <option name="run_command0_button" type="button">
+ <_short>Run command 0</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command0</_long>
+ </option>
+ <option name="run_command1_button" type="button">
+ <_short>Run command 1</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command1</_long>
+ </option>
+ <option name="run_command2_button" type="button">
+ <_short>Run command 2</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command2</_long>
+ </option>
+ <option name="run_command3_button" type="button">
+ <_short>Run command 3</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command3</_long>
+ </option>
+ <option name="run_command4_button" type="button">
+ <_short>Run command 4</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command4</_long>
+ </option>
+ <option name="run_command5_button" type="button">
+ <_short>Run command 5</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command5</_long>
+ </option>
+ <option name="run_command6_button" type="button">
+ <_short>Run command 6</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command6</_long>
+ </option>
+ <option name="run_command7_button" type="button">
+ <_short>Run command 7</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command7</_long>
+ </option>
+ <option name="run_command8_button" type="button">
+ <_short>Run command 8</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command8</_long>
+ </option>
+ <option name="run_command9_button" type="button">
+ <_short>Run command 9</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command9</_long>
+ </option>
+ <option name="run_command10_button" type="button">
+ <_short>Run command 10</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command10</_long>
+ </option>
+ <option name="run_command11_button" type="button">
+ <_short>Run command 11</_short>
+ <_long>A button binding that when invoked, will run the shell command identified by command11</_long>
+ </option>
+ </group>
+ <group>
+ <_short>Edge Bindings</_short>
+ <option name="run_command0_edge" type="edge">
+ <_short>Run command 0</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command0</_long>
+ </option>
+ <option name="run_command1_edge" type="edge">
+ <_short>Run command 1</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command1</_long>
+ </option>
+ <option name="run_command2_edge" type="edge">
+ <_short>Run command 2</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command2</_long>
+ </option>
+ <option name="run_command3_edge" type="edge">
+ <_short>Run command 3</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command3</_long>
+ </option>
+ <option name="run_command4_edge" type="edge">
+ <_short>Run command 4</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command4</_long>
+ </option>
+ <option name="run_command5_edge" type="edge">
+ <_short>Run command 5</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command5</_long>
+ </option>
+ <option name="run_command6_edge" type="edge">
+ <_short>Run command 6</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command6</_long>
+ </option>
+ <option name="run_command7_edge" type="edge">
+ <_short>Run command 7</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command7</_long>
+ </option>
+ <option name="run_command8_edge" type="edge">
+ <_short>Run command 8</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command8</_long>
+ </option>
+ <option name="run_command9_edge" type="edge">
+ <_short>Run command 9</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command9</_long>
+ </option>
+ <option name="run_command10_edge" type="edge">
+ <_short>Run command 10</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command10</_long>
+ </option>
+ <option name="run_command11_edge" type="edge">
+ <_short>Run command 11</_short>
+ <_long>An edge binding that when invoked, will run the shell command identified by command11</_long>
+ </option>
+ </group>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/core.xml.in b/metadata/core.xml.in
new file mode 100644
index 0000000..fa8b3c7
--- /dev/null
+++ b/metadata/core.xml.in
@@ -0,0 +1,335 @@
+<compiz>
+ <core>
+ <_short>General Options</_short>
+ <_long>General compiz options</_long>
+ <category>General</category>
+ <display>
+ <option name="abi" type="int" read_only="true"/>
+ <option name="active_plugins" type="list">
+ <_short>Active Plugins</_short>
+ <_long>List of currently active plugins</_long>
+ <type>string</type>
+ <default>
+ <value>core</value>
+ </default>
+ </option>
+ <option name="audible_bell" type="bool">
+ <_short>Audible Bell</_short>
+ <_long>Audible system beep</_long>
+ <default>true</default>
+ </option>
+ <option name="ignore_hints_when_maximized" type="bool">
+ <_short>Ignore Hints When Maximized</_short>
+ <_long>Ignore size increment and aspect hints when window is maximized</_long>
+ <default>true</default>
+ </option>
+ <option name="hide_skip_taskbar_windows" type="bool">
+ <_short>Hide Skip Taskbar Windows</_short>
+ <_long>Hide windows not in taskbar when entering show desktop mode</_long>
+ <default>true</default>
+ </option>
+ <option name="edge_delay" type="int">
+ <_short>Edge Trigger Delay</_short>
+ <_long>Duration the pointer must rest in a screen edge before an edge action is taken.</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>10000</max>
+ </option>
+ <option name="ping_delay" type="int">
+ <_short>Ping Delay</_short>
+ <_long>Interval between ping messages</_long>
+ <default>5000</default>
+ <min>1000</min>
+ <max>30000</max>
+ </option>
+ <group>
+ <_short>Display Settings</_short>
+ <option name="texture_filter" type="int">
+ <_short>Texture Filter</_short>
+ <_long>Texture filtering</_long>
+ <default>1</default>
+ <min>0</min>
+ <max>2</max>
+ <desc>
+ <value>0</value>
+ <_name>Fast</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Good</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Best</_name>
+ </desc>
+ </option>
+ </group>
+ <group>
+ <_short>Focus &amp; Raise Behaviour</_short>
+ <option name="click_to_focus" type="bool">
+ <_short>Click To Focus</_short>
+ <_long>Click on window moves input focus to it</_long>
+ <default>true</default>
+ </option>
+ <option name="raise_on_click" type="bool">
+ <_short>Raise On Click</_short>
+ <_long>Raise windows when clicked</_long>
+ <default>true</default>
+ </option>
+ <option name="autoraise" type="bool">
+ <_short>Auto-Raise</_short>
+ <_long>Raise selected windows after interval</_long>
+ <default>true</default>
+ </option>
+ <option name="autoraise_delay" type="int">
+ <_short>Auto-Raise Delay</_short>
+ <_long>Interval before raising selected windows</_long>
+ <default>1000</default>
+ <min>0</min>
+ <max>10000</max>
+ </option>
+ </group>
+
+ <group>
+ <_short>Key bindings</_short>
+ <option name="close_window_key" type="key">
+ <_short>Close Window</_short>
+ <_long>Close active window</_long>
+ <default>&lt;Alt&gt;F4</default>
+ </option>
+ <option name="close_window_button" type="button">
+ <_short>Close Window</_short>
+ <_long>Close active window</_long>
+ </option>
+ <option name="raise_window_key" type="key">
+ <_short>Raise Window</_short>
+ <_long>Raise window above other windows</_long>
+ </option>
+ <option name="raise_window_button" type="button">
+ <_short>Raise Window</_short>
+ <_long>Raise window above other windows</_long>
+ <default>&lt;Control&gt;Button6</default>
+ </option>
+ <option name="lower_window_key" type="key">
+ <_short>Lower Window</_short>
+ <_long>Lower window beneath other windows</_long>
+ </option>
+ <option name="lower_window_button" type="button">
+ <_short>Lower Window</_short>
+ <_long>Lower window beneath other windows</_long>
+ <default>&lt;Alt&gt;Button6</default>
+ </option>
+ <option name="unmaximize_window_key" type="key">
+ <_short>Unmaximize Window</_short>
+ <_long>Unmaximize active window</_long>
+ <default>&lt;Alt&gt;F5</default>
+ </option>
+ <option name="minimize_window_key" type="key">
+ <_short>Minimize Window</_short>
+ <_long>Minimize active window</_long>
+ <default>&lt;Alt&gt;F9</default>
+ </option>
+ <option name="minimize_window_button" type="button">
+ <_short>Minimize Window</_short>
+ <_long>Minimize active window</_long>
+ </option>
+ <option name="maximize_window_key" type="key">
+ <_short>Maximize Window</_short>
+ <_long>Maximize active window</_long>
+ <default>&lt;Alt&gt;F10</default>
+ </option>
+ <option name="maximize_window_horizontally_key" type="key">
+ <_short>Maximize Window Horizontally</_short>
+ <_long>Maximize active window horizontally</_long>
+ </option>
+ <option name="maximize_window_vertically_key" type="key">
+ <_short>Maximize Window Vertically</_short>
+ <_long>Maximize active window vertically</_long>
+ </option>
+ <option name="window_menu_button" type="button">
+ <_short>Window Menu</_short>
+ <_long>Window menu button binding</_long>
+ <default>&lt;Alt&gt;Button3</default>
+ </option>
+ <option name="window_menu_key" type="key">
+ <_short>Window Menu</_short>
+ <_long>Window menu key binding</_long>
+ <default>&lt;Alt&gt;space</default>
+ </option>
+ <option name="show_desktop_key" type="key">
+ <_short>Show Desktop</_short>
+ <_long>Hide all windows and focus desktop</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;d</default>
+ </option>
+ <option name="show_desktop_edge" type="edge">
+ <_short>Show Desktop</_short>
+ <_long>Hide all windows and focus desktop</_long>
+ <default/>
+ </option>
+ <option name="toggle_window_maximized_key" type="key">
+ <_short>Toggle Window Maximized</_short>
+ <_long>Toggle active window maximized</_long>
+ </option>
+ <option name="toggle_window_maximized_button" type="button">
+ <_short>Toggle Window Maximized</_short>
+ <_long>Toggle active window maximized</_long>
+ </option>
+ <option name="toggle_window_maximized_horizontally_key" type="key">
+ <_short>Toggle Window Maximized Horizontally</_short>
+ <_long>Toggle active window maximized horizontally</_long>
+ </option>
+ <option name="toggle_window_maximized_vertically_key" type="key">
+ <_short>Toggle Window Maximized Vertically</_short>
+ <_long>Toggle active window maximized vertically</_long>
+ </option>
+ <option name="toggle_window_shaded_key" type="key">
+ <_short>Toggle Window Shaded</_short>
+ <_long>Toggle active window shaded</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;s</default>
+ </option>
+ <option name="slow_animations_key" type="key">
+ <_short>Slow Animations</_short>
+ <_long>Toggle use of slow animations</_long>
+ </option>
+ </group>
+ </display>
+ <screen>
+ <group>
+ <_short>Desktop Size</_short>
+ <option name="hsize" type="int">
+ <_short>Horizontal Virtual Size</_short>
+ <_long>Screen size multiplier for horizontal virtual size</_long>
+ <default>4</default>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ <option name="vsize" type="int">
+ <_short>Vertical Virtual Size</_short>
+ <_long>Screen size multiplier for vertical virtual size</_long>
+ <default>1</default>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ <option name="number_of_desktops" type="int">
+ <_short>Number of Desktops</_short>
+ <_long>Number of virtual desktops</_long>
+ <default>1</default>
+ <min>1</min>
+ <max>36</max>
+ </option>
+ </group>
+ <group>
+ <_short>Display Settings</_short>
+ <option name="lighting" type="bool">
+ <_short>Lighting</_short>
+ <_long>Use diffuse light when screen is transformed</_long>
+ <default>true</default>
+ </option>
+ <option name="detect_refresh_rate" type="bool">
+ <_short>Detect Refresh Rate</_short>
+ <_long>Automatic detection of refresh rate</_long>
+ <default>true</default>
+ </option>
+ <option name="refresh_rate" type="int">
+ <_short>Refresh Rate</_short>
+ <_long>The rate at which the screen is redrawn (times/second)</_long>
+ <default>50</default>
+ <min>1</min>
+ <max>200</max>
+ </option>
+ <option name="detect_outputs" type="bool">
+ <_short>Detect Outputs</_short>
+ <_long>Automatic detection of output devices</_long>
+ <default>true</default>
+ </option>
+ <option name="overlapping_outputs" type="int">
+ <_short>Overlapping Output Handling</_short>
+ <_long>Which one of overlapping output devices should be preferred</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>2</max>
+ <desc>
+ <value>0</value>
+ <_name>Smart mode</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Prefer larger output</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Prefer smaller output</_name>
+ </desc>
+ </option>
+ <option name="outputs" type="list">
+ <_short>Outputs</_short>
+ <_long>List of strings describing output devices</_long>
+ <type>string</type>
+ <default>
+ <value>640x480+0+0</value>
+ </default>
+ </option>
+ <option name="sync_to_vblank" type="bool">
+ <_short>Sync To VBlank</_short>
+ <_long>Only perform screen updates during vertical blanking period</_long>
+ <default>true</default>
+ </option>
+ </group>
+ <group>
+ <_short>Focus &amp; Raise Behaviour</_short>
+ <option name="focus_prevention_level" type="int">
+ <_short>Focus Prevention Level</_short>
+ <_long>Level of focus stealing prevention</_long>
+ <min>0</min>
+ <max>4</max>
+ <default>1</default>
+ <desc>
+ <value>0</value>
+ <_name>Off</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Low</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Normal</_name>
+ </desc>
+ <desc>
+ <value>3</value>
+ <_name>High</_name>
+ </desc>
+ <desc>
+ <value>4</value>
+ <_name>Very High</_name>
+ </desc>
+ </option>
+ <option name="focus_prevention_match" type="match">
+ <_short>Focus Prevention Windows</_short>
+ <_long>Focus prevention windows</_long>
+ <default>any</default>
+ </option>
+ </group>
+ <option name="unredirect_fullscreen_windows" type="bool">
+ <_short>Unredirect Fullscreen Windows</_short>
+ <_long>Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps</_long>
+ <default>false</default>
+ </option>
+ <option name="default_icon" type="string">
+ <_short>Default Icon</_short>
+ <_long>Default window icon image</_long>
+ <default>icon</default>
+ </option>
+ <option name="force_independent_output_painting" type="bool">
+ <_short>Force independent output painting.</_short>
+ <_long>Paint each output device independly, even if the output devices overlap</_long>
+ <default>false</default>
+ </option>
+ <option name="texture_compression" type="bool">
+ <_short>Texture Compression</_short>
+ <_long>If available use compression for textures converted from images</_long>
+ <default>true</default>
+ </option>
+ </screen>
+ </core>
+</compiz>
diff --git a/metadata/core.xml.in.in b/metadata/core.xml.in.in
new file mode 100644
index 0000000..48073d7
--- /dev/null
+++ b/metadata/core.xml.in.in
@@ -0,0 +1,335 @@
+<compiz>
+ <core>
+ <_short>General Options</_short>
+ <_long>General compiz options</_long>
+ <category>General</category>
+ <display>
+ <option name="abi" type="int" read_only="true"/>
+ <option name="active_plugins" type="list">
+ <_short>Active Plugins</_short>
+ <_long>List of currently active plugins</_long>
+ <type>string</type>
+ <default>
+ <default_plugins/>
+ </default>
+ </option>
+ <option name="audible_bell" type="bool">
+ <_short>Audible Bell</_short>
+ <_long>Audible system beep</_long>
+ <default>true</default>
+ </option>
+ <option name="ignore_hints_when_maximized" type="bool">
+ <_short>Ignore Hints When Maximized</_short>
+ <_long>Ignore size increment and aspect hints when window is maximized</_long>
+ <default>true</default>
+ </option>
+ <option name="hide_skip_taskbar_windows" type="bool">
+ <_short>Hide Skip Taskbar Windows</_short>
+ <_long>Hide windows not in taskbar when entering show desktop mode</_long>
+ <default>true</default>
+ </option>
+ <option name="edge_delay" type="int">
+ <_short>Edge Trigger Delay</_short>
+ <_long>Duration the pointer must rest in a screen edge before an edge action is taken.</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>10000</max>
+ </option>
+ <option name="ping_delay" type="int">
+ <_short>Ping Delay</_short>
+ <_long>Interval between ping messages</_long>
+ <default>5000</default>
+ <min>1000</min>
+ <max>30000</max>
+ </option>
+ <group>
+ <_short>Display Settings</_short>
+ <option name="texture_filter" type="int">
+ <_short>Texture Filter</_short>
+ <_long>Texture filtering</_long>
+ <default>1</default>
+ <min>0</min>
+ <max>2</max>
+ <desc>
+ <value>0</value>
+ <_name>Fast</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Good</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Best</_name>
+ </desc>
+ </option>
+ </group>
+ <group>
+ <_short>Focus &amp; Raise Behaviour</_short>
+ <option name="click_to_focus" type="bool">
+ <_short>Click To Focus</_short>
+ <_long>Click on window moves input focus to it</_long>
+ <default>true</default>
+ </option>
+ <option name="raise_on_click" type="bool">
+ <_short>Raise On Click</_short>
+ <_long>Raise windows when clicked</_long>
+ <default>true</default>
+ </option>
+ <option name="autoraise" type="bool">
+ <_short>Auto-Raise</_short>
+ <_long>Raise selected windows after interval</_long>
+ <default>true</default>
+ </option>
+ <option name="autoraise_delay" type="int">
+ <_short>Auto-Raise Delay</_short>
+ <_long>Interval before raising selected windows</_long>
+ <default>1000</default>
+ <min>0</min>
+ <max>10000</max>
+ </option>
+ </group>
+
+ <group>
+ <_short>Key bindings</_short>
+ <option name="close_window_key" type="key">
+ <_short>Close Window</_short>
+ <_long>Close active window</_long>
+ <default>&lt;Alt&gt;F4</default>
+ </option>
+ <option name="close_window_button" type="button">
+ <_short>Close Window</_short>
+ <_long>Close active window</_long>
+ </option>
+ <option name="raise_window_key" type="key">
+ <_short>Raise Window</_short>
+ <_long>Raise window above other windows</_long>
+ </option>
+ <option name="raise_window_button" type="button">
+ <_short>Raise Window</_short>
+ <_long>Raise window above other windows</_long>
+ <default>&lt;Control&gt;Button6</default>
+ </option>
+ <option name="lower_window_key" type="key">
+ <_short>Lower Window</_short>
+ <_long>Lower window beneath other windows</_long>
+ </option>
+ <option name="lower_window_button" type="button">
+ <_short>Lower Window</_short>
+ <_long>Lower window beneath other windows</_long>
+ <default>&lt;Alt&gt;Button6</default>
+ </option>
+ <option name="unmaximize_window_key" type="key">
+ <_short>Unmaximize Window</_short>
+ <_long>Unmaximize active window</_long>
+ <default>&lt;Alt&gt;F5</default>
+ </option>
+ <option name="minimize_window_key" type="key">
+ <_short>Minimize Window</_short>
+ <_long>Minimize active window</_long>
+ <default>&lt;Alt&gt;F9</default>
+ </option>
+ <option name="minimize_window_button" type="button">
+ <_short>Minimize Window</_short>
+ <_long>Minimize active window</_long>
+ </option>
+ <option name="maximize_window_key" type="key">
+ <_short>Maximize Window</_short>
+ <_long>Maximize active window</_long>
+ <default>&lt;Alt&gt;F10</default>
+ </option>
+ <option name="maximize_window_horizontally_key" type="key">
+ <_short>Maximize Window Horizontally</_short>
+ <_long>Maximize active window horizontally</_long>
+ </option>
+ <option name="maximize_window_vertically_key" type="key">
+ <_short>Maximize Window Vertically</_short>
+ <_long>Maximize active window vertically</_long>
+ </option>
+ <option name="window_menu_button" type="button">
+ <_short>Window Menu</_short>
+ <_long>Window menu button binding</_long>
+ <default>&lt;Alt&gt;Button3</default>
+ </option>
+ <option name="window_menu_key" type="key">
+ <_short>Window Menu</_short>
+ <_long>Window menu key binding</_long>
+ <default>&lt;Alt&gt;space</default>
+ </option>
+ <option name="show_desktop_key" type="key">
+ <_short>Show Desktop</_short>
+ <_long>Hide all windows and focus desktop</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;d</default>
+ </option>
+ <option name="show_desktop_edge" type="edge">
+ <_short>Show Desktop</_short>
+ <_long>Hide all windows and focus desktop</_long>
+ <default/>
+ </option>
+ <option name="toggle_window_maximized_key" type="key">
+ <_short>Toggle Window Maximized</_short>
+ <_long>Toggle active window maximized</_long>
+ </option>
+ <option name="toggle_window_maximized_button" type="button">
+ <_short>Toggle Window Maximized</_short>
+ <_long>Toggle active window maximized</_long>
+ </option>
+ <option name="toggle_window_maximized_horizontally_key" type="key">
+ <_short>Toggle Window Maximized Horizontally</_short>
+ <_long>Toggle active window maximized horizontally</_long>
+ </option>
+ <option name="toggle_window_maximized_vertically_key" type="key">
+ <_short>Toggle Window Maximized Vertically</_short>
+ <_long>Toggle active window maximized vertically</_long>
+ </option>
+ <option name="toggle_window_shaded_key" type="key">
+ <_short>Toggle Window Shaded</_short>
+ <_long>Toggle active window shaded</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;s</default>
+ </option>
+ <option name="slow_animations_key" type="key">
+ <_short>Slow Animations</_short>
+ <_long>Toggle use of slow animations</_long>
+ </option>
+ </group>
+ </display>
+ <screen>
+ <group>
+ <_short>Desktop Size</_short>
+ <option name="hsize" type="int">
+ <_short>Horizontal Virtual Size</_short>
+ <_long>Screen size multiplier for horizontal virtual size</_long>
+ <default>4</default>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ <option name="vsize" type="int">
+ <_short>Vertical Virtual Size</_short>
+ <_long>Screen size multiplier for vertical virtual size</_long>
+ <default>1</default>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ <option name="number_of_desktops" type="int">
+ <_short>Number of Desktops</_short>
+ <_long>Number of virtual desktops</_long>
+ <default>1</default>
+ <min>1</min>
+ <max>36</max>
+ </option>
+ </group>
+ <group>
+ <_short>Display Settings</_short>
+ <option name="lighting" type="bool">
+ <_short>Lighting</_short>
+ <_long>Use diffuse light when screen is transformed</_long>
+ <default>true</default>
+ </option>
+ <option name="detect_refresh_rate" type="bool">
+ <_short>Detect Refresh Rate</_short>
+ <_long>Automatic detection of refresh rate</_long>
+ <default>true</default>
+ </option>
+ <option name="refresh_rate" type="int">
+ <_short>Refresh Rate</_short>
+ <_long>The rate at which the screen is redrawn (times/second)</_long>
+ <default>50</default>
+ <min>1</min>
+ <max>200</max>
+ </option>
+ <option name="detect_outputs" type="bool">
+ <_short>Detect Outputs</_short>
+ <_long>Automatic detection of output devices</_long>
+ <default>true</default>
+ </option>
+ <option name="overlapping_outputs" type="int">
+ <_short>Overlapping Output Handling</_short>
+ <_long>Which one of overlapping output devices should be preferred</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>2</max>
+ <desc>
+ <value>0</value>
+ <_name>Smart mode</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Prefer larger output</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Prefer smaller output</_name>
+ </desc>
+ </option>
+ <option name="outputs" type="list">
+ <_short>Outputs</_short>
+ <_long>List of strings describing output devices</_long>
+ <type>string</type>
+ <default>
+ <value>640x480+0+0</value>
+ </default>
+ </option>
+ <option name="sync_to_vblank" type="bool">
+ <_short>Sync To VBlank</_short>
+ <_long>Only perform screen updates during vertical blanking period</_long>
+ <default>true</default>
+ </option>
+ </group>
+ <group>
+ <_short>Focus &amp; Raise Behaviour</_short>
+ <option name="focus_prevention_level" type="int">
+ <_short>Focus Prevention Level</_short>
+ <_long>Level of focus stealing prevention</_long>
+ <min>0</min>
+ <max>4</max>
+ <default>1</default>
+ <desc>
+ <value>0</value>
+ <_name>Off</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Low</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Normal</_name>
+ </desc>
+ <desc>
+ <value>3</value>
+ <_name>High</_name>
+ </desc>
+ <desc>
+ <value>4</value>
+ <_name>Very High</_name>
+ </desc>
+ </option>
+ <option name="focus_prevention_match" type="match">
+ <_short>Focus Prevention Windows</_short>
+ <_long>Focus prevention windows</_long>
+ <default>any</default>
+ </option>
+ </group>
+ <option name="unredirect_fullscreen_windows" type="bool">
+ <_short>Unredirect Fullscreen Windows</_short>
+ <_long>Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps</_long>
+ <default>false</default>
+ </option>
+ <option name="default_icon" type="string">
+ <_short>Default Icon</_short>
+ <_long>Default window icon image</_long>
+ <default>icon</default>
+ </option>
+ <option name="force_independent_output_painting" type="bool">
+ <_short>Force independent output painting.</_short>
+ <_long>Paint each output device independly, even if the output devices overlap</_long>
+ <default>false</default>
+ </option>
+ <option name="texture_compression" type="bool">
+ <_short>Texture Compression</_short>
+ <_long>If available use compression for textures converted from images</_long>
+ <default>true</default>
+ </option>
+ </screen>
+ </core>
+</compiz>
diff --git a/metadata/cube.xml.in b/metadata/cube.xml.in
new file mode 100644
index 0000000..7e9a42b
--- /dev/null
+++ b/metadata/cube.xml.in
@@ -0,0 +1,185 @@
+<compiz>
+ <plugin name="cube">
+ <_short>Desktop Cube</_short>
+ <_long>Place windows on cube</_long>
+ <category>Desktop</category>
+ <feature>largedesktop</feature>
+ <deps>
+ <relation type="before">
+ <plugin>switcher</plugin>
+ <plugin>scale</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="abi" type="int" read_only="true"/>
+ <option name="index" type="int" read_only="true"/>
+ <option name="unfold_key" type="key">
+ <_short>Unfold</_short>
+ <_long>Unfold cube</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;Down</default>
+ </option>
+ <option name="next_slide_key" type="key">
+ <_short>Next Slide</_short>
+ <_long>Advance to next slide</_long>
+ <default>space</default>
+ </option>
+ <option name="prev_slide_key" type="key">
+ <_short>Prev Slide</_short>
+ <_long>Go back to previous slide</_long>
+ <default>Backspace</default>
+ </option>
+ </display>
+ <screen>
+ <option name="mipmap" type="bool">
+ <_short>Mipmap</_short>
+ <_long>Generate mipmaps when possible for higher quality scaling</_long>
+ <default>true</default>
+ </option>
+ <option name="multioutput_mode" type="int">
+ <_short>Multi Output Mode</_short>
+ <_long>Selects how the cube is displayed if multiple output devices are used.</_long>
+ <min>0</min>
+ <max>2</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>Automatic</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Multiple cubes</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>One big cube</_name>
+ </desc>
+ </option>
+ <group>
+ <_short>Behaviour</_short>
+ <option name="in" type="bool">
+ <_short>Inside Cube</_short>
+ <_long>Inside cube</_long>
+ <default>false</default>
+ </option>
+ <option name="acceleration" type="float">
+ <_short>Acceleration</_short>
+ <_long>Fold Acceleration</_long>
+ <default>4.0</default>
+ <min>1.0</min>
+ <max>20.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Fold Speed</_long>
+ <default>1.5</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Fold Timestep</_long>
+ <default>1.2</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ </group>
+ <group>
+ <_short>Appearance</_short>
+ <option name="color" type="color">
+ <_short>Cube Color</_short>
+ <_long>Color of top and bottom sides of the cube</_long>
+ <default>
+ <red>0xfefe</red>
+ <green>0xffff</green>
+ <blue>0xc7c7</blue>
+ </default>
+ </option>
+ <subgroup>
+ <_short>Cube Caps</_short>
+ <option name="scale_image" type="bool">
+ <_short>Scale image</_short>
+ <_long>Scale images to cover top face of cube</_long>
+ <default>false</default>
+ </option>
+ <option name="images" type="list">
+ <_short>Image files</_short>
+ <_long>List of PNG and SVG files that should be rendered on top face of cube</_long>
+ <type>string</type>
+ <hints>file;image;</hints>
+ <default>
+ <value>freedesktop</value>
+ </default>
+ </option>
+ <option name="adjust_image" type="bool">
+ <_short>Adjust Image</_short>
+ <_long>Adjust top face image to rotation</_long>
+ <default>false</default>
+ </option>
+ </subgroup>
+ <subgroup>
+ <_short>Skydome</_short>
+ <option name="skydome" type="bool">
+ <_short>Skydome</_short>
+ <_long>Render skydome</_long>
+ <default>false</default>
+ </option>
+ <option name="skydome_image" type="string">
+ <_short>Skydome Image</_short>
+ <_long>Image to use as texture for the skydome</_long>
+ <hints>file;image;</hints>
+ </option>
+ <option name="skydome_animated" type="bool">
+ <_short>Animate Skydome</_short>
+ <_long>Animate skydome when rotating cube</_long>
+ <default>false</default>
+ </option>
+ <option name="skydome_gradient_start_color" type="color">
+ <_short>Skydome Gradient Start Color</_short>
+ <_long>Color to use for the top color-stop of the skydome-fallback gradient</_long>
+ <default>
+ <red>0x0d0d</red>
+ <green>0xb1b1</green>
+ <blue>0xfdfd</blue>
+ </default>
+ </option>
+ <option name="skydome_gradient_end_color" type="color">
+ <_short>Skydome Gradient End Color</_short>
+ <_long>Color to use for the bottom color-stop of the skydome-fallback gradient</_long>
+ <default>
+ <red>0xfefe</red>
+ <green>0xffff</green>
+ <blue>0xc7c7</blue>
+ </default>
+ </option>
+ </subgroup>
+ </group>
+ <group>
+ <_short>Transparent Cube</_short>
+ <option name="active_opacity" type="float">
+ <_short>Opacity During Rotation</_short>
+ <_long>Opacity of desktop window during rotation.</_long>
+ <default>100.0</default>
+ <min>0.0</min>
+ <max>100.0</max>
+ <precision>1.0</precision>
+ </option>
+ <option name="inactive_opacity" type="float">
+ <_short>Opacity When Not Rotating</_short>
+ <_long>Opacity of desktop window when not rotating.</_long>
+ <default>100.0</default>
+ <min>0.0</min>
+ <max>100.0</max>
+ <precision>1.0</precision>
+ </option>
+ <option name="transparent_manual_only" type="bool">
+ <_short>Transparency Only on Mouse Rotate</_short>
+ <_long>Initiates Cube transparency only if rotation is mouse driven.</_long>
+ <default>true</default>
+ </option>
+ </group>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/dbus.xml.in b/metadata/dbus.xml.in
new file mode 100644
index 0000000..19f1764
--- /dev/null
+++ b/metadata/dbus.xml.in
@@ -0,0 +1,7 @@
+<compiz>
+ <plugin name="dbus">
+ <_short>Dbus</_short>
+ <_long>Dbus Control Backend</_long>
+ <category>Utility</category>
+ </plugin>
+</compiz>
diff --git a/metadata/decoration.xml.in b/metadata/decoration.xml.in
new file mode 100644
index 0000000..3be23c5
--- /dev/null
+++ b/metadata/decoration.xml.in
@@ -0,0 +1,71 @@
+<compiz>
+ <plugin name="decoration">
+ <_short>Window Decoration</_short>
+ <_long>Window decorations</_long>
+ <category>Effects</category>
+ <feature>decorations</feature>
+ <deps>
+ <relation type="before">
+ <plugin>fade</plugin>
+ <plugin>cube</plugin>
+ <plugin>scale</plugin>
+ <plugin>wobbly</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="shadow_radius" type="float">
+ <_short>Shadow Radius</_short>
+ <_long>Drop shadow radius</_long>
+ <default>8.0</default>
+ <min>0.1</min>
+ <max>18.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="shadow_opacity" type="float">
+ <_short>Shadow Opacity</_short>
+ <_long>Drop shadow opacity</_long>
+ <default>0.5</default>
+ <min>0.01</min>
+ <max>6.0</max>
+ <precision>0.01</precision>
+ </option>
+ <option name="shadow_color" type="color">
+ <_short>Shadow Color</_short>
+ <_long>Drop shadow color</_long>
+ </option>
+ <option name="shadow_x_offset" type="int">
+ <_short>Shadow Offset X</_short>
+ <_long>Drop shadow X offset</_long>
+ <default>1</default>
+ <min>-16</min>
+ <max>16</max>
+ </option>
+ <option name="shadow_y_offset" type="int">
+ <_short>Shadow Offset Y</_short>
+ <_long>Drop shadow Y offset</_long>
+ <default>1</default>
+ <min>-16</min>
+ <max>16</max>
+ </option>
+ <option name="command" type="string">
+ <_short>Command</_short>
+ <_long>Decorator command line that is executed if no decorator is already running</_long>
+ </option>
+ <option name="mipmap" type="bool">
+ <_short>Mipmap</_short>
+ <_long>Allow mipmaps to be generated for decoration textures</_long>
+ <default>false</default>
+ </option>
+ <option name="decoration_match" type="match">
+ <_short>Decoration windows</_short>
+ <_long>Windows that should be decorated</_long>
+ <default>any</default>
+ </option>
+ <option name="shadow_match" type="match">
+ <_short>Shadow windows</_short>
+ <_long>Windows that should have a shadow</_long>
+ <default>any</default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/fade.xml.in b/metadata/fade.xml.in
new file mode 100644
index 0000000..06b2d7d
--- /dev/null
+++ b/metadata/fade.xml.in
@@ -0,0 +1,92 @@
+<compiz>
+ <plugin name="fade">
+ <_short>Fading Windows</_short>
+ <_long>Fade in windows when mapped and fade out windows when unmapped</_long>
+ <category>Effects</category>
+ <deps>
+ <requirement>
+ <plugin>regex</plugin>
+ </requirement>
+ <relation type="after">
+ <plugin>regex</plugin>
+ </relation>
+ <relation type="before">
+ <plugin>cube</plugin>
+ <plugin>scale</plugin>
+ <plugin>move</plugin>
+ <plugin>switcher</plugin>
+ </relation>
+ </deps>
+ <screen>
+ <option name="fade_mode" type="int">
+ <_short>Fade Mode</_short>
+ <_long>Window fade mode</_long>
+ <min>0</min>
+ <max>1</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>Constant speed</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Constant time</_name>
+ </desc>
+ </option>
+ <option name="fade_speed" type="float">
+ <_short>Fade Speed</_short>
+ <_long>Window fade speed in "Constant speed" mode</_long>
+ <default>5.0</default>
+ <min>0.1</min>
+ <max>25.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="fade_time" type="int">
+ <_short>Fade Time</_short>
+ <_long>Window fade time (in ms) in "Constant time" mode</_long>
+ <default>100</default>
+ <min>1</min>
+ <max>5000</max>
+ </option>
+ <option name="window_match" type="match">
+ <_short>Fade windows</_short>
+ <_long>Windows that should be fading</_long>
+ <default>any</default>
+ </option>
+ <option name="visual_bell" type="bool">
+ <_short>Visual Bell</_short>
+ <_long>Fade effect on system beep</_long>
+ <default>false</default>
+ </option>
+ <option name="fullscreen_visual_bell" type="bool">
+ <_short>Fullscreen Visual Bell</_short>
+ <_long>Fullscreen fade effect on system beep</_long>
+ <default>false</default>
+ </option>
+ <option name="minimize_open_close" type="bool">
+ <_short>Fade On Minimize/Open/Close</_short>
+ <_long>Fade effect on minimize/open/close window events</_long>
+ <default>true</default>
+ </option>
+ <option name="dim_unresponsive" type="bool">
+ <_short>Dim Unresponsive Windows</_short>
+ <_long>Dim windows that are not responding to window manager requests</_long>
+ <default>true</default>
+ </option>
+ <option name="unresponsive_brightness" type="int">
+ <_short>Unresponsive Window Brightness</_short>
+ <_long>Brightness (in %) of unresponsive windows</_long>
+ <min>0</min>
+ <max>100</max>
+ <default>65</default>
+ </option>
+ <option name="unresponsive_saturation" type="int">
+ <_short>Unresponsive Window Saturation</_short>
+ <_long>Saturation (in %) of unresponsive windows</_long>
+ <min>0</min>
+ <max>100</max>
+ <default>0</default>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/fs.xml.in b/metadata/fs.xml.in
new file mode 100644
index 0000000..4988a96
--- /dev/null
+++ b/metadata/fs.xml.in
@@ -0,0 +1,14 @@
+<compiz>
+ <plugin name="fs">
+ <_short>Userspace File System</_short>
+ <_long>Userspace file system</_long>
+ <category>Utility</category>
+ <display>
+ <option name="mount_point" type="string">
+ <_short>Mount Point</_short>
+ <_long>Mount point</_long>
+ <default>compiz</default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/gconf.xml.in b/metadata/gconf.xml.in
new file mode 100644
index 0000000..2a382a2
--- /dev/null
+++ b/metadata/gconf.xml.in
@@ -0,0 +1,18 @@
+<compiz>
+ <plugin name="gconf">
+ <_short>GConf</_short>
+ <_long>GConf Control Backend</_long>
+ <deps>
+ <relation type="after">
+ <plugin>glib</plugin>
+ </relation>
+ <relation type="before">
+ <plugin>decoration</plugin>
+ <plugin>wobbly</plugin>
+ <plugin>fade</plugin>
+ <plugin>cube</plugin>
+ <plugin>scale</plugin>
+ </relation>
+ </deps>
+ </plugin>
+</compiz>
diff --git a/metadata/glib.xml.in b/metadata/glib.xml.in
new file mode 100644
index 0000000..f556acc
--- /dev/null
+++ b/metadata/glib.xml.in
@@ -0,0 +1,7 @@
+<compiz>
+ <plugin name="glib">
+ <_short>GLib</_short>
+ <_long>GLib main loop support</_long>
+ <category>Utility</category>
+ </plugin>
+</compiz>
diff --git a/metadata/gnomecompat.xml.in b/metadata/gnomecompat.xml.in
new file mode 100644
index 0000000..b40ae4a
--- /dev/null
+++ b/metadata/gnomecompat.xml.in
@@ -0,0 +1,52 @@
+<compiz>
+ <plugin name="gnomecompat">
+ <_short>Gnome Compatibility</_short>
+ <_long>Options that keep Compiz compatible to the Gnome desktop environment</_long>
+ <category>General</category>
+ <display>
+ <option name="main_menu_key" type="key">
+ <_short>Show Main Menu</_short>
+ <_long>Show the main menu</_long>
+ <default>&lt;Alt&gt;F1</default>
+ </option>
+ <option name="run_key" type="key">
+ <_short>Run Dialog</_short>
+ <_long>Show Run Application dialog</_long>
+ <default>&lt;Alt&gt;F2</default>
+ </option>
+ <group>
+ <_short>Commands</_short>
+ <option name="command_screenshot" type="string">
+ <_short>Screenshot command line</_short>
+ <_long>Screenshot command line</_long>
+ <default>gnome-screenshot</default>
+ </option>
+ <option name="run_command_screenshot_key" type="key">
+ <_short>Take a screenshot</_short>
+ <_long>Take a screenshot</_long>
+ <default>Print</default>
+ </option>
+ <option name="command_window_screenshot" type="string">
+ <_short>Window screenshot command line</_short>
+ <_long>Window screenshot command line</_long>
+ <default>gnome-screenshot --window</default>
+ </option>
+ <option name="run_command_window_screenshot_key" type="key">
+ <_short>Take a screenshot of a window</_short>
+ <_long>Take a screenshot of a window</_long>
+ <default>&lt;Alt&gt;Print</default>
+ </option>
+ <_short>Run terminal command</_short>
+ <option name="command_terminal" type="string">
+ <_short>Terminal command line</_short>
+ <_long>Terminal command line</_long>
+ <default></default>
+ </option>
+ <option name="run_command_terminal_key" type="key">
+ <_short>Open a terminal</_short>
+ <_long>Open a terminal</_long>
+ </option>
+ </group>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/ini.xml.in b/metadata/ini.xml.in
new file mode 100644
index 0000000..3c3b32b
--- /dev/null
+++ b/metadata/ini.xml.in
@@ -0,0 +1,6 @@
+<compiz>
+ <plugin name="ini">
+ <_short>Ini</_short>
+ <_long>Ini Flat File Backend</_long>
+ </plugin>
+</compiz>
diff --git a/metadata/inotify.xml.in b/metadata/inotify.xml.in
new file mode 100644
index 0000000..2f17e97
--- /dev/null
+++ b/metadata/inotify.xml.in
@@ -0,0 +1,7 @@
+<compiz>
+ <plugin name="inotify">
+ <_short>Inotify</_short>
+ <_long>File change notification plugin</_long>
+ <category>Utility</category>
+ </plugin>
+</compiz>
diff --git a/metadata/kcfg.xslt b/metadata/kcfg.xslt
new file mode 100644
index 0000000..c8b52b5
--- /dev/null
+++ b/metadata/kcfg.xslt
@@ -0,0 +1,322 @@
+<!--
+ Copyright © 2007 Dennis Kasprzyk
+ Copyright © 2007 Novell, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software
+ and its documentation for any purpose is hereby granted without
+ fee, provided that the above copyright notice appear in all copies
+ and that both that copyright notice and this permission notice
+ appear in supporting documentation, and that the name of
+ Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ distribution of the software without specific, written prior permission.
+ Dennis Kasprzyk makes no representations about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+
+ DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ Authors: Dennis Kasprzyk <onestone@deltatauchi.de>
+ David Reveman <davidr@novell.com>
+ -->
+
+<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:template match="/compiz">
+ <kcfg>
+ <kcfgfile name="compizrc">
+ <parameter name="screen"/>
+ </kcfgfile>
+ <xsl:for-each select="/compiz/*/display | /compiz/*/screen">
+ <group>
+ <xsl:variable name="group">
+ <xsl:choose>
+ <xsl:when test="ancestor::plugin">
+ <xsl:value-of select="ancestor::plugin/@name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>core</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:attribute name='name'>
+ <xsl:value-of select="$group"/>
+ <xsl:if test="name() = 'screen'">
+ <xsl:text>$(screen)</xsl:text>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:for-each select="option[not(@read_only='true') and not(@type='action')]">
+ <xsl:call-template name="print_option">
+ <xsl:with-param name="group" select="$group"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </group>
+ </xsl:for-each>
+ </kcfg>
+ </xsl:template>
+
+ <xsl:template name="print_option">
+ <xsl:param name="group"/>
+ <entry>
+ <xsl:variable name="ktype">
+ <xsl:call-template name="print_type"/>
+ </xsl:variable>
+ <xsl:attribute name='name'>
+ <xsl:value-of select="$group"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name='key'>
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name='type'>
+ <xsl:value-of select="$ktype"/>
+ </xsl:attribute>
+ <label><xsl:value-of select="short[not(@xml:lang)]/text()"/></label>
+ <whatsthis>
+ <xsl:value-of select="long[not(@xml:lang)]/text()"/>
+ <xsl:if test="$ktype = 'Int'">
+ <xsl:call-template name="print_info"/>
+ </xsl:if>
+ </whatsthis>
+ <xsl:choose>
+ <xsl:when test="@type = 'color'">
+ <default>
+ <xsl:choose>
+ <xsl:when test="default">
+ <xsl:for-each select="default[1]">
+ <xsl:call-template name="print_color"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>#000000ff</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </default>
+ </xsl:when>
+ <xsl:when test="@type = 'edge'">
+ <default>
+ <xsl:for-each select="default[1]">
+ <xsl:call-template name="print_edge_list"/>
+ </xsl:for-each>
+ </default>
+ </xsl:when>
+ <xsl:when test="$ktype = 'IntList' or $ktype = 'StringList'">
+ <default>
+ <xsl:choose>
+ <xsl:when test="@type = 'color'">
+ <xsl:for-each select="default[1]">
+ <xsl:call-template name="print_color_list"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="default[1]">
+ <xsl:call-template name="print_value_list"/>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </default>
+ </xsl:when>
+ <xsl:otherwise>
+ <default>
+ <xsl:if test="default/text()">
+ <xsl:value-of select="default/text()"/>
+ </xsl:if>
+ </default>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="contains('Int,Double', $ktype)">
+ <xsl:if test="min/text()">
+ <min><xsl:value-of select="min/text()"/></min>
+ </xsl:if>
+ <xsl:if test="max/text()">
+ <max><xsl:value-of select="max/text()"/></max>
+ </xsl:if>
+ </xsl:if>
+ </entry>
+ </xsl:template>
+
+ <xsl:template name="print_type">
+ <xsl:param name="type">
+ <xsl:value-of select="@type"/>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="$type = 'bool'">
+ <xsl:text>Bool</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'int'">
+ <xsl:text>Int</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'float'">
+ <xsl:text>Double</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'bell'">
+ <xsl:text>Bool</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'list'">
+ <xsl:choose>
+ <xsl:when test="type/text() = 'int'">
+ <xsl:text>Int</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>String</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>List</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>String</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="print_info">
+ <xsl:variable name="info">
+ <xsl:text> (</xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains('int,float',@type) and not(desc/value/text())">
+ <xsl:value-of select="min/text()"/> - <xsl:value-of select="max/text()"/>
+ </xsl:when>
+ <xsl:when test="@type='int' and desc/value/text()">
+ <xsl:call-template name="print_int_desc_list"/>
+ </xsl:when>
+ <xsl:when test="@type = 'match'">
+ <xsl:text>match</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>)</xsl:text>
+ </xsl:variable>
+ <xsl:if test="not(contains($info,' ()'))">
+ <xsl:value-of select="$info"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="print_int_desc_list">
+ <xsl:variable name="list">
+ <xsl:for-each select="desc">
+ <xsl:value-of select="value/text()"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="name/text()"/>
+ <xsl:text>, </xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 2)"/>
+ </xsl:template>
+
+ <xsl:template name="print_value_list">
+ <xsl:variable name="list">
+ <xsl:for-each select="value">
+ <xsl:value-of select="text()"/>
+ <xsl:text>,</xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 1)"/>
+ </xsl:template>
+
+ <xsl:template name="print_color_list">
+ <xsl:variable name="list">
+ <xsl:for-each select="value">
+ <xsl:call-template name="print_color"/>
+ <xsl:text>,</xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 1)"/>
+ </xsl:template>
+
+ <!--
+ generates the #00aabbcc color value out of the compiz
+ metadata color description
+ -->
+ <xsl:template name="print_color">
+ <xsl:variable name="red">
+ <xsl:call-template name="get_hex_num">
+ <xsl:with-param name="value" select="red/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="green">
+ <xsl:call-template name="get_hex_num">
+ <xsl:with-param name="value" select="green/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="blue">
+ <xsl:call-template name="get_hex_num">
+ <xsl:with-param name="value" select="blue/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="alpha">
+ <xsl:choose>
+ <xsl:when test="alpha/text()">
+ <xsl:call-template name="get_hex_num">
+ <xsl:with-param name="value" select="alpha/text()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>ff</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',concat($red,concat($green,concat($blue,$alpha))))"/>
+ </xsl:template>
+
+ <!--
+ converts a decimal number in the range of 0-65535 or
+ a hex number in the range of 0x0000 - 0xffff to a hex number in the
+ range of 00 - ff
+ -->
+ <xsl:template name="get_hex_num">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($value,'0x')">
+ <xsl:variable name="number">
+ <xsl:text>0000</xsl:text>
+ <xsl:value-of select="substring-after($value,'0x')"/>
+ </xsl:variable>
+ <xsl:value-of select="substring(concat('000',$number),string-length($number),2)"/>
+ </xsl:when>
+ <xsl:when test="string-length($value)">
+ <xsl:variable name="number">
+ <xsl:call-template name="to_hex">
+ <xsl:with-param name="decimal_number" select="$value"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring(concat('000',$number),string-length($number),2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>00</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- converts a decimal number to a hex number -->
+ <xsl:variable name="hex_digits" select="'0123456789abcdef'"/>
+
+ <xsl:template name="to_hex">
+ <xsl:param name="decimal_number"/>
+ <xsl:if test="$decimal_number >= 16">
+ <xsl:call-template name="to_hex">
+ <xsl:with-param name="decimal_number" select="floor($decimal_number div 16)" />
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:value-of select="substring($hex_digits, ($decimal_number mod 16) + 1, 1)" />
+ </xsl:template>
+
+ <xsl:template name="print_edge_list">
+ <xsl:variable name="list">
+ <xsl:for-each select="edge">
+ <xsl:value-of select="@name"/>
+ <xsl:text> | </xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 3)"/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/metadata/kconfig.xml.in b/metadata/kconfig.xml.in
new file mode 100644
index 0000000..bb59ef3
--- /dev/null
+++ b/metadata/kconfig.xml.in
@@ -0,0 +1,6 @@
+<compiz>
+ <plugin name="kconfig">
+ <_short>Kconfig</_short>
+ <_long>Kconfig Control Backend</_long>
+ </plugin>
+</compiz>
diff --git a/metadata/kconfig.xslt b/metadata/kconfig.xslt
new file mode 100644
index 0000000..31384c3
--- /dev/null
+++ b/metadata/kconfig.xslt
@@ -0,0 +1,59 @@
+<!--
+ Copyright © 2007 Novell, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software
+ and its documentation for any purpose is hereby granted without
+ fee, provided that the above copyright notice appear in all copies
+ and that both that copyright notice and this permission notice
+ appear in supporting documentation, and that the name of
+ Novell, Inc. not be used in advertising or publicity pertaining to
+ distribution of the software without specific, written prior permission.
+ Novell, Inc. makes no representations about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+
+ NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ Author: David Reveman <davidr@novell.com>
+ -->
+
+<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+
+<xsl:output method="text"/>
+
+<xsl:template match="/kcfg">
+ <xsl:for-each select="/kcfg/group">
+ <xsl:variable name="prefix">
+ <xsl:value-of select="substring(@name,1,string-length(@name) - 9)"/>
+ </xsl:variable>
+ <xsl:variable name="suffix">
+ <xsl:value-of select="substring(@name,string-length(@name) - 8,string-length(@name))"/>
+ </xsl:variable>
+ <xsl:text>[</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$suffix = '$(screen)'">
+ <xsl:value-of select="$prefix"/>
+ <xsl:value-of select="$screen"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>]&#10;</xsl:text>
+ <xsl:for-each select="entry">
+ <xsl:value-of select="@key"/>
+ <xsl:text>=</xsl:text>
+ <xsl:value-of select="default/text()"/>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>&#10;</xsl:text>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/metadata/minimize.xml.in b/metadata/minimize.xml.in
new file mode 100644
index 0000000..4284804
--- /dev/null
+++ b/metadata/minimize.xml.in
@@ -0,0 +1,44 @@
+<compiz>
+ <plugin name="minimize">
+ <_short>Minimize Effect</_short>
+ <_long>Transform windows when they are minimized and unminimized</_long>
+ <category>Effects</category>
+ <feature>windowanimations</feature>
+ <deps>
+ <relation type="before">
+ <plugin>cube</plugin>
+ <plugin>scale</plugin>
+ </relation>
+ </deps>
+ <screen>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Minimize speed</_long>
+ <default>1.5</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Minimize timestep</_long>
+ <default>0.5</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="window_match" type="match">
+ <_short>Minimize Windows</_short>
+ <_long>Windows that should be transformed when minimized</_long>
+ <default>toolbar | utility | dialog | normal</default>
+ </option>
+ <option name="shade_resistance" type="int">
+ <_short>Shade Resistance</_short>
+ <_long>Shade resistance</_long>
+ <default>75</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/move.xml.in b/metadata/move.xml.in
new file mode 100644
index 0000000..7f94f27
--- /dev/null
+++ b/metadata/move.xml.in
@@ -0,0 +1,41 @@
+<compiz>
+ <plugin name="move">
+ <_short>Move Window</_short>
+ <_long>Move window</_long>
+ <category>Window Management</category>
+ <display>
+ <option name="initiate_button" type="button">
+ <_short>Initiate Window Move</_short>
+ <_long>Start moving window</_long>
+ <default>&lt;Alt&gt;Button1</default>
+ </option>
+ <option name="initiate_key" type="key">
+ <_short>Initiate Window Move</_short>
+ <_long>Start moving window</_long>
+ <default>&lt;Alt&gt;F7</default>
+ </option>
+ <option name="opacity" type="int">
+ <_short>Opacity</_short>
+ <_long>Opacity level of moving windows</_long>
+ <default>100</default>
+ <min>1</min>
+ <max>100</max>
+ </option>
+ <option name="constrain_y" type="bool">
+ <_short>Constrain Y</_short>
+ <_long>Constrain Y coordinate to workspace area</_long>
+ <default>true</default>
+ </option>
+ <option name="snapoff_maximized" type="bool">
+ <_short>Snapoff maximized windows</_short>
+ <_long>Snapoff and auto unmaximized maximized windows when dragging</_long>
+ <default>true</default>
+ </option>
+ <option name="lazy_positioning" type="bool">
+ <_short>Lazy Positioning</_short>
+ <_long>Do not update the server-side position of windows until finished moving</_long>
+ <default>true</default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/obs.xml.in b/metadata/obs.xml.in
new file mode 100644
index 0000000..dc5bbc2
--- /dev/null
+++ b/metadata/obs.xml.in
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<compiz>
+ <plugin name="obs">
+ <_short>Opacity, Brightness and Saturation</_short>
+ <_long>Opacity, Brightness and Saturation adjustments</_long>
+ <category>Accessibility</category>
+ <deps>
+ <relation type="after">
+ <plugin>decoration</plugin>
+ <plugin>blur</plugin>
+ </relation>
+ </deps>
+ <display>
+ <group>
+ <_short>Opacity</_short>
+ <option name="opacity_increase_key" type="key">
+ <_short>Increase</_short>
+ <_long>Opacity Increase</_long>
+ <default/>
+ </option>
+ <option name="opacity_increase_button" type="button">
+ <_short>Increase</_short>
+ <_long>Opacity Increase</_long>
+ <default>&lt;Alt&gt;Button4</default>
+ </option>
+ <option name="opacity_decrease_key" type="key">
+ <_short>Decrease</_short>
+ <_long>Opacity Decrease</_long>
+ <default/>
+ </option>
+ <option name="opacity_decrease_button" type="button">
+ <_short>Decrease</_short>
+ <_long>Opacity Decrease</_long>
+ <default>&lt;Alt&gt;Button5</default>
+ </option>
+ </group>
+ <group>
+ <_short>Brightness</_short>
+ <option name="brightness_increase_key" type="key">
+ <_short>Increase</_short>
+ <_long>Brightness Increase</_long>
+ <default/>
+ </option>
+ <option name="brightness_increase_button" type="button">
+ <_short>Increase</_short>
+ <_long>Brightness Increase</_long>
+ <default/>
+ </option>
+ <option name="brightness_decrease_key" type="key">
+ <_short>Decrease</_short>
+ <_long>Brightness Decrease</_long>
+ <default/>
+ </option>
+ <option name="brightness_decrease_button" type="button">
+ <_short>Decrease</_short>
+ <_long>Brightness Decrease</_long>
+ <default/>
+ </option>
+ </group>
+ <group>
+ <_short>Saturation</_short>
+ <option name="saturation_increase_key" type="key">
+ <_short>Increase</_short>
+ <_long>Saturation Increase</_long>
+ <default/>
+ </option>
+ <option name="saturation_increase_button" type="button">
+ <_short>Increase</_short>
+ <_long>Saturation Increase</_long>
+ <default/>
+ </option>
+ <option name="saturation_decrease_key" type="key">
+ <_short>Decrease</_short>
+ <_long>Saturation Decrease</_long>
+ <default/>
+ </option>
+ <option name="saturation_decrease_button" type="button">
+ <_short>Decrease</_short>
+ <_long>Saturation Decrease</_long>
+ <default/>
+ </option>
+ </group>
+ </display>
+ <screen>
+ <group>
+ <_short>Opacity</_short>
+ <option name="opacity_step" type="int">
+ <_short>Step</_short>
+ <_long>Opacity Step</_long>
+ <min>1</min>
+ <max>10</max>
+ <default>5</default>
+ </option>
+ <subgroup>
+ <_short>Window specific settings</_short>
+ <option name="opacity_matches" type="list">
+ <_short>Windows</_short>
+ <_long>Windows that should have a different opacity by default</_long>
+ <type>match</type>
+ <default/>
+ </option>
+ <option name="opacity_values" type="list">
+ <_short>Window values</_short>
+ <_long>Opacity values for windows</_long>
+ <type>int</type>
+ <default/>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ </subgroup>
+ </group>
+ <group>
+ <_short>Brightness</_short>
+ <option name="brightness_step" type="int">
+ <_short>Step</_short>
+ <_long>Brightness Step</_long>
+ <min>1</min>
+ <max>10</max>
+ <default>5</default>
+ </option>
+ <subgroup>
+ <_short>Window specific settings</_short>
+ <option name="brightness_matches" type="list">
+ <_short>Windows</_short>
+ <_long>Windows that should have a different brightness by default</_long>
+ <type>match</type>
+ <default/>
+ </option>
+ <option name="brightness_values" type="list">
+ <_short>Window values</_short>
+ <_long>Brightness values for windows</_long>
+ <type>int</type>
+ <default/>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ </subgroup>
+ </group>
+ <group>
+ <_short>Saturation</_short>
+ <option type="int" name="saturation_step">
+ <_short>Step</_short>
+ <_long>Saturation Step</_long>
+ <min>1</min>
+ <max>10</max>
+ <default>5</default>
+ </option>
+ <subgroup>
+ <_short>Window specific settings</_short>
+ <option name="saturation_matches" type="list">
+ <_short>Windows</_short>
+ <_long>Windows that should have a different saturation by default</_long>
+ <type>match</type>
+ <default/>
+ </option>
+ <option name="saturation_values" type="list">
+ <_short>Window values</_short>
+ <_long>Saturation values for windows</_long>
+ <type>int</type>
+ <default/>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ </subgroup>
+ </group>
+ </screen>
+ </plugin>
+</compiz>
+
diff --git a/metadata/place.xml.in b/metadata/place.xml.in
new file mode 100644
index 0000000..317e0d3
--- /dev/null
+++ b/metadata/place.xml.in
@@ -0,0 +1,117 @@
+<compiz>
+ <plugin name="place">
+ <_short>Place Windows</_short>
+ <_long>Place windows at appropriate positions when mapped</_long>
+ <category>Window Management</category>
+ <screen>
+ <option name="workarounds" type="bool">
+ <_short>Workarounds</_short>
+ <_long>Window placement workarounds</_long>
+ <default>true</default>
+ </option>
+ <option name="mode" type="int">
+ <_short>Placement Mode</_short>
+ <_long>Algorithm to use for window placement</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>4</max>
+ <desc>
+ <value>0</value>
+ <_name>Cascade</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Centered</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Smart</_name>
+ </desc>
+ <desc>
+ <value>3</value>
+ <_name>Maximize</_name>
+ </desc>
+ <desc>
+ <value>4</value>
+ <_name>Random</_name>
+ </desc>
+ </option>
+ <option name="multioutput_mode" type="int">
+ <_short>Multi Output Mode</_short>
+ <_long>Selects how window placement should behave if multiple outputs are selected</_long>
+ <min>0</min>
+ <max>3</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>Use active output device</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Use output device with pointer</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Use output device of focussed window</_name>
+ </desc>
+ <desc>
+ <value>3</value>
+ <_name>Place across all outputs</_name>
+ </desc>
+ </option>
+ <option name="force_placement_match" type="match">
+ <_short>Force Placement Windows</_short>
+ <_long>Windows that should forcedly be placed, even if they indicate the window manager should avoid placing them.</_long>
+ <default></default>
+ </option>
+ <group>
+ <_short>Fixed Window Placement</_short>
+ <subgroup>
+ <_short>Windows with fixed positions</_short>
+ <option name="position_matches" type="list">
+ <_short>Positioned windows</_short>
+ <_long>Windows that should be positioned by default</_long>
+ <type>match</type>
+ </option>
+ <option name="position_x_values" type="list">
+ <_short>X Positions</_short>
+ <_long>X position values</_long>
+ <type>int</type>
+ </option>
+ <option name="position_y_values" type="list">
+ <_short>Y Positions</_short>
+ <_long>Y position values</_long>
+ <type>int</type>
+ </option>
+ <option name="position_constrain_workarea" type="list">
+ <_short>Keep In Workarea</_short>
+ <_long>Keep placed window in work area, even if that means that the position might differ from the specified position</_long>
+ <type>bool</type>
+ </option>
+ </subgroup>
+ <subgroup>
+ <_short>Windows with fixed viewport</_short>
+ <option name="viewport_matches" type="list">
+ <_short>Viewport positioned windows</_short>
+ <_long>Windows that should be positioned in specific viewports by default</_long>
+ <type>match</type>
+ </option>
+ <option name="viewport_x_values" type="list">
+ <_short>X Viewport Positions</_short>
+ <_long>Horizontal viewport positions</_long>
+ <type>int</type>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ <option name="viewport_y_values" type="list">
+ <_short>Y Viewport Positions</_short>
+ <_long>Vertical viewport positions</_long>
+ <type>int</type>
+ <min>1</min>
+ <max>32</max>
+ </option>
+ </subgroup>
+ </group>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/png.xml.in b/metadata/png.xml.in
new file mode 100644
index 0000000..e452b91
--- /dev/null
+++ b/metadata/png.xml.in
@@ -0,0 +1,9 @@
+<compiz>
+ <plugin name="png">
+ <_short>Png</_short>
+ <_long>Png image loader</_long>
+ <category>Image Loading</category>
+ <feature>imageext:png</feature>
+ <feature>imagemime:image/png</feature>
+ </plugin>
+</compiz>
diff --git a/metadata/regex.xml.in b/metadata/regex.xml.in
new file mode 100644
index 0000000..31dbd8d
--- /dev/null
+++ b/metadata/regex.xml.in
@@ -0,0 +1,7 @@
+<compiz>
+ <plugin name="regex">
+ <_short>Regex Matching</_short>
+ <_long>Regex window matching</_long>
+ <category>Utility</category>
+ </plugin>
+</compiz>
diff --git a/metadata/resize.xml.in b/metadata/resize.xml.in
new file mode 100644
index 0000000..8c180aa
--- /dev/null
+++ b/metadata/resize.xml.in
@@ -0,0 +1,105 @@
+<compiz>
+ <plugin name="resize">
+ <_short>Resize Window</_short>
+ <_long>Resize window</_long>
+ <category>Window Management</category>
+ <display>
+ <group>
+ <_short>Bindings</_short>
+ <option name="initiate_normal_key" type="key">
+ <_short>Initiate Normal Window Resize</_short>
+ <_long>Start resizing window normally</_long>
+ <default/>
+ </option>
+ <option name="initiate_outline_key" type="key">
+ <_short>Initiate Outline Window Resize</_short>
+ <_long>Start resizing window with outline</_long>
+ <default/>
+ </option>
+ <option name="initiate_rectangle_key" type="key">
+ <_short>Initiate Rectangle Window Resize</_short>
+ <_long>Start resizing window with rectangle</_long>
+ <default/>
+ </option>
+ <option name="initiate_stretch_key" type="key">
+ <_short>Initiate Stretch Window Resize</_short>
+ <_long>Start resizing window by stretching it</_long>
+ <default/>
+ </option>
+ <option name="initiate_button" type="button">
+ <_short>Initiate Window Resize</_short>
+ <_long>Start resizing window</_long>
+ <default>&lt;Alt&gt;Button2</default>
+ </option>
+ <option name="initiate_key" type="key">
+ <_short>Initiate Window Resize</_short>
+ <_long>Start resizing window</_long>
+ <default>&lt;Alt&gt;F8</default>
+ </option>
+ </group>
+ <option name="mode" type="int">
+ <_short>Default Resize Mode</_short>
+ <_long>Default mode used for window resizing</_long>
+ <default>0</default>
+ <min>0</min>
+ <max>3</max>
+ <desc>
+ <value>0</value>
+ <_name>Normal</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Outline</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Rectangle</_name>
+ </desc>
+ <desc>
+ <value>3</value>
+ <_name>Stretch</_name>
+ </desc>
+ </option>
+ <option name="border_color" type="color">
+ <_short>Border Color</_short>
+ <_long>Border color used for outline and rectangle resize modes</_long>
+ <default>
+ <red>0x2f2f</red>
+ <green>0x2f2f</green>
+ <blue>0x4f4f</blue>
+ <alpha>0x9f9f</alpha>
+ </default>
+ </option>
+ <option name="fill_color" type="color">
+ <_short>Fill Color</_short>
+ <_long>Fill color used for rectangle resize mode</_long>
+ <default>
+ <red>0x2f2f</red>
+ <green>0x2f2f</green>
+ <blue>0x4f4f</blue>
+ <alpha>0x4f4f</alpha>
+ </default>
+ </option>
+ <option name="normal_match" type="match">
+ <_short>Normal Resize Windows</_short>
+ <_long>Windows that normal resize should be used for</_long>
+ <default/>
+ </option>
+ <option name="outline_match" type="match">
+ <_short>Outline Resize Windows</_short>
+ <_long>Windows that outline resize should be used for</_long>
+ <default/>
+ </option>
+ <option name="rectangle_match" type="match">
+ <_short>Rectangle Resize Windows</_short>
+ <_long>Windows that rectangle resize should be used for</_long>
+ <default/>
+ </option>
+ <option name="stretch_match" type="match">
+ <_short>Stretch Resize Windows</_short>
+ <_long>Windows that stretch resize should be used for</_long>
+ <default/>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/rotate.xml.in b/metadata/rotate.xml.in
new file mode 100644
index 0000000..e57449a
--- /dev/null
+++ b/metadata/rotate.xml.in
@@ -0,0 +1,276 @@
+<compiz>
+ <plugin name="rotate">
+ <_short>Rotate Cube</_short>
+ <_long>Rotate desktop cube</_long>
+ <category>Desktop</category>
+ <deps>
+ <requirement>
+ <plugin>cube</plugin>
+ </requirement>
+ <relation type="after">
+ <plugin>cube</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="edge_flip_pointer" type="bool">
+ <_short>Edge Flip Pointer</_short>
+ <_long>Flip to next viewport when moving pointer to screen edge</_long>
+ <default>false</default>
+ </option>
+ <option name="edge_flip_window" type="bool">
+ <_short>Edge Flip Move</_short>
+ <_long>Flip to next viewport when moving window to screen edge</_long>
+ <default>true</default>
+ </option>
+ <option name="edge_flip_dnd" type="bool">
+ <_short>Edge Flip DnD</_short>
+ <_long>Flip to next viewport when dragging object to screen edge</_long>
+ <default>true</default>
+ </option>
+ <option name="flip_time" type="int">
+ <_short>Flip Time</_short>
+ <_long>Timeout before flipping viewport</_long>
+ <default>350</default>
+ <min>0</min>
+ <max>1000</max>
+ </option>
+ <option name="raise_on_rotate" type="bool">
+ <_short>Raise on rotate</_short>
+ <_long>Raise window when rotating</_long>
+ <default>false</default>
+ </option>
+ <group>
+ <_short>Bindings</_short>
+ <subgroup>
+ <_short>Rotate cube</_short>
+ <option name="initiate_button" type="button">
+ <_short>Initiate</_short>
+ <_long>Start Rotation</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;Button1</default>
+ </option>
+ <option name="rotate_left_key" type="key">
+ <_short>Rotate Left</_short>
+ <_long>Rotate left</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;Left</default>
+ </option>
+ <option name="rotate_left_button" type="button">
+ <_short>Rotate Left</_short>
+ <_long>Rotate left</_long>
+ </option>
+ <option name="rotate_right_key" type="key">
+ <_short>Rotate Right</_short>
+ <_long>Rotate right</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;Right</default>
+ </option>
+ <option name="rotate_right_button" type="button">
+ <_short>Rotate Right</_short>
+ <_long>Rotate right</_long>
+ </option>
+ <option name="rotate_left_window_key" type="key">
+ <_short>Rotate Left with Window</_short>
+ <_long>Rotate left and bring active window along</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;&lt;Shift&gt;Left</default>
+ </option>
+ <option name="rotate_left_window_button" type="button">
+ <_short>Rotate Left with Window</_short>
+ <_long>Rotate left and bring active window along</_long>
+ </option>
+ <option name="rotate_right_window_key" type="key">
+ <_short>Rotate Right with Window</_short>
+ <_long>Rotate right and bring active window along</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;&lt;Shift&gt;Right</default>
+ </option>
+ <option name="rotate_right_window_button" type="button">
+ <_short>Rotate Right with Window</_short>
+ <_long>Rotate right and bring active window along</_long>
+ </option>
+ <option name="rotate_to_key" type="key">
+ <_short>Rotate To</_short>
+ <_long>Rotate to viewport</_long>
+ </option>
+ <option name="rotate_window_key" type="key">
+ <_short>Rotate window</_short>
+ <_long>Rotate with window</_long>
+ </option>
+ <option name="rotate_flip_left_edge" type="edge">
+ <_short>Rotate Flip Left</_short>
+ <_long>Flip to left viewport and warp pointer</_long>
+ <nodelay>true</nodelay>
+ <allowed edgednd="true"/>
+ <default>
+ <edge name="Left"/>
+ </default>
+ </option>
+ <option name="rotate_flip_right_edge" type="edge">
+ <_short>Rotate Flip Right</_short>
+ <_long>Flip to right viewport and warp pointer</_long>
+ <nodelay>true</nodelay>
+ <allowed edgednd="true"/>
+ <default>
+ <edge name="Right"/>
+ </default>
+ </option>
+ </subgroup>
+ <subgroup>
+ <_short>Rotate to cube face</_short>
+ <option name="rotate_to_1_key" type="key">
+ <_short>Rotate To Face 1</_short>
+ <_long>Rotate to face 1</_long>
+ </option>
+ <option name="rotate_to_2_key" type="key">
+ <_short>Rotate To Face 2</_short>
+ <_long>Rotate to face 2</_long>
+ </option>
+ <option name="rotate_to_3_key" type="key">
+ <_short>Rotate To Face 3</_short>
+ <_long>Rotate to face 3</_long>
+ </option>
+ <option name="rotate_to_4_key" type="key">
+ <_short>Rotate To Face 4</_short>
+ <_long>Rotate to face 4</_long>
+ </option>
+ <option name="rotate_to_5_key" type="key">
+ <_short>Rotate To Face 5</_short>
+ <_long>Rotate to face 5</_long>
+ </option>
+ <option name="rotate_to_6_key" type="key">
+ <_short>Rotate To Face 6</_short>
+ <_long>Rotate to face 6</_long>
+ </option>
+ <option name="rotate_to_7_key" type="key">
+ <_short>Rotate To Face 7</_short>
+ <_long>Rotate to face 7</_long>
+ </option>
+ <option name="rotate_to_8_key" type="key">
+ <_short>Rotate To Face 8</_short>
+ <_long>Rotate to face 8</_long>
+ </option>
+ <option name="rotate_to_9_key" type="key">
+ <_short>Rotate To Face 9</_short>
+ <_long>Rotate to face 9</_long>
+ </option>
+ <option name="rotate_to_10_key" type="key">
+ <_short>Rotate To Face 10</_short>
+ <_long>Rotate to face 10</_long>
+ </option>
+ <option name="rotate_to_11_key" type="key">
+ <_short>Rotate To Face 11</_short>
+ <_long>Rotate to face 11</_long>
+ </option>
+ <option name="rotate_to_12_key" type="key">
+ <_short>Rotate To Face 12</_short>
+ <_long>Rotate to face 12</_long>
+ </option>
+ </subgroup>
+ <subgroup>
+ <_short>Rotate to cube face with window</_short>
+ <option name="rotate_to_1_window_key" type="key">
+ <_short>Rotate To Face 1 with Window</_short>
+ <_long>Rotate to face 1 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_2_window_key" type="key">
+ <_short>Rotate To Face 2 with Window</_short>
+ <_long>Rotate to face 2 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_3_window_key" type="key">
+ <_short>Rotate To Face 3 with Window</_short>
+ <_long>Rotate to face 3 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_4_window_key" type="key">
+ <_short>Rotate To Face 4 with Window</_short>
+ <_long>Rotate to face 4 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_5_window_key" type="key">
+ <_short>Rotate To Face 5 with Window</_short>
+ <_long>Rotate to face 5 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_6_window_key" type="key">
+ <_short>Rotate To Face 6 with Window</_short>
+ <_long>Rotate to face 6 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_7_window_key" type="key">
+ <_short>Rotate To Face 7 with Window</_short>
+ <_long>Rotate to face 7 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_8_window_key" type="key">
+ <_short>Rotate To Face 8 with Window</_short>
+ <_long>Rotate to face 8 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_9_window_key" type="key">
+ <_short>Rotate To Face 9 with Window</_short>
+ <_long>Rotate to face 9 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_10_window_key" type="key">
+ <_short>Rotate To Face 10 with Window</_short>
+ <_long>Rotate to face 10 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_11_window_key" type="key">
+ <_short>Rotate To Face 11 with Window</_short>
+ <_long>Rotate to face 11 and bring active window along</_long>
+ </option>
+ <option name="rotate_to_12_window_key" type="key">
+ <_short>Rotate To Face 12 with Window</_short>
+ <_long>Rotate to face 12 and bring active window along</_long>
+ </option>
+ </subgroup>
+ </group>
+ </display>
+ <screen>
+ <option name="invert_y" type="bool">
+ <_short>Pointer Invert Y</_short>
+ <_long>Invert Y axis for pointer movement</_long>
+ <default>false</default>
+ </option>
+ <option name="sensitivity" type="float">
+ <_short>Pointer Sensitivity</_short>
+ <_long>Sensitivity of pointer movement</_long>
+ <default>1.0</default>
+ <min>0.01</min>
+ <max>100.0</max>
+ <precision>0.01</precision>
+ </option>
+ <option name="acceleration" type="float">
+ <_short>Acceleration</_short>
+ <_long>Rotation Acceleration</_long>
+ <default>4.0</default>
+ <min>1.0</min>
+ <max>20.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="snap_top" type="bool">
+ <_short>Snap To Top Face</_short>
+ <_long>Snap Cube Rotation to Top Face</_long>
+ <default>false</default>
+ </option>
+ <option name="snap_bottom" type="bool">
+ <_short>Snap To Bottom Face</_short>
+ <_long>Snap Cube Rotation to Bottom Face</_long>
+ <default>false</default>
+ </option>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Rotation Speed</_long>
+ <default>2.0</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Rotation Timestep</_long>
+ <default>1.0</default>
+ <min>0.1</min>
+ <max>50.0</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="zoom" type="float">
+ <_short>Zoom</_short>
+ <_long>Rotation Zoom</_long>
+ <default>0.0</default>
+ <min>0.0</min>
+ <max>2.0</max>
+ <precision>0.1</precision>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/scale.xml.in b/metadata/scale.xml.in
new file mode 100644
index 0000000..c4266ec
--- /dev/null
+++ b/metadata/scale.xml.in
@@ -0,0 +1,183 @@
+<compiz>
+ <plugin name="scale">
+ <_short>Scale</_short>
+ <_long>Scale windows</_long>
+ <category>Window Management</category>
+ <deps>
+ <relation type="after">
+ <plugin>fade</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="abi" type="int" read_only="true"/>
+ <option name="index" type="int" read_only="true"/>
+ <option name="relayout_slots" type="action" read_only="true"/>
+ <group>
+ <_short>Bindings</_short>
+ <option name="key_bindings_toggle" type="bool">
+ <_short>Key Bindings Toggle Scale Mode</_short>
+ <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+ <default>false</default>
+ </option>
+ <option name="button_bindings_toggle" type="bool">
+ <_short>Button Bindings Toggle Scale Mode</_short>
+ <_long>Button bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+ <default>false</default>
+ </option>
+ <option name="initiate_edge" type="edge">
+ <_short>Initiate Window Picker</_short>
+ <_long>Layout and start transforming windows</_long>
+ <default>
+ <edge name="TopRight"/>
+ </default>
+ <allowed edgednd="true"/>
+ </option>
+ <option name="initiate_key" type="key">
+ <_short>Initiate Window Picker</_short>
+ <_long>Layout and start transforming windows</_long>
+ <default>&lt;Shift&gt;&lt;Alt&gt;Up</default>
+ </option>
+ <option name="initiate_button" type="button">
+ <_short>Initiate Window Picker</_short>
+ <_long>Layout and start transforming windows</_long>
+ </option>
+ <option name="initiate_all_edge" type="edge">
+ <_short>Initiate Window Picker For All Windows</_short>
+ <_long>Layout and start transforming all windows</_long>
+ <allowed edgednd="true"/>
+ </option>
+ <option name="initiate_all_button" type="button">
+ <_short>Initiate Window Picker For All Windows</_short>
+ <_long>Layout and start transforming all windows</_long>
+ </option>
+ <option name="initiate_all_key" type="key">
+ <_short>Initiate Window Picker For All Windows</_short>
+ <_long>Layout and start transforming all windows</_long>
+ </option>
+ <option name="initiate_group_edge" type="edge">
+ <_short>Initiate Window Picker For Window Group</_short>
+ <_long>Layout and start transforming window group</_long>
+ <allowed edgednd="true"/>
+ </option>
+ <option name="initiate_group_button" type="button">
+ <_short>Initiate Window Picker For Window Group</_short>
+ <_long>Layout and start transforming window group</_long>
+ </option>
+ <option name="initiate_group_key" type="key">
+ <_short>Initiate Window Picker For Window Group</_short>
+ <_long>Layout and start transforming window group</_long>
+ </option>
+ <option name="initiate_output_edge" type="edge">
+ <_short>Initiate Window Picker For Windows on Current Output</_short>
+ <_long>Layout and start transforming windows on current output</_long>
+ <allowed edgednd="true"/>
+ </option>
+ <option name="initiate_output_button" type="button">
+ <_short>Initiate Window Picker For Windows on Current Output</_short>
+ <_long>Layout and start transforming windows on current output</_long>
+ </option>
+ <option name="initiate_output_key" type="key">
+ <_short>Initiate Window Picker For Windows on Current Output</_short>
+ <_long>Layout and start transforming windows on current output</_long>
+ </option>
+ </group>
+ <group>
+ <_short>Behaviour</_short>
+ <option name="show_desktop" type="bool">
+ <_short>Click Desktop to Show Desktop</_short>
+ <_long>Enter Show Desktop mode when Desktop is clicked during Scale</_long>
+ <default>true</default>
+ </option>
+ </group>
+ </display>
+ <screen>
+ <group>
+ <_short>Appearance</_short>
+ <option name="spacing" type="int">
+ <_short>Spacing</_short>
+ <_long>Space between windows</_long>
+ <default>10</default>
+ <min>0</min>
+ <max>250</max>
+ </option>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Scale speed</_long>
+ <default>1.5</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Scale timestep</_long>
+ <default>1.2</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="darken_back" type="bool">
+ <_short>Darken Background</_short>
+ <_long>Darken background when scaling windows</_long>
+ <default>true</default>
+ </option>
+ <option name="opacity" type="int">
+ <_short>Opacity</_short>
+ <_long>Amount of opacity in percent</_long>
+ <default>75</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="overlay_icon" type="int">
+ <_short>Overlay Icon</_short>
+ <_long>Overlay an icon on windows once they are scaled</_long>
+ <min>0</min>
+ <max>2</max>
+ <default>1</default>
+ <desc>
+ <value>0</value>
+ <_name>None</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Emblem</_name>
+ </desc>
+ <desc>
+ <value>2</value>
+ <_name>Big</_name>
+ </desc>
+ </option>
+ </group>
+ <group>
+ <_short>Behaviour</_short>
+ <option name="window_match" type="match">
+ <_short>Scale Windows</_short>
+ <_long>Windows that should be scaled in scale mode</_long>
+ <default>Toolbar | Utility | Dialog | Normal | Unknown</default>
+ </option>
+ <option name="hover_time" type="int">
+ <_short>Hover Time</_short>
+ <_long>Time (in ms) before scale mode is terminated when hovering over a window</_long>
+ <default>750</default>
+ <min>50</min>
+ <max>10000</max>
+ </option>
+ <option name="multioutput_mode" type="int">
+ <_short>Multi Output Mode</_short>
+ <_long>Selects where windows are scaled if multiple output devices are used.</_long>
+ <min>0</min>
+ <max>1</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>On current output device</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>On all output devices</_name>
+ </desc>
+ </option>
+ </group>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/schemas.xslt b/metadata/schemas.xslt
new file mode 100644
index 0000000..141eb93
--- /dev/null
+++ b/metadata/schemas.xslt
@@ -0,0 +1,419 @@
+<!--
+ Copyright © 2007 Dennis Kasprzyk
+
+ Permission to use, copy, modify, distribute, and sell this software
+ and its documentation for any purpose is hereby granted without
+ fee, provided that the above copyright notice appear in all copies
+ and that both that copyright notice and this permission notice
+ appear in supporting documentation, and that the name of
+ Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ distribution of the software without specific, written prior permission.
+ Dennis Kasprzyk makes no representations about the suitability of this
+ software for any purpose. It is provided "as is" without express or
+ implied warranty.
+
+ DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ Authors: Dennis Kasprzyk <onestone@deltatauchi.de>
+-->
+
+<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:param name="appName">/apps/compiz</xsl:param>
+
+ <xsl:template match="/compiz">
+ <gconfschemafile>
+ <schemalist>
+ <xsl:for-each select="/compiz//option[not(@read_only='true') and not(@type='action')]">
+ <xsl:call-template name="dumpOption"/>
+ </xsl:for-each>
+ </schemalist>
+ </gconfschemafile>
+ </xsl:template>
+
+ <!-- generates the schema for an option -->
+ <xsl:template name="dumpOption">
+ <schema>
+ <key>/schemas<xsl:call-template name="printKey"/></key>
+ <applyto><xsl:call-template name="printKey"/></applyto>
+ <owner>compiz</owner>
+ <type><xsl:call-template name="printType"/></type>
+ <xsl:choose>
+ <!-- color values need a special handling -->
+ <xsl:when test="@type = 'color'">
+ <default>
+ <xsl:choose>
+ <xsl:when test="default">
+ <xsl:for-each select="default[1]">
+ <xsl:call-template name="printColor"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>#000000ff</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </default>
+ </xsl:when>
+ <xsl:when test="@type = 'edge'">
+ <default>
+ <xsl:call-template name="printEdgeList"/>
+ </default>
+ </xsl:when>
+ <xsl:when test="@type = 'list'">
+ <list_type>
+ <xsl:call-template name="printType">
+ <xsl:with-param name="type" select="type/text()"/>
+ </xsl:call-template>
+ </list_type>
+ <xsl:choose>
+ <xsl:when test="type/text() = 'color'">
+ <default>[<xsl:call-template name="printColorList"/>]</default>
+ </xsl:when>
+ <xsl:when test="@name = 'active_plugins'">
+ <default>[<xsl:value-of select="$defaultPlugins"/>]</default>
+ </xsl:when>
+ <xsl:otherwise>
+ <default>[<xsl:call-template name="printValueList"/>]</default>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- for most option types we can use the default value directly -->
+ <xsl:otherwise>
+ <default>
+ <xsl:choose>
+ <xsl:when test="default/text()">
+ <xsl:value-of select="default/text()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if no default value was specified we need to generate one -->
+ <xsl:choose>
+ <xsl:when test="contains('bool,bell',@type)">
+ <xsl:text>false</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type = 'int'">
+ <xsl:variable name="num">
+ <xsl:call-template name="printNumFallback"/>
+ </xsl:variable>
+ <xsl:value-of select="floor($num)"/>
+ </xsl:when>
+ <xsl:when test="@type = 'float'">
+ <xsl:call-template name="printNumFallback"/>
+ </xsl:when>
+ <xsl:when test="contains('key,button',@type)">
+ <xsl:text>Disabled</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </default>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- add the short and long descriptions -->
+ <xsl:call-template name="printDescription"/>
+ </schema>
+ </xsl:template>
+
+ <!-- converts a compiz type to a gconf type -->
+ <xsl:template name="printType">
+ <xsl:param name="type">
+ <xsl:value-of select="@type"/>
+ </xsl:param>
+ <xsl:choose>
+ <xsl:when test="$type = 'int'">
+ <xsl:text>int</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'float'">
+ <xsl:text>float</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'bool'">
+ <xsl:text>bool</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'list'">
+ <xsl:text>list</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'bell'">
+ <xsl:text>bool</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>string</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- prints the option long and short descriptions of an option -->
+ <xsl:template name="printDescription">
+ <xsl:param name="info">
+ <xsl:call-template name="printInfo"/>
+ </xsl:param>
+ <locale name="C">
+ <short><xsl:value-of select="short[not(@xml:lang)]/text()"/></short>
+ <long>
+ <xsl:value-of select="long[not(@xml:lang)]/text()"/>
+ <xsl:value-of select="$info"/>
+ </long>
+ </locale>
+ <xsl:for-each select="short[@xml:lang]">
+ <xsl:variable name="language" select="@xml:lang"/>
+ <xsl:variable name="infoTrans">
+ <xsl:call-template name="printInfoTrans">
+ <xsl:with-param name="language" select="$language"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <locale>
+ <xsl:attribute name='name'>
+ <xsl:value-of select="@xml:lang"/>
+ </xsl:attribute>
+ <short><xsl:value-of select="text()"/></short>
+ <long>
+ <xsl:choose>
+ <xsl:when test="parent::option/long[lang($language)]">
+ <xsl:value-of select="parent::option/long[lang($language)]/text()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="parent::option/long[not(@xml:lang)]/text()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$infoTrans"/>
+ </long>
+ </locale>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- generates the additional info for the long option description -->
+ <xsl:template name="printInfo">
+ <xsl:variable name="info">
+ <xsl:text> (</xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains('int,float',@type) and not(desc/value/text())">
+ <xsl:value-of select="min/text()"/> - <xsl:value-of select="max/text()"/>
+ </xsl:when>
+ <xsl:when test="@type='int' and desc/value/text()">
+ <xsl:call-template name="printIntDescList"/>
+ </xsl:when>
+ <xsl:when test="@type = 'match'">
+ <xsl:text>match</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>)</xsl:text>
+ </xsl:variable>
+ <xsl:if test="not(contains($info,' ()'))">
+ <xsl:value-of select="$info"/>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- generates a list of int descriptions -->
+ <xsl:template name="printIntDescList">
+ <xsl:variable name="list">
+ <xsl:for-each select="desc">
+ <xsl:value-of select="value/text()"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="name/text()"/>
+ <xsl:text>, </xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 2)"/>
+ </xsl:template>
+
+ <!-- generates the additional info for the long option description -->
+ <xsl:template name="printInfoTrans">
+ <xsl:param name="language"/>
+ <xsl:variable name="info">
+ <xsl:text> (</xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains('int,float',parent::option/@type) and not(parent::option/desc/value/text())">
+ <xsl:value-of select="parent::option/min/text()"/> - <xsl:value-of select="parent::option/max/text()"/>
+ </xsl:when>
+ <xsl:when test="parent::option/@type='int' and parent::option/desc/value/text()">
+ <xsl:call-template name="printIntDescListTrans">
+ <xsl:with-param name="language" select="$language"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="parent::option/@type = 'match'">
+ <xsl:text>match</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>)</xsl:text>
+ </xsl:variable>
+ <xsl:if test="not(contains($info,' ()'))">
+ <xsl:value-of select="$info"/>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- generates a list of int descriptions -->
+ <xsl:template name="printIntDescListTrans">
+ <xsl:param name="language"/>
+ <xsl:variable name="list">
+ <xsl:for-each select="parent::option/desc">
+ <xsl:value-of select="value/text()"/>
+ <xsl:text> = </xsl:text>
+ <xsl:choose>
+ <xsl:when test="name[lang($language)]/text()">
+ <xsl:value-of select="name[lang($language)]/text()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="name[not(@xml:lang)]/text()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>, </xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 2)"/>
+ </xsl:template>
+
+ <!-- generates a default number out of the min and max values -->
+ <xsl:template name="printNumFallback">
+ <xsl:choose>
+ <xsl:when test="max/text() and min/text()">
+ <xsl:value-of select="(max/text() + min/text()) div 2"/>
+ </xsl:when>
+ <xsl:when test="max/text() and not(min/text())">
+ <xsl:value-of select="max/text()"/>
+ </xsl:when>
+ <xsl:when test="not(max/text()) and min/text()">
+ <xsl:value-of select="min/text()"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- generates a list of values -->
+ <xsl:template name="printValueList">
+ <xsl:variable name="list">
+ <xsl:for-each select="default/value">
+ <xsl:value-of select="text()"/>
+ <xsl:text>,</xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 1)"/>
+ </xsl:template>
+
+ <!-- generates a list of color string values -->
+ <xsl:template name="printColorList">
+ <xsl:variable name="list">
+ <xsl:for-each select="default/value">
+ <xsl:call-template name="printColor"/>
+ <xsl:text>,</xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 1)"/>
+ </xsl:template>
+
+ <!--
+ generates the #00aabbcc color value out of the compiz
+ metadata color description
+ -->
+ <xsl:template name="printColor">
+ <xsl:variable name="red">
+ <xsl:call-template name="getHexNum">
+ <xsl:with-param name="value" select="red/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="green">
+ <xsl:call-template name="getHexNum">
+ <xsl:with-param name="value" select="green/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="blue">
+ <xsl:call-template name="getHexNum">
+ <xsl:with-param name="value" select="blue/text()"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="alpha">
+ <xsl:choose>
+ <xsl:when test="alpha/text()">
+ <xsl:call-template name="getHexNum">
+ <xsl:with-param name="value" select="alpha/text()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>ff</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',concat($red,concat($green,concat($blue,$alpha))))"/>
+ </xsl:template>
+
+ <!--
+ converts a decimal number in the range of 0-65535 or
+ a hex number in the range of 0x0000 - 0xffff to a hex number in the
+ range of 00 - ff
+ -->
+ <xsl:template name="getHexNum">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($value,'0x')">
+ <xsl:variable name="number">
+ <xsl:text>0000</xsl:text>
+ <xsl:value-of select="substring-after($value,'0x')"/>
+ </xsl:variable>
+ <xsl:value-of select="substring(concat('000',$number),string-length($number),2)"/>
+ </xsl:when>
+ <xsl:when test="string-length($value)">
+ <xsl:variable name="number">
+ <xsl:call-template name="toHex">
+ <xsl:with-param name="decimalNumber" select="$value"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring(concat('000',$number),string-length($number),2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>00</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- generates a list of selected edges -->
+ <xsl:template name="printEdgeList">
+ <xsl:variable name="list">
+ <xsl:for-each select="default/edge">
+ <xsl:value-of select="@name"/>
+ <xsl:text> | </xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="substring($list,1,string-length($list) - 3)"/>
+ </xsl:template>
+
+ <!-- prints the key path for an option -->
+ <xsl:template name="printKey">
+ <xsl:value-of select="$appName"/>
+ <xsl:choose>
+ <xsl:when test="ancestor::plugin">
+ <xsl:text>/plugins/</xsl:text>
+ <xsl:value-of select="ancestor::plugin/@name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>/general</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="ancestor::screen">
+ <xsl:text>/screen0/options/</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>/allscreens/options/</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="@name"/>
+ </xsl:template>
+
+ <!-- converts a decimal number to a hex number -->
+ <xsl:variable name="hexDigits" select="'0123456789abcdef'" />
+
+ <xsl:template name="toHex">
+ <xsl:param name="decimalNumber" />
+ <xsl:if test="$decimalNumber >= 16">
+ <xsl:call-template name="toHex">
+ <xsl:with-param name="decimalNumber" select="floor($decimalNumber div 16)" />
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:value-of select="substring($hexDigits, ($decimalNumber mod 16) + 1, 1)" />
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/metadata/screenshot.xml.in b/metadata/screenshot.xml.in
new file mode 100644
index 0000000..4664a34
--- /dev/null
+++ b/metadata/screenshot.xml.in
@@ -0,0 +1,24 @@
+<compiz>
+ <plugin name="screenshot">
+ <_short>Screenshot</_short>
+ <_long>Screenshot plugin</_long>
+ <category>Extras</category>
+ <display>
+ <option name="initiate_button" type="button">
+ <_short>Initiate</_short>
+ <_long>Initiate rectangle screenshot</_long>
+ <default>&lt;Super&gt;Button1</default>
+ </option>
+ <option name="directory" type="string">
+ <_short>Directory</_short>
+ <_long>Put screenshot images in this directory</_long>
+ <default>Desktop</default>
+ </option>
+ <option name="launch_app" type="string">
+ <_short>Launch Application</_short>
+ <_long>Automatically open screenshot in this application</_long>
+ <default></default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/svg.xml.in b/metadata/svg.xml.in
new file mode 100644
index 0000000..eb43596
--- /dev/null
+++ b/metadata/svg.xml.in
@@ -0,0 +1,9 @@
+<compiz>
+ <plugin name="svg">
+ <_short>Svg</_short>
+ <_long>Svg image loader</_long>
+ <category>Image Loading</category>
+ <feature>imageext:svg</feature>
+ <feature>imagemime:image/svg+xml</feature>
+ </plugin>
+</compiz>
diff --git a/metadata/switcher.xml.in b/metadata/switcher.xml.in
new file mode 100644
index 0000000..bfd2f07
--- /dev/null
+++ b/metadata/switcher.xml.in
@@ -0,0 +1,157 @@
+<compiz>
+ <plugin name="switcher">
+ <_short>Application Switcher</_short>
+ <_long>Application Switcher</_long>
+ <category>Window Management</category>
+ <display>
+ <group>
+ <_short>Bindings</_short>
+ <option name="next_button" type="button">
+ <_short>Next window</_short>
+ <_long>Popup switcher if not visible and select next window</_long>
+ </option>
+ <option name="next_key" type="key">
+ <_short>Next window</_short>
+ <_long>Popup switcher if not visible and select next window</_long>
+ <default>&lt;Alt&gt;Tab</default>
+ </option>
+ <option name="prev_button" type="button">
+ <_short>Prev window</_short>
+ <_long>Popup switcher if not visible and select previous window</_long>
+ </option>
+ <option name="prev_key" type="key">
+ <_short>Prev window</_short>
+ <_long>Popup switcher if not visible and select previous window</_long>
+ <default>&lt;Shift&gt;&lt;Alt&gt;Tab</default>
+ </option>
+ <option name="next_all_button" type="button">
+ <_short>Next window (All windows)</_short>
+ <_long>Popup switcher if not visible and select next window out of all windows</_long>
+ </option>
+ <option name="next_all_key" type="key">
+ <_short>Next window (All windows)</_short>
+ <_long>Popup switcher if not visible and select next window out of all windows</_long>
+ <default>&lt;Control&gt;&lt;Alt&gt;Tab</default>
+ </option>
+ <option name="prev_all_button" type="button">
+ <_short>Prev window (All windows)</_short>
+ <_long>Popup switcher if not visible and select previous window out of all windows</_long>
+ </option>
+ <option name="prev_all_key" type="key">
+ <_short>Prev window (All windows)</_short>
+ <_long>Popup switcher if not visible and select previous window out of all windows</_long>
+ <default>&lt;Shift&gt;&lt;Control&gt;&lt;Alt&gt;Tab</default>
+ </option>
+ <option name="next_no_popup_button" type="button">
+ <_short>Next window (No popup)</_short>
+ <_long>Select next window without showing the popup window.</_long>
+ </option>
+ <option name="next_no_popup_key" type="key">
+ <_short>Next window (No popup)</_short>
+ <_long>Select next window without showing the popup window.</_long>
+ </option>
+ <option name="prev_no_popup_button" type="button">
+ <_short>Prev window (No popup)</_short>
+ <_long>Select previous window without showing the popup window.</_long>
+ </option>
+ <option name="prev_no_popup_key" type="key">
+ <_short>Prev window (No popup)</_short>
+ <_long>Select previous window without showing the popup window.</_long>
+ </option>
+ <option name="next_panel_button" type="button">
+ <_short>Next Panel</_short>
+ <_long>Select next panel type window.</_long>
+ </option>
+ <option name="next_panel_key" type="key">
+ <_short>Next Panel</_short>
+ <_long>Select next panel type window.</_long>
+ </option>
+ <option name="prev_panel_button" type="button">
+ <_short>Prev Panel</_short>
+ <_long>Select previous panel type window.</_long>
+ </option>
+ <option name="prev_panel_key" type="key">
+ <_short>Prev Panel</_short>
+ <_long>Select previous panel type window.</_long>
+ </option>
+ </group>
+ </display>
+ <screen>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Switcher speed</_long>
+ <default>1.5</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Switcher timestep</_long>
+ <default>1.2</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="window_match" type="match">
+ <_short>Switcher windows</_short>
+ <_long>Windows that should be shown in switcher</_long>
+ <default>Toolbar | Utility | Dialog | Normal | Unknown</default>
+ </option>
+ <option name="mipmap" type="bool">
+ <_short>Mipmap</_short>
+ <_long>Generate mipmaps when possible for higher quality scaling</_long>
+ <default>true</default>
+ </option>
+ <option name="saturation" type="int">
+ <_short>Saturation</_short>
+ <_long>Amount of saturation in percent</_long>
+ <default>100</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="brightness" type="int">
+ <_short>Brightness</_short>
+ <_long>Amount of brightness in percent</_long>
+ <default>65</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="opacity" type="int">
+ <_short>Opacity</_short>
+ <_long>Amount of opacity in percent</_long>
+ <default>40</default>
+ <min>0</min>
+ <max>100</max>
+ </option>
+ <option name="bring_to_front" type="bool">
+ <_short>Bring To Front</_short>
+ <_long>Bring selected window to front</_long>
+ <default>true</default>
+ </option>
+ <option name="zoom" type="float">
+ <_short>Zoom</_short>
+ <_long>Distance desktop should be zoom out while switching windows</_long>
+ <default>1</default>
+ <min>0</min>
+ <max>5</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="icon" type="bool">
+ <_short>Icon</_short>
+ <_long>Show icon next to thumbnail</_long>
+ <default>true</default>
+ </option>
+ <option name="minimized" type="bool">
+ <_short>Minimized</_short>
+ <_long>Show minimized windows</_long>
+ <default>true</default>
+ </option>
+ <option name="auto_rotate" type="bool">
+ <_short>Auto Rotate</_short>
+ <_long>Rotate to the selected window while switching</_long>
+ <default>false</default>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/video.xml.in b/metadata/video.xml.in
new file mode 100644
index 0000000..aa8b532
--- /dev/null
+++ b/metadata/video.xml.in
@@ -0,0 +1,15 @@
+<compiz>
+ <plugin name="video">
+ <_short>Video Playback</_short>
+ <_long>Video playback</_long>
+ <category>Utility</category>
+ <feature>video</feature>
+ <display>
+ <option name="yv12" type="bool">
+ <_short>YV12 colorspace</_short>
+ <_long>Provide YV12 colorspace support</_long>
+ <default>true</default>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/water.xml.in b/metadata/water.xml.in
new file mode 100644
index 0000000..6374717
--- /dev/null
+++ b/metadata/water.xml.in
@@ -0,0 +1,58 @@
+<compiz>
+ <plugin name="water">
+ <_short>Water Effect</_short>
+ <_long>Adds water effects to different desktop actions</_long>
+ <category>Effects</category>
+ <deps>
+ <relation type="before">
+ <plugin>blur</plugin>
+ <plugin>video</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="initiate_key" type="key">
+ <_short>Initiate</_short>
+ <_long>Enable pointer water effects</_long>
+ <default>&lt;Control&gt;&lt;Super&gt;</default>
+ </option>
+ <option name="toggle_rain_key" type="key">
+ <_short>Toggle rain</_short>
+ <_long>Toggle rain effect</_long>
+ <default>&lt;Shift&gt;F9</default>
+ </option>
+ <option name="toggle_wiper_key" type="key">
+ <_short>Toggle wiper</_short>
+ <_long>Toggle wiper effect</_long>
+ <default>&lt;Shift&gt;F8</default>
+ </option>
+ <option name="offset_scale" type="float">
+ <_short>Offset Scale</_short>
+ <_long>Water offset scale</_long>
+ <default>1</default>
+ <min>0</min>
+ <max>10</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="rain_delay" type="int">
+ <_short>Rain Delay</_short>
+ <_long>Delay (in ms) between each rain-drop</_long>
+ <default>250</default>
+ <min>1</min>
+ <max>3600000</max>
+ </option>
+ <option name="title_wave" type="bell">
+ <_short>Title wave</_short>
+ <_long>Wave effect from window title</_long>
+ <default>false</default>
+ </option>
+ <option name="point" type="action">
+ <_short>Point</_short>
+ <_long>Add point</_long>
+ </option>
+ <option name="line" type="action">
+ <_short>Line</_short>
+ <_long>Add line</_long>
+ </option>
+ </display>
+ </plugin>
+</compiz>
diff --git a/metadata/wobbly.xml.in b/metadata/wobbly.xml.in
new file mode 100644
index 0000000..343f324
--- /dev/null
+++ b/metadata/wobbly.xml.in
@@ -0,0 +1,119 @@
+<compiz>
+ <plugin name="wobbly">
+ <_short>Wobbly Windows</_short>
+ <_long>Use spring model for wobbly window effect</_long>
+ <category>Effects</category>
+ <feature>edgeresistance</feature>
+ <deps>
+ <relation type="before">
+ <plugin>fade</plugin>
+ <plugin>cube</plugin>
+ <plugin>scale</plugin>
+ </relation>
+ </deps>
+ <display>
+ <option name="snap_key" type="key">
+ <_short>Snap windows</_short>
+ <_long>Toggle window snapping</_long>
+ <default>&lt;Shift&gt;</default>
+ </option>
+ <option name="snap_inverted" type="bool">
+ <_short>Snap Inverted</_short>
+ <_long>Inverted window snapping</_long>
+ <default>false</default>
+ </option>
+ <option name="shiver" type="bell">
+ <_short>Shiver</_short>
+ <_long>Make window shiver</_long>
+ <default>false</default>
+ </option>
+ </display>
+ <screen>
+ <option name="friction" type="float">
+ <_short>Friction</_short>
+ <_long>Spring Friction</_long>
+ <default>3</default>
+ <min>0.1</min>
+ <max>10</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="spring_k" type="float">
+ <_short>Spring K</_short>
+ <_long>Spring Konstant</_long>
+ <default>8</default>
+ <min>0.1</min>
+ <max>10</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="grid_resolution" type="int">
+ <_short>Grid Resolution</_short>
+ <_long>Vertex Grid Resolution</_long>
+ <default>8</default>
+ <min>1</min>
+ <max>64</max>
+ </option>
+ <option name="min_grid_size" type="int">
+ <_short>Minimum Grid Size</_short>
+ <_long>Minimum Vertex Grid Size</_long>
+ <default>8</default>
+ <min>4</min>
+ <max>128</max>
+ </option>
+ <option name="map_effect" type="int">
+ <_short>Map Effect</_short>
+ <_long>Map Window Effect</_long>
+ <min>0</min>
+ <max>1</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>None</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Shiver</_name>
+ </desc>
+ </option>
+ <option name="focus_effect" type="int">
+ <_short>Focus Effect</_short>
+ <_long>Focus Window Effect</_long>
+ <min>0</min>
+ <max>1</max>
+ <default>0</default>
+ <desc>
+ <value>0</value>
+ <_name>None</_name>
+ </desc>
+ <desc>
+ <value>1</value>
+ <_name>Shiver</_name>
+ </desc>
+ </option>
+ <option name="map_window_match" type="match">
+ <_short>Map Windows</_short>
+ <_long>Windows that should wobble when mapped</_long>
+ <default>Splash | DropdownMenu | PopupMenu | Tooltip | Notification | Combo | Dnd | Unknown</default>
+ </option>
+ <option name="focus_window_match" type="match">
+ <_short>Focus Windows</_short>
+ <_long>Windows that should wobble when focused</_long>
+ <default></default>
+ </option>
+ <option name="grab_window_match" type="match">
+ <_short>Grab Windows</_short>
+ <_long>Windows that should wobble when grabbed</_long>
+ <default></default>
+ </option>
+ <option name="move_window_match" type="match">
+ <_short>Move Windows</_short>
+ <_long>Windows that should wobble when moved</_long>
+ <default>Toolbar | Menu | Utility | Dialog | Normal | Unknown</default>
+ </option>
+ <option name="maximize_effect" type="bool">
+ <_short>Maximize Effect</_short>
+ <_long>Wobble effect when maximizing and unmaximizing windows</_long>
+ <default>true</default>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/metadata/zoom.xml.in b/metadata/zoom.xml.in
new file mode 100644
index 0000000..8e6708d
--- /dev/null
+++ b/metadata/zoom.xml.in
@@ -0,0 +1,60 @@
+<compiz>
+ <plugin name="zoom">
+ <_short>Zoom Desktop</_short>
+ <_long>Zoom and pan desktop cube</_long>
+ <category>Accessibility</category>
+ <display>
+ <option name="initiate_button" type="button">
+ <_short>Initiate</_short>
+ <_long>Zoom In</_long>
+ <default>&lt;Super&gt;Button3</default>
+ </option>
+ <option name="zoom_in_button" type="button">
+ <_short>Zoom In</_short>
+ <_long>Zoom In</_long>
+ <default>&lt;Super&gt;Button4</default>
+ </option>
+ <option name="zoom_out_button" type="button">
+ <_short>Zoom Out</_short>
+ <_long>Zoom Out</_long>
+ <default>&lt;Super&gt;Button5</default>
+ </option>
+ <option name="zoom_pan_button" type="button">
+ <_short>Zoom Pan</_short>
+ <_long>Zoom pan</_long>
+ <default>&lt;Super&gt;Button2</default>
+ </option>
+ </display>
+ <screen>
+ <option name="speed" type="float">
+ <_short>Speed</_short>
+ <_long>Zoom Speed</_long>
+ <default>1.5</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="timestep" type="float">
+ <_short>Timestep</_short>
+ <_long>Zoom Timestep</_long>
+ <default>1.2</default>
+ <min>0.1</min>
+ <max>50</max>
+ <precision>0.1</precision>
+ </option>
+ <option name="zoom_factor" type="float">
+ <_short>Zoom factor</_short>
+ <_long>Zoom factor</_long>
+ <default>2</default>
+ <min>1.01</min>
+ <max>3</max>
+ <precision>0.01</precision>
+ </option>
+ <option name="filter_linear" type="bool">
+ <_short>Filter Linear</_short>
+ <_long>Use linear filter when zoomed in</_long>
+ <default>false</default>
+ </option>
+ </screen>
+ </plugin>
+</compiz>
diff --git a/missing b/missing
new file mode 100755
index 0000000..1c8ff70
--- /dev/null
+++ b/missing
@@ -0,0 +1,367 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2006-05-10.23
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+# Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case $1 in
+ lex|yacc)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $1 in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit 1
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ tar)
+ shift
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case $firstarg in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ case $firstarg in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 0000000..d2d5f21
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,111 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage" 1>&2
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+case $dirmode in
+ '')
+ if mkdir -p -- . 2>/dev/null; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
+# mkinstalldirs ends here
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
new file mode 100644
index 0000000..0bb4d51
--- /dev/null
+++ b/plugins/Makefile.am
@@ -0,0 +1,188 @@
+libfade_la_LDFLAGS = -module -avoid-version -no-undefined
+libfade_la_SOURCES = fade.c
+
+libcube_la_LDFLAGS = -module -avoid-version -no-undefined
+libcube_la_SOURCES = cube.c
+
+librotate_la_LDFLAGS = -module -avoid-version -no-undefined
+librotate_la_SOURCES = rotate.c
+
+libzoom_la_LDFLAGS = -module -avoid-version -no-undefined
+libzoom_la_SOURCES = zoom.c
+
+libscale_la_LDFLAGS = -module -avoid-version -no-undefined
+libscale_la_SOURCES = scale.c
+
+libwobbly_la_LDFLAGS = -module -avoid-version -no-undefined
+libwobbly_la_SOURCES = wobbly.c
+
+libminimize_la_LDFLAGS = -module -avoid-version -no-undefined
+libminimize_la_SOURCES = minimize.c
+
+libmove_la_LDFLAGS = -module -avoid-version -no-undefined
+libmove_la_SOURCES = move.c
+
+libresize_la_LDFLAGS = -module -avoid-version -no-undefined
+libresize_la_SOURCES = resize.c
+
+libplace_la_LDFLAGS = -module -avoid-version -no-undefined
+libplace_la_SOURCES = place.c
+
+libdecoration_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libdecoration_la_LDFLAGS = -module -avoid-version -no-undefined
+libdecoration_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la
+libdecoration_la_SOURCES = decoration.c
+
+libswitcher_la_LDFLAGS = -module -avoid-version -no-undefined
+libswitcher_la_SOURCES = switcher.c
+
+libwater_la_LDFLAGS = -module -avoid-version -no-undefined
+libwater_la_SOURCES = water.c
+
+libscreenshot_la_LDFLAGS = -module -avoid-version -no-undefined
+libscreenshot_la_SOURCES = screenshot.c
+
+libclone_la_LDFLAGS = -module -avoid-version -no-undefined
+libclone_la_SOURCES = clone.c
+
+libpng_la_LDFLAGS = -module -avoid-version -no-undefined
+libpng_la_LIBADD = @LIBPNG_LIBS@
+libpng_la_SOURCES = png.c
+
+libblur_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libblur_la_LDFLAGS = -module -avoid-version -no-undefined
+libblur_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la -lGLU
+libblur_la_SOURCES = blur.c
+
+libregex_la_LDFLAGS = -module -avoid-version -no-undefined
+libregex_la_SOURCES = regex.c
+
+libvideo_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libvideo_la_LDFLAGS = -module -avoid-version -no-undefined
+libvideo_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la
+libvideo_la_SOURCES = video.c
+
+libini_la_LDFLAGS = -module -avoid-version -no-undefined
+libini_la_SOURCES = ini.c
+
+libobs_la_LDFLAGS = -module -avoid-version -no-undefined
+libobs_la_SOURCES = obs.c
+
+libcommands_la_LDFLAGS = -module -avoid-version -no-undefined
+libcommands_la_SOURCES = commands.c
+
+libgnomecompat_la_LDFLAGS = -module -avoid-version -no-undefined
+libgnomecompat_la_SOURCES = gnomecompat.c
+
+if USE_LIBRSVG
+libsvg_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libsvg_la_LDFLAGS = -module -avoid-version -no-undefined
+libsvg_la_LIBADD = \
+ $(top_builddir)/libdecoration/libdecoration.la \
+ @LIBRSVG_LIBS@
+libsvg_la_SOURCES = svg.c
+libsvg_module = libsvg.la
+endif
+
+if ANNOTATE_PLUGIN
+libannotate_la_LDFLAGS = -module -avoid-version -no-undefined
+libannotate_la_LIBADD = @ANNOTATE_LIBS@
+libannotate_la_SOURCES = annotate.c
+libannotate_module = libannotate.la
+endif
+
+if USE_GLIB
+libglib_la_LDFLAGS = -module -avoid-version -no-undefined
+libglib_la_LIBADD = @GLIB_LIBS@
+libglib_la_SOURCES = glib.c
+libglib_module = libglib.la
+endif
+
+if USE_GCONF
+libgconf_la_LDFLAGS = -module -avoid-version -no-undefined
+libgconf_la_LIBADD = @GCONF_LIBS@
+libgconf_la_SOURCES = gconf.c
+libgconf_module = libgconf.la
+endif
+
+if USE_KCONFIG
+libkconfig_la_LDFLAGS = -module -avoid-version -no-undefined
+libkconfig_la_LIBADD = @KCONFIG_LIBS@
+libkconfig_la_SOURCES = kconfig.cpp
+libkconfig_module = libkconfig.la
+endif
+
+if DBUS_PLUGIN
+libdbus_la_LDFLAGS = -module -avoid-version -no-undefined
+libdbus_la_LIBADD = @DBUS_LIBS@
+libdbus_la_SOURCES = dbus.c
+libdbus_module = libdbus.la
+endif
+
+if INOTIFY_PLUGIN
+libinotify_la_LDFLAGS = -module -avoid-version -no-undefined
+libinotify_la_SOURCES = inotify.c
+libinotify_module = libinotify.la
+endif
+
+if FUSE_PLUGIN
+libfs_la_LDFLAGS = -module -avoid-version -no-undefined
+libfs_la_LIBADD = @FUSE_LIBS@
+libfs_la_SOURCES = fuse.c
+libfs_module = libfs.la
+endif
+
+INCLUDES = \
+ @COMPIZ_CFLAGS@ \
+ @LIBPNG_CFLAGS@ \
+ @LIBRSVG_CFLAGS@ \
+ @ANNOTATE_CFLAGS@ \
+ @GCONF_CFLAGS@ \
+ @KCONFIG_CFLAGS@ \
+ @DBUS_CFLAGS@ \
+ @GLIB_CFLAGS@ \
+ @FUSE_CFLAGS@ \
+ -DFUSE_USE_VERSION=26 \
+ -DALL_LINGUAS="\"@ALL_LINGUAS@\"" \
+ -DLOCALEDIR="\"@datadir@/locale\"" \
+ -DPLUGINDIR=\"$(plugindir)\" \
+ -DIMAGEDIR=\"$(imagedir)\" \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -DMETADATADIR=\"$(metadatadir)\"
+
+moduledir = $(plugindir)
+
+module_LTLIBRARIES = \
+ $(libglib_module) \
+ $(libgconf_module) \
+ $(libkconfig_module) \
+ libdecoration.la \
+ libwobbly.la \
+ libfade.la \
+ libminimize.la \
+ libcube.la \
+ librotate.la \
+ libzoom.la \
+ libscale.la \
+ libmove.la \
+ libresize.la \
+ libplace.la \
+ $(libdbus_module) \
+ libswitcher.la \
+ libwater.la \
+ libscreenshot.la \
+ libclone.la \
+ libpng.la \
+ libblur.la \
+ libregex.la \
+ libvideo.la \
+ libini.la \
+ libobs.la \
+ libcommands.la \
+ libgnomecompat.la \
+ $(libsvg_module) \
+ $(libannotate_module) \
+ $(libinotify_module) \
+ $(libfs_module)
+
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
new file mode 100644
index 0000000..128016f
--- /dev/null
+++ b/plugins/Makefile.in
@@ -0,0 +1,1057 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = plugins
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(moduledir)"
+moduleLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(module_LTLIBRARIES)
+libannotate_la_DEPENDENCIES =
+am__libannotate_la_SOURCES_DIST = annotate.c
+@ANNOTATE_PLUGIN_TRUE@am_libannotate_la_OBJECTS = annotate.lo
+libannotate_la_OBJECTS = $(am_libannotate_la_OBJECTS)
+libannotate_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libannotate_la_LDFLAGS) $(LDFLAGS) -o $@
+@ANNOTATE_PLUGIN_TRUE@am_libannotate_la_rpath = -rpath $(moduledir)
+am_libblur_la_OBJECTS = blur.lo
+libblur_la_OBJECTS = $(am_libblur_la_OBJECTS)
+libblur_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libblur_la_LDFLAGS) $(LDFLAGS) -o $@
+libclone_la_LIBADD =
+am_libclone_la_OBJECTS = clone.lo
+libclone_la_OBJECTS = $(am_libclone_la_OBJECTS)
+libclone_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libclone_la_LDFLAGS) $(LDFLAGS) -o $@
+libcommands_la_LIBADD =
+am_libcommands_la_OBJECTS = commands.lo
+libcommands_la_OBJECTS = $(am_libcommands_la_OBJECTS)
+libcommands_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libcommands_la_LDFLAGS) $(LDFLAGS) -o $@
+libcube_la_LIBADD =
+am_libcube_la_OBJECTS = cube.lo
+libcube_la_OBJECTS = $(am_libcube_la_OBJECTS)
+libcube_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libcube_la_LDFLAGS) $(LDFLAGS) -o $@
+libdbus_la_DEPENDENCIES =
+am__libdbus_la_SOURCES_DIST = dbus.c
+@DBUS_PLUGIN_TRUE@am_libdbus_la_OBJECTS = dbus.lo
+libdbus_la_OBJECTS = $(am_libdbus_la_OBJECTS)
+libdbus_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libdbus_la_LDFLAGS) $(LDFLAGS) -o $@
+@DBUS_PLUGIN_TRUE@am_libdbus_la_rpath = -rpath $(moduledir)
+am_libdecoration_la_OBJECTS = decoration.lo
+libdecoration_la_OBJECTS = $(am_libdecoration_la_OBJECTS)
+libdecoration_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libdecoration_la_LDFLAGS) $(LDFLAGS) -o $@
+libfade_la_LIBADD =
+am_libfade_la_OBJECTS = fade.lo
+libfade_la_OBJECTS = $(am_libfade_la_OBJECTS)
+libfade_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libfade_la_LDFLAGS) $(LDFLAGS) -o $@
+libfs_la_DEPENDENCIES =
+am__libfs_la_SOURCES_DIST = fuse.c
+@FUSE_PLUGIN_TRUE@am_libfs_la_OBJECTS = fuse.lo
+libfs_la_OBJECTS = $(am_libfs_la_OBJECTS)
+libfs_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libfs_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+@FUSE_PLUGIN_TRUE@am_libfs_la_rpath = -rpath $(moduledir)
+libgconf_la_DEPENDENCIES =
+am__libgconf_la_SOURCES_DIST = gconf.c
+@USE_GCONF_TRUE@am_libgconf_la_OBJECTS = gconf.lo
+libgconf_la_OBJECTS = $(am_libgconf_la_OBJECTS)
+libgconf_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libgconf_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_GCONF_TRUE@am_libgconf_la_rpath = -rpath $(moduledir)
+libglib_la_DEPENDENCIES =
+am__libglib_la_SOURCES_DIST = glib.c
+@USE_GLIB_TRUE@am_libglib_la_OBJECTS = glib.lo
+libglib_la_OBJECTS = $(am_libglib_la_OBJECTS)
+libglib_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libglib_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_GLIB_TRUE@am_libglib_la_rpath = -rpath $(moduledir)
+libgnomecompat_la_LIBADD =
+am_libgnomecompat_la_OBJECTS = gnomecompat.lo
+libgnomecompat_la_OBJECTS = $(am_libgnomecompat_la_OBJECTS)
+libgnomecompat_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libgnomecompat_la_LDFLAGS) $(LDFLAGS) -o $@
+libini_la_LIBADD =
+am_libini_la_OBJECTS = ini.lo
+libini_la_OBJECTS = $(am_libini_la_OBJECTS)
+libini_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libini_la_LDFLAGS) $(LDFLAGS) -o $@
+libinotify_la_LIBADD =
+am__libinotify_la_SOURCES_DIST = inotify.c
+@INOTIFY_PLUGIN_TRUE@am_libinotify_la_OBJECTS = inotify.lo
+libinotify_la_OBJECTS = $(am_libinotify_la_OBJECTS)
+libinotify_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libinotify_la_LDFLAGS) $(LDFLAGS) -o $@
+@INOTIFY_PLUGIN_TRUE@am_libinotify_la_rpath = -rpath $(moduledir)
+libkconfig_la_DEPENDENCIES =
+am__libkconfig_la_SOURCES_DIST = kconfig.cpp
+@USE_KCONFIG_TRUE@am_libkconfig_la_OBJECTS = kconfig.lo
+libkconfig_la_OBJECTS = $(am_libkconfig_la_OBJECTS)
+libkconfig_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(libkconfig_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_KCONFIG_TRUE@am_libkconfig_la_rpath = -rpath $(moduledir)
+libminimize_la_LIBADD =
+am_libminimize_la_OBJECTS = minimize.lo
+libminimize_la_OBJECTS = $(am_libminimize_la_OBJECTS)
+libminimize_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libminimize_la_LDFLAGS) $(LDFLAGS) -o $@
+libmove_la_LIBADD =
+am_libmove_la_OBJECTS = move.lo
+libmove_la_OBJECTS = $(am_libmove_la_OBJECTS)
+libmove_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libmove_la_LDFLAGS) $(LDFLAGS) -o $@
+libobs_la_LIBADD =
+am_libobs_la_OBJECTS = obs.lo
+libobs_la_OBJECTS = $(am_libobs_la_OBJECTS)
+libobs_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libobs_la_LDFLAGS) $(LDFLAGS) -o $@
+libplace_la_LIBADD =
+am_libplace_la_OBJECTS = place.lo
+libplace_la_OBJECTS = $(am_libplace_la_OBJECTS)
+libplace_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libplace_la_LDFLAGS) $(LDFLAGS) -o $@
+libpng_la_DEPENDENCIES =
+am_libpng_la_OBJECTS = png.lo
+libpng_la_OBJECTS = $(am_libpng_la_OBJECTS)
+libpng_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libpng_la_LDFLAGS) $(LDFLAGS) -o $@
+libregex_la_LIBADD =
+am_libregex_la_OBJECTS = regex.lo
+libregex_la_OBJECTS = $(am_libregex_la_OBJECTS)
+libregex_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libregex_la_LDFLAGS) $(LDFLAGS) -o $@
+libresize_la_LIBADD =
+am_libresize_la_OBJECTS = resize.lo
+libresize_la_OBJECTS = $(am_libresize_la_OBJECTS)
+libresize_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libresize_la_LDFLAGS) $(LDFLAGS) -o $@
+librotate_la_LIBADD =
+am_librotate_la_OBJECTS = rotate.lo
+librotate_la_OBJECTS = $(am_librotate_la_OBJECTS)
+librotate_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(librotate_la_LDFLAGS) $(LDFLAGS) -o $@
+libscale_la_LIBADD =
+am_libscale_la_OBJECTS = scale.lo
+libscale_la_OBJECTS = $(am_libscale_la_OBJECTS)
+libscale_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libscale_la_LDFLAGS) $(LDFLAGS) -o $@
+libscreenshot_la_LIBADD =
+am_libscreenshot_la_OBJECTS = screenshot.lo
+libscreenshot_la_OBJECTS = $(am_libscreenshot_la_OBJECTS)
+libscreenshot_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libscreenshot_la_LDFLAGS) $(LDFLAGS) -o $@
+am__libsvg_la_SOURCES_DIST = svg.c
+@USE_LIBRSVG_TRUE@am_libsvg_la_OBJECTS = svg.lo
+libsvg_la_OBJECTS = $(am_libsvg_la_OBJECTS)
+libsvg_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libsvg_la_LDFLAGS) $(LDFLAGS) -o $@
+@USE_LIBRSVG_TRUE@am_libsvg_la_rpath = -rpath $(moduledir)
+libswitcher_la_LIBADD =
+am_libswitcher_la_OBJECTS = switcher.lo
+libswitcher_la_OBJECTS = $(am_libswitcher_la_OBJECTS)
+libswitcher_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libswitcher_la_LDFLAGS) $(LDFLAGS) -o $@
+am_libvideo_la_OBJECTS = video.lo
+libvideo_la_OBJECTS = $(am_libvideo_la_OBJECTS)
+libvideo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libvideo_la_LDFLAGS) $(LDFLAGS) -o $@
+libwater_la_LIBADD =
+am_libwater_la_OBJECTS = water.lo
+libwater_la_OBJECTS = $(am_libwater_la_OBJECTS)
+libwater_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libwater_la_LDFLAGS) $(LDFLAGS) -o $@
+libwobbly_la_LIBADD =
+am_libwobbly_la_OBJECTS = wobbly.lo
+libwobbly_la_OBJECTS = $(am_libwobbly_la_OBJECTS)
+libwobbly_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libwobbly_la_LDFLAGS) $(LDFLAGS) -o $@
+libzoom_la_LIBADD =
+am_libzoom_la_OBJECTS = zoom.lo
+libzoom_la_OBJECTS = $(am_libzoom_la_OBJECTS)
+libzoom_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libzoom_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libannotate_la_SOURCES) $(libblur_la_SOURCES) \
+ $(libclone_la_SOURCES) $(libcommands_la_SOURCES) \
+ $(libcube_la_SOURCES) $(libdbus_la_SOURCES) \
+ $(libdecoration_la_SOURCES) $(libfade_la_SOURCES) \
+ $(libfs_la_SOURCES) $(libgconf_la_SOURCES) \
+ $(libglib_la_SOURCES) $(libgnomecompat_la_SOURCES) \
+ $(libini_la_SOURCES) $(libinotify_la_SOURCES) \
+ $(libkconfig_la_SOURCES) $(libminimize_la_SOURCES) \
+ $(libmove_la_SOURCES) $(libobs_la_SOURCES) \
+ $(libplace_la_SOURCES) $(libpng_la_SOURCES) \
+ $(libregex_la_SOURCES) $(libresize_la_SOURCES) \
+ $(librotate_la_SOURCES) $(libscale_la_SOURCES) \
+ $(libscreenshot_la_SOURCES) $(libsvg_la_SOURCES) \
+ $(libswitcher_la_SOURCES) $(libvideo_la_SOURCES) \
+ $(libwater_la_SOURCES) $(libwobbly_la_SOURCES) \
+ $(libzoom_la_SOURCES)
+DIST_SOURCES = $(am__libannotate_la_SOURCES_DIST) \
+ $(libblur_la_SOURCES) $(libclone_la_SOURCES) \
+ $(libcommands_la_SOURCES) $(libcube_la_SOURCES) \
+ $(am__libdbus_la_SOURCES_DIST) $(libdecoration_la_SOURCES) \
+ $(libfade_la_SOURCES) $(am__libfs_la_SOURCES_DIST) \
+ $(am__libgconf_la_SOURCES_DIST) $(am__libglib_la_SOURCES_DIST) \
+ $(libgnomecompat_la_SOURCES) $(libini_la_SOURCES) \
+ $(am__libinotify_la_SOURCES_DIST) \
+ $(am__libkconfig_la_SOURCES_DIST) $(libminimize_la_SOURCES) \
+ $(libmove_la_SOURCES) $(libobs_la_SOURCES) \
+ $(libplace_la_SOURCES) $(libpng_la_SOURCES) \
+ $(libregex_la_SOURCES) $(libresize_la_SOURCES) \
+ $(librotate_la_SOURCES) $(libscale_la_SOURCES) \
+ $(libscreenshot_la_SOURCES) $(am__libsvg_la_SOURCES_DIST) \
+ $(libswitcher_la_SOURCES) $(libvideo_la_SOURCES) \
+ $(libwater_la_SOURCES) $(libwobbly_la_SOURCES) \
+ $(libzoom_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+libfade_la_LDFLAGS = -module -avoid-version -no-undefined
+libfade_la_SOURCES = fade.c
+libcube_la_LDFLAGS = -module -avoid-version -no-undefined
+libcube_la_SOURCES = cube.c
+librotate_la_LDFLAGS = -module -avoid-version -no-undefined
+librotate_la_SOURCES = rotate.c
+libzoom_la_LDFLAGS = -module -avoid-version -no-undefined
+libzoom_la_SOURCES = zoom.c
+libscale_la_LDFLAGS = -module -avoid-version -no-undefined
+libscale_la_SOURCES = scale.c
+libwobbly_la_LDFLAGS = -module -avoid-version -no-undefined
+libwobbly_la_SOURCES = wobbly.c
+libminimize_la_LDFLAGS = -module -avoid-version -no-undefined
+libminimize_la_SOURCES = minimize.c
+libmove_la_LDFLAGS = -module -avoid-version -no-undefined
+libmove_la_SOURCES = move.c
+libresize_la_LDFLAGS = -module -avoid-version -no-undefined
+libresize_la_SOURCES = resize.c
+libplace_la_LDFLAGS = -module -avoid-version -no-undefined
+libplace_la_SOURCES = place.c
+libdecoration_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libdecoration_la_LDFLAGS = -module -avoid-version -no-undefined
+libdecoration_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la
+libdecoration_la_SOURCES = decoration.c
+libswitcher_la_LDFLAGS = -module -avoid-version -no-undefined
+libswitcher_la_SOURCES = switcher.c
+libwater_la_LDFLAGS = -module -avoid-version -no-undefined
+libwater_la_SOURCES = water.c
+libscreenshot_la_LDFLAGS = -module -avoid-version -no-undefined
+libscreenshot_la_SOURCES = screenshot.c
+libclone_la_LDFLAGS = -module -avoid-version -no-undefined
+libclone_la_SOURCES = clone.c
+libpng_la_LDFLAGS = -module -avoid-version -no-undefined
+libpng_la_LIBADD = @LIBPNG_LIBS@
+libpng_la_SOURCES = png.c
+libblur_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libblur_la_LDFLAGS = -module -avoid-version -no-undefined
+libblur_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la -lGLU
+libblur_la_SOURCES = blur.c
+libregex_la_LDFLAGS = -module -avoid-version -no-undefined
+libregex_la_SOURCES = regex.c
+libvideo_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+libvideo_la_LDFLAGS = -module -avoid-version -no-undefined
+libvideo_la_LIBADD = $(top_builddir)/libdecoration/libdecoration.la
+libvideo_la_SOURCES = video.c
+libini_la_LDFLAGS = -module -avoid-version -no-undefined
+libini_la_SOURCES = ini.c
+libobs_la_LDFLAGS = -module -avoid-version -no-undefined
+libobs_la_SOURCES = obs.c
+libcommands_la_LDFLAGS = -module -avoid-version -no-undefined
+libcommands_la_SOURCES = commands.c
+libgnomecompat_la_LDFLAGS = -module -avoid-version -no-undefined
+libgnomecompat_la_SOURCES = gnomecompat.c
+@USE_LIBRSVG_TRUE@libsvg_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la
+@USE_LIBRSVG_TRUE@libsvg_la_LDFLAGS = -module -avoid-version -no-undefined
+@USE_LIBRSVG_TRUE@libsvg_la_LIBADD = \
+@USE_LIBRSVG_TRUE@ $(top_builddir)/libdecoration/libdecoration.la \
+@USE_LIBRSVG_TRUE@ @LIBRSVG_LIBS@
+
+@USE_LIBRSVG_TRUE@libsvg_la_SOURCES = svg.c
+@USE_LIBRSVG_TRUE@libsvg_module = libsvg.la
+@ANNOTATE_PLUGIN_TRUE@libannotate_la_LDFLAGS = -module -avoid-version -no-undefined
+@ANNOTATE_PLUGIN_TRUE@libannotate_la_LIBADD = @ANNOTATE_LIBS@
+@ANNOTATE_PLUGIN_TRUE@libannotate_la_SOURCES = annotate.c
+@ANNOTATE_PLUGIN_TRUE@libannotate_module = libannotate.la
+@USE_GLIB_TRUE@libglib_la_LDFLAGS = -module -avoid-version -no-undefined
+@USE_GLIB_TRUE@libglib_la_LIBADD = @GLIB_LIBS@
+@USE_GLIB_TRUE@libglib_la_SOURCES = glib.c
+@USE_GLIB_TRUE@libglib_module = libglib.la
+@USE_GCONF_TRUE@libgconf_la_LDFLAGS = -module -avoid-version -no-undefined
+@USE_GCONF_TRUE@libgconf_la_LIBADD = @GCONF_LIBS@
+@USE_GCONF_TRUE@libgconf_la_SOURCES = gconf.c
+@USE_GCONF_TRUE@libgconf_module = libgconf.la
+@USE_KCONFIG_TRUE@libkconfig_la_LDFLAGS = -module -avoid-version -no-undefined
+@USE_KCONFIG_TRUE@libkconfig_la_LIBADD = @KCONFIG_LIBS@
+@USE_KCONFIG_TRUE@libkconfig_la_SOURCES = kconfig.cpp
+@USE_KCONFIG_TRUE@libkconfig_module = libkconfig.la
+@DBUS_PLUGIN_TRUE@libdbus_la_LDFLAGS = -module -avoid-version -no-undefined
+@DBUS_PLUGIN_TRUE@libdbus_la_LIBADD = @DBUS_LIBS@
+@DBUS_PLUGIN_TRUE@libdbus_la_SOURCES = dbus.c
+@DBUS_PLUGIN_TRUE@libdbus_module = libdbus.la
+@INOTIFY_PLUGIN_TRUE@libinotify_la_LDFLAGS = -module -avoid-version -no-undefined
+@INOTIFY_PLUGIN_TRUE@libinotify_la_SOURCES = inotify.c
+@INOTIFY_PLUGIN_TRUE@libinotify_module = libinotify.la
+@FUSE_PLUGIN_TRUE@libfs_la_LDFLAGS = -module -avoid-version -no-undefined
+@FUSE_PLUGIN_TRUE@libfs_la_LIBADD = @FUSE_LIBS@
+@FUSE_PLUGIN_TRUE@libfs_la_SOURCES = fuse.c
+@FUSE_PLUGIN_TRUE@libfs_module = libfs.la
+INCLUDES = \
+ @COMPIZ_CFLAGS@ \
+ @LIBPNG_CFLAGS@ \
+ @LIBRSVG_CFLAGS@ \
+ @ANNOTATE_CFLAGS@ \
+ @GCONF_CFLAGS@ \
+ @KCONFIG_CFLAGS@ \
+ @DBUS_CFLAGS@ \
+ @GLIB_CFLAGS@ \
+ @FUSE_CFLAGS@ \
+ -DFUSE_USE_VERSION=26 \
+ -DALL_LINGUAS="\"@ALL_LINGUAS@\"" \
+ -DLOCALEDIR="\"@datadir@/locale\"" \
+ -DPLUGINDIR=\"$(plugindir)\" \
+ -DIMAGEDIR=\"$(imagedir)\" \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -DMETADATADIR=\"$(metadatadir)\"
+
+moduledir = $(plugindir)
+module_LTLIBRARIES = \
+ $(libglib_module) \
+ $(libgconf_module) \
+ $(libkconfig_module) \
+ libdecoration.la \
+ libwobbly.la \
+ libfade.la \
+ libminimize.la \
+ libcube.la \
+ librotate.la \
+ libzoom.la \
+ libscale.la \
+ libmove.la \
+ libresize.la \
+ libplace.la \
+ $(libdbus_module) \
+ libswitcher.la \
+ libwater.la \
+ libscreenshot.la \
+ libclone.la \
+ libpng.la \
+ libblur.la \
+ libregex.la \
+ libvideo.la \
+ libini.la \
+ libobs.la \
+ libcommands.la \
+ libgnomecompat.la \
+ $(libsvg_module) \
+ $(libannotate_module) \
+ $(libinotify_module) \
+ $(libfs_module)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-moduleLTLIBRARIES: $(module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)"
+ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(moduledir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(moduledir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-moduleLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$p"; \
+ done
+
+clean-moduleLTLIBRARIES:
+ -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES)
+ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libannotate.la: $(libannotate_la_OBJECTS) $(libannotate_la_DEPENDENCIES)
+ $(libannotate_la_LINK) $(am_libannotate_la_rpath) $(libannotate_la_OBJECTS) $(libannotate_la_LIBADD) $(LIBS)
+libblur.la: $(libblur_la_OBJECTS) $(libblur_la_DEPENDENCIES)
+ $(libblur_la_LINK) -rpath $(moduledir) $(libblur_la_OBJECTS) $(libblur_la_LIBADD) $(LIBS)
+libclone.la: $(libclone_la_OBJECTS) $(libclone_la_DEPENDENCIES)
+ $(libclone_la_LINK) -rpath $(moduledir) $(libclone_la_OBJECTS) $(libclone_la_LIBADD) $(LIBS)
+libcommands.la: $(libcommands_la_OBJECTS) $(libcommands_la_DEPENDENCIES)
+ $(libcommands_la_LINK) -rpath $(moduledir) $(libcommands_la_OBJECTS) $(libcommands_la_LIBADD) $(LIBS)
+libcube.la: $(libcube_la_OBJECTS) $(libcube_la_DEPENDENCIES)
+ $(libcube_la_LINK) -rpath $(moduledir) $(libcube_la_OBJECTS) $(libcube_la_LIBADD) $(LIBS)
+libdbus.la: $(libdbus_la_OBJECTS) $(libdbus_la_DEPENDENCIES)
+ $(libdbus_la_LINK) $(am_libdbus_la_rpath) $(libdbus_la_OBJECTS) $(libdbus_la_LIBADD) $(LIBS)
+libdecoration.la: $(libdecoration_la_OBJECTS) $(libdecoration_la_DEPENDENCIES)
+ $(libdecoration_la_LINK) -rpath $(moduledir) $(libdecoration_la_OBJECTS) $(libdecoration_la_LIBADD) $(LIBS)
+libfade.la: $(libfade_la_OBJECTS) $(libfade_la_DEPENDENCIES)
+ $(libfade_la_LINK) -rpath $(moduledir) $(libfade_la_OBJECTS) $(libfade_la_LIBADD) $(LIBS)
+libfs.la: $(libfs_la_OBJECTS) $(libfs_la_DEPENDENCIES)
+ $(libfs_la_LINK) $(am_libfs_la_rpath) $(libfs_la_OBJECTS) $(libfs_la_LIBADD) $(LIBS)
+libgconf.la: $(libgconf_la_OBJECTS) $(libgconf_la_DEPENDENCIES)
+ $(libgconf_la_LINK) $(am_libgconf_la_rpath) $(libgconf_la_OBJECTS) $(libgconf_la_LIBADD) $(LIBS)
+libglib.la: $(libglib_la_OBJECTS) $(libglib_la_DEPENDENCIES)
+ $(libglib_la_LINK) $(am_libglib_la_rpath) $(libglib_la_OBJECTS) $(libglib_la_LIBADD) $(LIBS)
+libgnomecompat.la: $(libgnomecompat_la_OBJECTS) $(libgnomecompat_la_DEPENDENCIES)
+ $(libgnomecompat_la_LINK) -rpath $(moduledir) $(libgnomecompat_la_OBJECTS) $(libgnomecompat_la_LIBADD) $(LIBS)
+libini.la: $(libini_la_OBJECTS) $(libini_la_DEPENDENCIES)
+ $(libini_la_LINK) -rpath $(moduledir) $(libini_la_OBJECTS) $(libini_la_LIBADD) $(LIBS)
+libinotify.la: $(libinotify_la_OBJECTS) $(libinotify_la_DEPENDENCIES)
+ $(libinotify_la_LINK) $(am_libinotify_la_rpath) $(libinotify_la_OBJECTS) $(libinotify_la_LIBADD) $(LIBS)
+libkconfig.la: $(libkconfig_la_OBJECTS) $(libkconfig_la_DEPENDENCIES)
+ $(libkconfig_la_LINK) $(am_libkconfig_la_rpath) $(libkconfig_la_OBJECTS) $(libkconfig_la_LIBADD) $(LIBS)
+libminimize.la: $(libminimize_la_OBJECTS) $(libminimize_la_DEPENDENCIES)
+ $(libminimize_la_LINK) -rpath $(moduledir) $(libminimize_la_OBJECTS) $(libminimize_la_LIBADD) $(LIBS)
+libmove.la: $(libmove_la_OBJECTS) $(libmove_la_DEPENDENCIES)
+ $(libmove_la_LINK) -rpath $(moduledir) $(libmove_la_OBJECTS) $(libmove_la_LIBADD) $(LIBS)
+libobs.la: $(libobs_la_OBJECTS) $(libobs_la_DEPENDENCIES)
+ $(libobs_la_LINK) -rpath $(moduledir) $(libobs_la_OBJECTS) $(libobs_la_LIBADD) $(LIBS)
+libplace.la: $(libplace_la_OBJECTS) $(libplace_la_DEPENDENCIES)
+ $(libplace_la_LINK) -rpath $(moduledir) $(libplace_la_OBJECTS) $(libplace_la_LIBADD) $(LIBS)
+libpng.la: $(libpng_la_OBJECTS) $(libpng_la_DEPENDENCIES)
+ $(libpng_la_LINK) -rpath $(moduledir) $(libpng_la_OBJECTS) $(libpng_la_LIBADD) $(LIBS)
+libregex.la: $(libregex_la_OBJECTS) $(libregex_la_DEPENDENCIES)
+ $(libregex_la_LINK) -rpath $(moduledir) $(libregex_la_OBJECTS) $(libregex_la_LIBADD) $(LIBS)
+libresize.la: $(libresize_la_OBJECTS) $(libresize_la_DEPENDENCIES)
+ $(libresize_la_LINK) -rpath $(moduledir) $(libresize_la_OBJECTS) $(libresize_la_LIBADD) $(LIBS)
+librotate.la: $(librotate_la_OBJECTS) $(librotate_la_DEPENDENCIES)
+ $(librotate_la_LINK) -rpath $(moduledir) $(librotate_la_OBJECTS) $(librotate_la_LIBADD) $(LIBS)
+libscale.la: $(libscale_la_OBJECTS) $(libscale_la_DEPENDENCIES)
+ $(libscale_la_LINK) -rpath $(moduledir) $(libscale_la_OBJECTS) $(libscale_la_LIBADD) $(LIBS)
+libscreenshot.la: $(libscreenshot_la_OBJECTS) $(libscreenshot_la_DEPENDENCIES)
+ $(libscreenshot_la_LINK) -rpath $(moduledir) $(libscreenshot_la_OBJECTS) $(libscreenshot_la_LIBADD) $(LIBS)
+libsvg.la: $(libsvg_la_OBJECTS) $(libsvg_la_DEPENDENCIES)
+ $(libsvg_la_LINK) $(am_libsvg_la_rpath) $(libsvg_la_OBJECTS) $(libsvg_la_LIBADD) $(LIBS)
+libswitcher.la: $(libswitcher_la_OBJECTS) $(libswitcher_la_DEPENDENCIES)
+ $(libswitcher_la_LINK) -rpath $(moduledir) $(libswitcher_la_OBJECTS) $(libswitcher_la_LIBADD) $(LIBS)
+libvideo.la: $(libvideo_la_OBJECTS) $(libvideo_la_DEPENDENCIES)
+ $(libvideo_la_LINK) -rpath $(moduledir) $(libvideo_la_OBJECTS) $(libvideo_la_LIBADD) $(LIBS)
+libwater.la: $(libwater_la_OBJECTS) $(libwater_la_DEPENDENCIES)
+ $(libwater_la_LINK) -rpath $(moduledir) $(libwater_la_OBJECTS) $(libwater_la_LIBADD) $(LIBS)
+libwobbly.la: $(libwobbly_la_OBJECTS) $(libwobbly_la_DEPENDENCIES)
+ $(libwobbly_la_LINK) -rpath $(moduledir) $(libwobbly_la_OBJECTS) $(libwobbly_la_LIBADD) $(LIBS)
+libzoom.la: $(libzoom_la_OBJECTS) $(libzoom_la_DEPENDENCIES)
+ $(libzoom_la_LINK) -rpath $(moduledir) $(libzoom_la_OBJECTS) $(libzoom_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/annotate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blur.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commands.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cube.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decoration.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fade.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fuse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gconf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glib.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomecompat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ini.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kconfig.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minimize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/place.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/png.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rotate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scale.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/screenshot.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switcher.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/video.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/water.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wobbly.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoom.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(moduledir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-moduleLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-moduleLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-moduleLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-moduleLTLIBRARIES install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/plugins/annotate.c b/plugins/annotate.c
new file mode 100644
index 0000000..fea72d3
--- /dev/null
+++ b/plugins/annotate.c
@@ -0,0 +1,963 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+#include <cairo-xlib-xrender.h>
+
+#include <compiz-core.h>
+
+static CompMetadata annoMetadata;
+
+static int displayPrivateIndex;
+
+static int annoLastPointerX = 0;
+static int annoLastPointerY = 0;
+
+#define ANNO_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define ANNO_DISPLAY_OPTION_DRAW_BUTTON 1
+#define ANNO_DISPLAY_OPTION_ERASE_BUTTON 2
+#define ANNO_DISPLAY_OPTION_CLEAR_KEY 3
+#define ANNO_DISPLAY_OPTION_CLEAR_BUTTON 4
+#define ANNO_DISPLAY_OPTION_FILL_COLOR 5
+#define ANNO_DISPLAY_OPTION_STROKE_COLOR 6
+#define ANNO_DISPLAY_OPTION_LINE_WIDTH 7
+#define ANNO_DISPLAY_OPTION_STROKE_WIDTH 8
+#define ANNO_DISPLAY_OPTION_NUM 9
+
+typedef struct _AnnoDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[ANNO_DISPLAY_OPTION_NUM];
+} AnnoDisplay;
+
+typedef struct _AnnoScreen {
+ PaintOutputProc paintOutput;
+ int grabIndex;
+
+ Pixmap pixmap;
+ CompTexture texture;
+ cairo_surface_t *surface;
+ cairo_t *cairo;
+ Bool content;
+
+ Bool eraseMode;
+} AnnoScreen;
+
+#define GET_ANNO_DISPLAY(d) \
+ ((AnnoDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define ANNO_DISPLAY(d) \
+ AnnoDisplay *ad = GET_ANNO_DISPLAY (d)
+
+#define GET_ANNO_SCREEN(s, ad) \
+ ((AnnoScreen *) (s)->base.privates[(ad)->screenPrivateIndex].ptr)
+
+#define ANNO_SCREEN(s) \
+ AnnoScreen *as = GET_ANNO_SCREEN (s, GET_ANNO_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+
+#define NUM_TOOLS (sizeof (tools) / sizeof (tools[0]))
+
+static void
+annoCairoClear (CompScreen *s,
+ cairo_t *cr)
+{
+ ANNO_SCREEN (s);
+
+ cairo_save (cr);
+ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
+ cairo_paint (cr);
+ cairo_restore (cr);
+
+ as->content = FALSE;
+}
+
+static cairo_t *
+annoCairoContext (CompScreen *s)
+{
+ ANNO_SCREEN (s);
+
+ if (!as->cairo)
+ {
+ XRenderPictFormat *format;
+ Screen *screen;
+ int w, h;
+
+ screen = ScreenOfDisplay (s->display->display, s->screenNum);
+
+ w = s->width;
+ h = s->height;
+
+ format = XRenderFindStandardFormat (s->display->display,
+ PictStandardARGB32);
+
+ as->pixmap = XCreatePixmap (s->display->display, s->root, w, h, 32);
+
+ if (!bindPixmapToTexture (s, &as->texture, as->pixmap, w, h, 32))
+ {
+ compLogMessage ("annotate", CompLogLevelError,
+ "Couldn't bind pixmap 0x%x to texture",
+ (int) as->pixmap);
+
+ XFreePixmap (s->display->display, as->pixmap);
+
+ return NULL;
+ }
+
+ as->surface =
+ cairo_xlib_surface_create_with_xrender_format (s->display->display,
+ as->pixmap, screen,
+ format, w, h);
+
+ as->cairo = cairo_create (as->surface);
+
+ annoCairoClear (s, as->cairo);
+ }
+
+ return as->cairo;
+}
+
+static void
+annoSetSourceColor (cairo_t *cr,
+ unsigned short *color)
+{
+ cairo_set_source_rgba (cr,
+ (double) color[0] / 0xffff,
+ (double) color[1] / 0xffff,
+ (double) color[2] / 0xffff,
+ (double) color[3] / 0xffff);
+}
+
+static void
+annoDrawCircle (CompScreen *s,
+ double xc,
+ double yc,
+ double radius,
+ unsigned short *fillColor,
+ unsigned short *strokeColor,
+ double strokeWidth)
+{
+ REGION reg;
+ cairo_t *cr;
+
+ ANNO_SCREEN (s);
+
+ cr = annoCairoContext (s);
+ if (cr)
+ {
+ double ex1, ey1, ex2, ey2;
+
+ annoSetSourceColor (cr, fillColor);
+ cairo_arc (cr, xc, yc, radius, 0, 2 * M_PI);
+ cairo_fill_preserve (cr);
+ cairo_set_line_width (cr, strokeWidth);
+ cairo_stroke_extents (cr, &ex1, &ey1, &ex2, &ey2);
+ annoSetSourceColor (cr, strokeColor);
+ cairo_stroke (cr);
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = ex1;
+ reg.extents.y1 = ey1;
+ reg.extents.x2 = ex2;
+ reg.extents.y2 = ey2;
+
+ as->content = TRUE;
+ damageScreenRegion (s, &reg);
+ }
+}
+
+static void
+annoDrawRectangle (CompScreen *s,
+ double x,
+ double y,
+ double w,
+ double h,
+ unsigned short *fillColor,
+ unsigned short *strokeColor,
+ double strokeWidth)
+{
+ REGION reg;
+ cairo_t *cr;
+
+ ANNO_SCREEN (s);
+
+ cr = annoCairoContext (s);
+ if (cr)
+ {
+ double ex1, ey1, ex2, ey2;
+
+ annoSetSourceColor (cr, fillColor);
+ cairo_rectangle (cr, x, y, w, h);
+ cairo_fill_preserve (cr);
+ cairo_set_line_width (cr, strokeWidth);
+ cairo_stroke_extents (cr, &ex1, &ey1, &ex2, &ey2);
+ annoSetSourceColor (cr, strokeColor);
+ cairo_stroke (cr);
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = ex1;
+ reg.extents.y1 = ey1;
+ reg.extents.x2 = ex2 + 2.0;
+ reg.extents.y2 = ey2 + 2.0;
+
+ as->content = TRUE;
+ damageScreenRegion (s, &reg);
+ }
+}
+
+static void
+annoDrawLine (CompScreen *s,
+ double x1,
+ double y1,
+ double x2,
+ double y2,
+ double width,
+ unsigned short *color)
+{
+ REGION reg;
+ cairo_t *cr;
+
+ ANNO_SCREEN (s);
+
+ cr = annoCairoContext (s);
+ if (cr)
+ {
+ double ex1, ey1, ex2, ey2;
+
+ cairo_set_line_width (cr, width);
+ cairo_move_to (cr, x1, y1);
+ cairo_line_to (cr, x2, y2);
+ cairo_stroke_extents (cr, &ex1, &ey1, &ex2, &ey2);
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+ annoSetSourceColor (cr, color);
+ cairo_stroke (cr);
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = ex1;
+ reg.extents.y1 = ey1;
+ reg.extents.x2 = ex2;
+ reg.extents.y2 = ey2;
+
+ as->content = TRUE;
+ damageScreenRegion (s, &reg);
+ }
+}
+
+static void
+annoDrawText (CompScreen *s,
+ double x,
+ double y,
+ char *text,
+ char *fontFamily,
+ double fontSize,
+ int fontSlant,
+ int fontWeight,
+ unsigned short *fillColor,
+ unsigned short *strokeColor,
+ double strokeWidth)
+{
+ REGION reg;
+ cairo_t *cr;
+
+ ANNO_SCREEN (s);
+
+ cr = annoCairoContext (s);
+ if (cr)
+ {
+ cairo_text_extents_t extents;
+
+ cairo_set_line_width (cr, strokeWidth);
+ annoSetSourceColor (cr, fillColor);
+ cairo_select_font_face (cr, fontFamily, fontSlant, fontWeight);
+ cairo_set_font_size (cr, fontSize);
+ cairo_text_extents (cr, text, &extents);
+ cairo_save (cr);
+ cairo_move_to (cr, x, y);
+ cairo_text_path (cr, text);
+ cairo_fill_preserve (cr);
+ annoSetSourceColor (cr, strokeColor);
+ cairo_stroke (cr);
+ cairo_restore (cr);
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = x;
+ reg.extents.y1 = y + extents.y_bearing - 2.0;
+ reg.extents.x2 = x + extents.width + 20.0;
+ reg.extents.y2 = y + extents.height;
+
+ as->content = TRUE;
+ damageScreenRegion (s, &reg);
+ }
+}
+
+static Bool
+annoDraw (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ cairo_t *cr;
+
+ cr = annoCairoContext (s);
+ if (cr)
+ {
+ char *tool;
+ unsigned short *fillColor, *strokeColor;
+ double lineWidth, strokeWidth;
+
+ ANNO_DISPLAY (d);
+
+ tool = getStringOptionNamed (option, nOption, "tool", "line");
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+
+ fillColor = ad->opt[ANNO_DISPLAY_OPTION_FILL_COLOR].value.c;
+ fillColor = getColorOptionNamed (option, nOption, "fill_color",
+ fillColor);
+
+ strokeColor = ad->opt[ANNO_DISPLAY_OPTION_STROKE_COLOR].value.c;
+ strokeColor = getColorOptionNamed (option, nOption,
+ "stroke_color", strokeColor);
+
+ strokeWidth = ad->opt[ANNO_DISPLAY_OPTION_STROKE_WIDTH].value.f;
+ strokeWidth = getFloatOptionNamed (option, nOption, "stroke_width",
+ strokeWidth);
+
+ lineWidth = ad->opt[ANNO_DISPLAY_OPTION_LINE_WIDTH].value.f;
+ lineWidth = getFloatOptionNamed (option, nOption, "line_width",
+ lineWidth);
+
+ if (strcasecmp (tool, "rectangle") == 0)
+ {
+ double x, y, w, h;
+
+ x = getFloatOptionNamed (option, nOption, "x", 0);
+ y = getFloatOptionNamed (option, nOption, "y", 0);
+ w = getFloatOptionNamed (option, nOption, "w", 100);
+ h = getFloatOptionNamed (option, nOption, "h", 100);
+
+ annoDrawRectangle (s, x, y, w, h, fillColor, strokeColor,
+ strokeWidth);
+ }
+ else if (strcasecmp (tool, "circle") == 0)
+ {
+ double xc, yc, r;
+
+ xc = getFloatOptionNamed (option, nOption, "xc", 0);
+ yc = getFloatOptionNamed (option, nOption, "yc", 0);
+ r = getFloatOptionNamed (option, nOption, "radius", 100);
+
+ annoDrawCircle (s, xc, yc, r, fillColor, strokeColor,
+ strokeWidth);
+ }
+ else if (strcasecmp (tool, "line") == 0)
+ {
+ double x1, y1, x2, y2;
+
+ x1 = getFloatOptionNamed (option, nOption, "x1", 0);
+ y1 = getFloatOptionNamed (option, nOption, "y1", 0);
+ x2 = getFloatOptionNamed (option, nOption, "x2", 100);
+ y2 = getFloatOptionNamed (option, nOption, "y2", 100);
+
+ annoDrawLine (s, x1, y1, x2, y2, lineWidth, fillColor);
+ }
+ else if (strcasecmp (tool, "text") == 0)
+ {
+ double x, y, size;
+ char *text, *family;
+ unsigned int slant, weight;
+ char *str;
+
+ str = getStringOptionNamed (option, nOption, "slant", "");
+ if (strcasecmp (str, "oblique") == 0)
+ slant = CAIRO_FONT_SLANT_OBLIQUE;
+ else if (strcasecmp (str, "italic") == 0)
+ slant = CAIRO_FONT_SLANT_ITALIC;
+ else
+ slant = CAIRO_FONT_SLANT_NORMAL;
+
+ str = getStringOptionNamed (option, nOption, "weight", "");
+ if (strcasecmp (str, "bold") == 0)
+ weight = CAIRO_FONT_WEIGHT_BOLD;
+ else
+ weight = CAIRO_FONT_WEIGHT_NORMAL;
+
+ x = getFloatOptionNamed (option, nOption, "x", 0);
+ y = getFloatOptionNamed (option, nOption, "y", 0);
+ text = getStringOptionNamed (option, nOption, "text", "");
+ family = getStringOptionNamed (option, nOption, "family",
+ "Sans");
+ size = getFloatOptionNamed (option, nOption, "size", 36.0);
+
+ annoDrawText (s, x, y, text, family, size, slant, weight,
+ fillColor, strokeColor, strokeWidth);
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+annoInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ ANNO_SCREEN (s);
+
+ if (otherScreenGrabExist (s, 0))
+ return FALSE;
+
+ if (!as->grabIndex)
+ as->grabIndex = pushScreenGrab (s, None, "annotate");
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+
+ annoLastPointerX = pointerX;
+ annoLastPointerY = pointerY;
+
+ as->eraseMode = FALSE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+annoTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ANNO_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (as->grabIndex)
+ {
+ removeScreenGrab (s, as->grabIndex, NULL);
+ as->grabIndex = 0;
+ }
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static Bool
+annoEraseInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ ANNO_SCREEN (s);
+
+ if (otherScreenGrabExist (s, 0))
+ return FALSE;
+
+ if (!as->grabIndex)
+ as->grabIndex = pushScreenGrab (s, None, "annotate");
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+
+ annoLastPointerX = pointerX;
+ annoLastPointerY = pointerY;
+
+ as->eraseMode = TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+annoClear (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ ANNO_SCREEN (s);
+
+ if (as->content)
+ {
+ cairo_t *cr;
+
+ cr = annoCairoContext (s);
+ if (cr)
+ annoCairoClear (s, as->cairo);
+
+ damageScreen (s);
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+annoPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ ANNO_SCREEN (s);
+
+ UNWRAP (as, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (as, s, paintOutput, annoPaintOutput);
+
+ if (status && as->content && region->numRects)
+ {
+ BoxPtr pBox;
+ int nBox;
+
+ glPushMatrix ();
+
+ prepareXCoords (s, output, -DEFAULT_Z_CAMERA);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+
+ enableTexture (s, &as->texture, COMP_TEXTURE_FILTER_FAST);
+
+ pBox = region->rects;
+ nBox = region->numRects;
+
+ glBegin (GL_QUADS);
+
+ while (nBox--)
+ {
+ glTexCoord2f (COMP_TEX_COORD_X (&as->texture.matrix, pBox->x1),
+ COMP_TEX_COORD_Y (&as->texture.matrix, pBox->y2));
+ glVertex2i (pBox->x1, pBox->y2);
+ glTexCoord2f (COMP_TEX_COORD_X (&as->texture.matrix, pBox->x2),
+ COMP_TEX_COORD_Y (&as->texture.matrix, pBox->y2));
+ glVertex2i (pBox->x2, pBox->y2);
+ glTexCoord2f (COMP_TEX_COORD_X (&as->texture.matrix, pBox->x2),
+ COMP_TEX_COORD_Y (&as->texture.matrix, pBox->y1));
+ glVertex2i (pBox->x2, pBox->y1);
+ glTexCoord2f (COMP_TEX_COORD_X (&as->texture.matrix, pBox->x1),
+ COMP_TEX_COORD_Y (&as->texture.matrix, pBox->y1));
+ glVertex2i (pBox->x1, pBox->y1);
+
+ pBox++;
+ }
+
+ glEnd ();
+
+ disableTexture (s, &as->texture);
+
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glPopMatrix ();
+ }
+
+ return status;
+}
+
+static void
+annoHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ ANNO_SCREEN (s);
+
+ if (as->grabIndex)
+ {
+ if (as->eraseMode)
+ {
+ static unsigned short color[] = { 0, 0, 0, 0 };
+
+ annoDrawLine (s,
+ annoLastPointerX, annoLastPointerY,
+ xRoot, yRoot,
+ 20.0, color);
+ }
+ else
+ {
+ ANNO_DISPLAY(s->display);
+
+ annoDrawLine (s,
+ annoLastPointerX, annoLastPointerY,
+ xRoot, yRoot,
+ ad->opt[ANNO_DISPLAY_OPTION_LINE_WIDTH].value.f,
+ ad->opt[ANNO_DISPLAY_OPTION_FILL_COLOR].value.c);
+ }
+
+ annoLastPointerX = xRoot;
+ annoLastPointerY = yRoot;
+ }
+}
+
+static void
+annoHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ ANNO_DISPLAY (d);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ annoHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ annoHandleMotionEvent (s, pointerX, pointerY);
+ default:
+ break;
+ }
+
+ UNWRAP (ad, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (ad, d, handleEvent, annoHandleEvent);
+}
+
+static CompOption *
+annoGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ ANNO_DISPLAY (display);
+
+ *count = NUM_OPTIONS (ad);
+ return ad->opt;
+}
+
+static Bool
+annoSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ ANNO_DISPLAY (display);
+
+ o = compFindOption (ad->opt, NUM_OPTIONS (ad), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo annoDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, annoInitiate, annoTerminate },
+ { "draw", "action", 0, annoDraw, 0 },
+ { "erase_button", "button", 0, annoEraseInitiate, annoTerminate },
+ { "clear_key", "key", 0, annoClear, 0 },
+ { "clear_button", "button", 0, annoClear, 0 },
+ { "fill_color", "color", 0, 0, 0 },
+ { "stroke_color", "color", 0, 0, 0 },
+ { "line_width", "float", 0, 0, 0 },
+ { "stroke_width", "float", 0, 0, 0 }
+};
+
+static Bool
+annoInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ AnnoDisplay *ad;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ ad = malloc (sizeof (AnnoDisplay));
+ if (!ad)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &annoMetadata,
+ annoDisplayOptionInfo,
+ ad->opt,
+ ANNO_DISPLAY_OPTION_NUM))
+ {
+ free (ad);
+ return FALSE;
+ }
+
+ ad->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (ad->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, ad->opt, ANNO_DISPLAY_OPTION_NUM);
+ free (ad);
+ return FALSE;
+ }
+
+ WRAP (ad, d, handleEvent, annoHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = ad;
+
+ return TRUE;
+}
+
+static void
+annoFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ANNO_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, ad->screenPrivateIndex);
+
+ UNWRAP (ad, d, handleEvent);
+
+ compFiniDisplayOptions (d, ad->opt, ANNO_DISPLAY_OPTION_NUM);
+
+ free (ad);
+}
+
+static Bool
+annoInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ AnnoScreen *as;
+
+ ANNO_DISPLAY (s->display);
+
+ as = malloc (sizeof (AnnoScreen));
+ if (!as)
+ return FALSE;
+
+ as->grabIndex = 0;
+ as->surface = NULL;
+ as->pixmap = None;
+ as->cairo = NULL;
+ as->content = FALSE;
+
+ initTexture (s, &as->texture);
+
+ WRAP (as, s, paintOutput, annoPaintOutput);
+
+ s->base.privates[ad->screenPrivateIndex].ptr = as;
+
+ return TRUE;
+}
+
+static void
+annoFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ANNO_SCREEN (s);
+
+ if (as->cairo)
+ cairo_destroy (as->cairo);
+
+ if (as->surface)
+ cairo_surface_destroy (as->surface);
+
+ finiTexture (s, &as->texture);
+
+ if (as->pixmap)
+ XFreePixmap (s->display->display, as->pixmap);
+
+ UNWRAP (as, s, paintOutput);
+
+ free (as);
+}
+
+static CompBool
+annoInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) annoInitDisplay,
+ (InitPluginObjectProc) annoInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+annoFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) annoFiniDisplay,
+ (FiniPluginObjectProc) annoFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+annoGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) annoGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+annoSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) annoSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+annoInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&annoMetadata,
+ p->vTable->name,
+ annoDisplayOptionInfo,
+ ANNO_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&annoMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&annoMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+annoFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&annoMetadata);
+}
+
+static CompMetadata *
+annoGetMetadata (CompPlugin *plugin)
+{
+ return &annoMetadata;
+}
+
+static CompPluginVTable annoVTable = {
+ "annotate",
+ annoGetMetadata,
+ annoInit,
+ annoFini,
+ annoInitObject,
+ annoFiniObject,
+ annoGetObjectOptions,
+ annoSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &annoVTable;
+}
diff --git a/plugins/blur.c b/plugins/blur.c
new file mode 100644
index 0000000..0a7556f
--- /dev/null
+++ b/plugins/blur.c
@@ -0,0 +1,3250 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+#include <decoration.h>
+
+#include <X11/Xatom.h>
+#include <GL/glu.h>
+
+static CompMetadata blurMetadata;
+
+#define BLUR_GAUSSIAN_RADIUS_MAX 15
+
+#define BLUR_FILTER_4X_BILINEAR 0
+#define BLUR_FILTER_GAUSSIAN 1
+#define BLUR_FILTER_MIPMAP 2
+#define BLUR_FILTER_LAST BLUR_FILTER_MIPMAP
+
+typedef struct _BlurFunction {
+ struct _BlurFunction *next;
+
+ int handle;
+ int target;
+ int param;
+ int unit;
+ int startTC;
+ int numITC;
+} BlurFunction;
+
+typedef struct _BlurBox {
+ decor_point_t p1;
+ decor_point_t p2;
+} BlurBox;
+
+#define BLUR_STATE_CLIENT 0
+#define BLUR_STATE_DECOR 1
+#define BLUR_STATE_NUM 2
+
+typedef struct _BlurState {
+ int threshold;
+ BlurBox *box;
+ int nBox;
+ Bool active;
+ Bool clipped;
+} BlurState;
+
+static int corePrivateIndex;
+
+typedef struct _BlurCore {
+ ObjectAddProc objectAdd;
+} BlurCore;
+
+static int displayPrivateIndex;
+
+#define BLUR_DISPLAY_OPTION_PULSE 0
+#define BLUR_DISPLAY_OPTION_NUM 1
+
+typedef struct _BlurDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ MatchExpHandlerChangedProc matchExpHandlerChanged;
+ MatchPropertyChangedProc matchPropertyChanged;
+
+ CompOption opt[BLUR_DISPLAY_OPTION_NUM];
+
+ Atom blurAtom[BLUR_STATE_NUM];
+} BlurDisplay;
+
+#define BLUR_SCREEN_OPTION_BLUR_SPEED 0
+#define BLUR_SCREEN_OPTION_FOCUS_BLUR_MATCH 1
+#define BLUR_SCREEN_OPTION_FOCUS_BLUR 2
+#define BLUR_SCREEN_OPTION_ALPHA_BLUR_MATCH 3
+#define BLUR_SCREEN_OPTION_ALPHA_BLUR 4
+#define BLUR_SCREEN_OPTION_FILTER 5
+#define BLUR_SCREEN_OPTION_GAUSSIAN_RADIUS 6
+#define BLUR_SCREEN_OPTION_GAUSSIAN_STRENGTH 7
+#define BLUR_SCREEN_OPTION_MIPMAP_LOD 8
+#define BLUR_SCREEN_OPTION_SATURATION 9
+#define BLUR_SCREEN_OPTION_BLUR_OCCLUSION 10
+#define BLUR_SCREEN_OPTION_INDEPENDENT_TEX 11
+#define BLUR_SCREEN_OPTION_NUM 12
+
+typedef struct _BlurScreen {
+ int windowPrivateIndex;
+
+ CompOption opt[BLUR_SCREEN_OPTION_NUM];
+
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintTransformedOutputProc paintTransformedOutput;
+ PaintWindowProc paintWindow;
+ DrawWindowProc drawWindow;
+ DrawWindowTextureProc drawWindowTexture;
+
+ WindowResizeNotifyProc windowResizeNotify;
+ WindowMoveNotifyProc windowMoveNotify;
+
+ Bool alphaBlur;
+
+ int blurTime;
+ Bool moreBlur;
+
+ Bool blurOcclusion;
+
+ int filterRadius;
+
+ BlurFunction *srcBlurFunctions;
+ BlurFunction *dstBlurFunctions;
+
+ Region region;
+ Region tmpRegion;
+ Region tmpRegion2;
+ Region tmpRegion3;
+ Region occlusion;
+
+ BoxRec stencilBox;
+ GLint stencilBits;
+
+ CompOutput *output;
+ int count;
+
+ GLuint texture[2];
+
+ GLenum target;
+ float tx;
+ float ty;
+ int width;
+ int height;
+
+ GLuint program;
+ int maxTemp;
+ GLuint fbo;
+ Bool fboStatus;
+
+ float amp[BLUR_GAUSSIAN_RADIUS_MAX];
+ float pos[BLUR_GAUSSIAN_RADIUS_MAX];
+ int numTexop;
+
+ CompTransform mvp;
+} BlurScreen;
+
+typedef struct _BlurWindow {
+ int blur;
+ Bool pulse;
+ Bool focusBlur;
+
+ BlurState state[BLUR_STATE_NUM];
+ Bool propSet[BLUR_STATE_NUM];
+
+ Region region;
+ Region clip;
+} BlurWindow;
+
+#define GET_BLUR_CORE(c) \
+ ((BlurCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define BLUR_CORE(c) \
+ BlurCore *bc = GET_BLUR_CORE (c)
+
+#define GET_BLUR_DISPLAY(d) \
+ ((BlurDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define BLUR_DISPLAY(d) \
+ BlurDisplay *bd = GET_BLUR_DISPLAY (d)
+
+#define GET_BLUR_SCREEN(s, bd) \
+ ((BlurScreen *) (s)->base.privates[(bd)->screenPrivateIndex].ptr)
+
+#define BLUR_SCREEN(s) \
+ BlurScreen *bs = GET_BLUR_SCREEN (s, GET_BLUR_DISPLAY (s->display))
+
+#define GET_BLUR_WINDOW(w, bs) \
+ ((BlurWindow *) (w)->base.privates[(bs)->windowPrivateIndex].ptr)
+
+#define BLUR_WINDOW(w) \
+ BlurWindow *bw = GET_BLUR_WINDOW (w, \
+ GET_BLUR_SCREEN (w->screen, \
+ GET_BLUR_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+/* pascal triangle based kernel generator */
+static int
+blurCreateGaussianLinearKernel (int radius,
+ float strength,
+ float *amp,
+ float *pos,
+ int *optSize)
+{
+ float factor = 0.5f + (strength / 2.0f);
+ float buffer1[BLUR_GAUSSIAN_RADIUS_MAX * 3];
+ float buffer2[BLUR_GAUSSIAN_RADIUS_MAX * 3];
+ float *ar1 = buffer1;
+ float *ar2 = buffer2;
+ float *tmp;
+ float sum = 0;
+ int size = (radius * 2) + 1;
+ int mySize = ceil (radius / 2.0f);
+ int i, j;
+
+ ar1[0] = 1.0;
+ ar1[1] = 1.0;
+
+ for (i = 3; i <= size; i++)
+ {
+ ar2[0] = 1;
+
+ for (j = 1; j < i - 1; j++)
+ ar2[j] = (ar1[j - 1] + ar1[j]) * factor;
+
+ ar2[i - 1] = 1;
+
+ tmp = ar1;
+ ar1 = ar2;
+ ar2 = tmp;
+ }
+
+ /* normalize */
+ for (i = 0; i < size; i++)
+ sum += ar1[i];
+
+ if (sum != 0.0f)
+ sum = 1.0f / sum;
+
+ for (i = 0; i < size; i++)
+ ar1[i] *= sum;
+
+ i = 0;
+ j = 0;
+
+ if (radius & 1)
+ {
+ pos[i] = radius;
+ amp[i] = ar1[i];
+ i = 1;
+ j = 1;
+ }
+
+ for (; i < mySize; i++)
+ {
+ pos[i] = radius - j;
+ pos[i] -= ar1[j + 1] / (ar1[j] + ar1[j + 1]);
+ amp[i] = ar1[j] + ar1[j + 1];
+
+ j += 2;
+ }
+
+ pos[mySize] = 0.0;
+ amp[mySize] = ar1[radius];
+
+ *optSize = mySize;
+
+ return radius;
+}
+
+static void
+blurUpdateFilterRadius (CompScreen *s)
+{
+ BLUR_SCREEN (s);
+
+ switch (bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i) {
+ case BLUR_FILTER_4X_BILINEAR:
+ bs->filterRadius = 2;
+ break;
+ case BLUR_FILTER_GAUSSIAN: {
+ int radius = bs->opt[BLUR_SCREEN_OPTION_GAUSSIAN_RADIUS].value.i;
+ float strength = bs->opt[BLUR_SCREEN_OPTION_GAUSSIAN_STRENGTH].value.f;
+
+ blurCreateGaussianLinearKernel (radius, strength, bs->amp, bs->pos,
+ &bs->numTexop);
+
+ bs->filterRadius = radius;
+ } break;
+ case BLUR_FILTER_MIPMAP: {
+ float lod = bs->opt[BLUR_SCREEN_OPTION_MIPMAP_LOD].value.f;
+
+ bs->filterRadius = powf (2.0f, ceilf (lod));
+ } break;
+ }
+}
+
+static void
+blurDestroyFragmentFunctions (CompScreen *s,
+ BlurFunction **blurFunctions)
+{
+ BlurFunction *function, *next;
+
+ function = *blurFunctions;
+ while (function)
+ {
+ destroyFragmentFunction (s, function->handle);
+
+ next = function->next;
+ free (function);
+ function = next;
+ }
+
+ *blurFunctions = NULL;
+}
+
+static void
+blurReset (CompScreen *s)
+{
+ BLUR_SCREEN (s);
+
+ blurUpdateFilterRadius (s);
+ blurDestroyFragmentFunctions (s, &bs->srcBlurFunctions);
+ blurDestroyFragmentFunctions (s, &bs->dstBlurFunctions);
+
+ bs->width = bs->height = 0;
+
+ if (bs->program)
+ {
+ (*s->deletePrograms) (1, &bs->program);
+ bs->program = 0;
+ }
+}
+
+static Region
+regionFromBoxes (BlurBox *box,
+ int nBox,
+ int width,
+ int height)
+{
+ Region region;
+ REGION r;
+ int x, y;
+
+ region = XCreateRegion ();
+ if (!region)
+ return NULL;
+
+ r.rects = &r.extents;
+ r.numRects = r.size = 1;
+
+ while (nBox--)
+ {
+ decor_apply_gravity (box->p1.gravity, box->p1.x, box->p1.y,
+ width, height,
+ &x, &y);
+
+ r.extents.x1 = x;
+ r.extents.y1 = y;
+
+ decor_apply_gravity (box->p2.gravity, box->p2.x, box->p2.y,
+ width, height,
+ &x, &y);
+
+ r.extents.x2 = x;
+ r.extents.y2 = y;
+
+ if (r.extents.x2 > r.extents.x1 && r.extents.y2 > r.extents.y1)
+ XUnionRegion (region, &r, region);
+
+ box++;
+ }
+
+ return region;
+}
+
+static void
+blurWindowUpdateRegion (CompWindow *w)
+{
+ Region region, q;
+ REGION r;
+
+ BLUR_WINDOW (w);
+
+ region = XCreateRegion ();
+ if (!region)
+ return;
+
+ r.rects = &r.extents;
+ r.numRects = r.size = 1;
+
+ if (bw->state[BLUR_STATE_DECOR].threshold)
+ {
+ r.extents.x1 = -w->output.left;
+ r.extents.y1 = -w->output.top;
+ r.extents.x2 = w->width + w->output.right;
+ r.extents.y2 = w->height + w->output.bottom;
+
+ XUnionRegion (&r, region, region);
+
+ r.extents.x1 = 0;
+ r.extents.y1 = 0;
+ r.extents.x2 = w->width;
+ r.extents.y2 = w->height;
+
+ XSubtractRegion (region, &r, region);
+
+ bw->state[BLUR_STATE_DECOR].clipped = FALSE;
+
+ if (bw->state[BLUR_STATE_DECOR].nBox)
+ {
+ q = regionFromBoxes (bw->state[BLUR_STATE_DECOR].box,
+ bw->state[BLUR_STATE_DECOR].nBox,
+ w->width, w->height);
+ if (q)
+ {
+ XIntersectRegion (q, region, q);
+ if (!XEqualRegion (q, region))
+ {
+ XSubtractRegion (q, &emptyRegion, region);
+ bw->state[BLUR_STATE_DECOR].clipped = TRUE;
+ }
+
+ XDestroyRegion (q);
+ }
+ }
+ }
+
+ if (bw->state[BLUR_STATE_CLIENT].threshold)
+ {
+ r.extents.x1 = 0;
+ r.extents.y1 = 0;
+ r.extents.x2 = w->width;
+ r.extents.y2 = w->height;
+
+ bw->state[BLUR_STATE_CLIENT].clipped = FALSE;
+
+ if (bw->state[BLUR_STATE_CLIENT].nBox)
+ {
+ q = regionFromBoxes (bw->state[BLUR_STATE_CLIENT].box,
+ bw->state[BLUR_STATE_CLIENT].nBox,
+ w->width, w->height);
+ if (q)
+ {
+ XIntersectRegion (q, &r, q);
+ if (!XEqualRegion (q, &r))
+ bw->state[BLUR_STATE_CLIENT].clipped = TRUE;
+
+ XUnionRegion (q, region, region);
+ XDestroyRegion (q);
+ }
+ }
+ else
+ {
+ XUnionRegion (&r, region, region);
+ }
+ }
+
+ if (bw->region)
+ XDestroyRegion (bw->region);
+
+ if (XEmptyRegion (region))
+ {
+ bw->region = NULL;
+ XDestroyRegion (region);
+ }
+ else
+ {
+ bw->region = region;
+ XOffsetRegion (bw->region, w->attrib.x, w->attrib.y);
+ }
+}
+
+static void
+blurSetWindowBlur (CompWindow *w,
+ int state,
+ int threshold,
+ BlurBox *box,
+ int nBox)
+{
+ BLUR_WINDOW (w);
+
+ if (bw->state[state].box)
+ free (bw->state[state].box);
+
+ bw->state[state].threshold = threshold;
+ bw->state[state].box = box;
+ bw->state[state].nBox = nBox;
+
+ blurWindowUpdateRegion (w);
+
+ addWindowDamage (w);
+}
+
+static void
+blurUpdateAlphaWindowMatch (BlurScreen *bs,
+ CompWindow *w)
+{
+ BLUR_WINDOW (w);
+
+ if (!bw->propSet[BLUR_STATE_CLIENT])
+ {
+ CompMatch *match;
+
+ match = &bs->opt[BLUR_SCREEN_OPTION_ALPHA_BLUR_MATCH].value.match;
+ if (matchEval (match, w))
+ {
+ if (!bw->state[BLUR_STATE_CLIENT].threshold)
+ blurSetWindowBlur (w, BLUR_STATE_CLIENT, 4, NULL, 0);
+ }
+ else
+ {
+ if (bw->state[BLUR_STATE_CLIENT].threshold)
+ blurSetWindowBlur (w, BLUR_STATE_CLIENT, 0, NULL, 0);
+ }
+ }
+}
+
+static void
+blurUpdateWindowMatch (BlurScreen *bs,
+ CompWindow *w)
+{
+ CompMatch *match;
+ Bool focus;
+
+ BLUR_WINDOW (w);
+
+ blurUpdateAlphaWindowMatch (bs, w);
+
+ match = &bs->opt[BLUR_SCREEN_OPTION_FOCUS_BLUR_MATCH].value.match;
+
+ focus = w->screen->fragmentProgram && matchEval (match, w);
+ if (focus != bw->focusBlur)
+ {
+ bw->focusBlur = focus;
+ addWindowDamage (w);
+ }
+}
+
+static CompOption *
+blurGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ BLUR_SCREEN (screen);
+
+ *count = NUM_OPTIONS (bs);
+ return bs->opt;
+}
+
+static Bool
+blurSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index, filter;
+
+ BLUR_SCREEN (screen);
+
+ o = compFindOption (bs->opt, NUM_OPTIONS (bs), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case BLUR_SCREEN_OPTION_BLUR_SPEED:
+ if (compSetFloatOption (o, value))
+ {
+ bs->blurTime = 1000.0f / o->value.f;
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_FOCUS_BLUR_MATCH:
+ case BLUR_SCREEN_OPTION_ALPHA_BLUR_MATCH:
+ if (compSetMatchOption (o, value))
+ {
+ CompWindow *w;
+
+ for (w = screen->windows; w; w = w->next)
+ blurUpdateWindowMatch (bs, w);
+
+ bs->moreBlur = TRUE;
+ damageScreen (screen);
+
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_FOCUS_BLUR:
+ if (compSetBoolOption (o, value))
+ {
+ bs->moreBlur = TRUE;
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_ALPHA_BLUR:
+ if (compSetBoolOption (o, value))
+ {
+ if (screen->fragmentProgram && o->value.b)
+ bs->alphaBlur = TRUE;
+ else
+ bs->alphaBlur = FALSE;
+
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_FILTER:
+ if (compSetIntOption (o, value))
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_GAUSSIAN_RADIUS:
+ if (compSetIntOption (o, value))
+ {
+ filter = bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i;
+ if (filter == BLUR_FILTER_GAUSSIAN)
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ }
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_GAUSSIAN_STRENGTH:
+ if (compSetFloatOption (o, value))
+ {
+ filter = bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i;
+ if (filter == BLUR_FILTER_GAUSSIAN)
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ }
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_MIPMAP_LOD:
+ if (compSetFloatOption (o, value))
+ {
+ filter = bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i;
+ if (filter == BLUR_FILTER_MIPMAP)
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ }
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_SATURATION:
+ if (compSetIntOption (o, value))
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case BLUR_SCREEN_OPTION_BLUR_OCCLUSION:
+ if (compSetBoolOption (o, value))
+ {
+ bs->blurOcclusion = o->value.b;
+ blurReset (screen);
+ damageScreen (screen);
+ return TRUE;
+ }
+ case BLUR_SCREEN_OPTION_INDEPENDENT_TEX:
+ if (compSetBoolOption (o, value))
+ {
+ filter = bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i;
+ if (filter == BLUR_FILTER_GAUSSIAN)
+ {
+ blurReset (screen);
+ damageScreen (screen);
+ }
+ return TRUE;
+ }
+ default:
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+blurWindowUpdate (CompWindow *w,
+ int state)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *propData;
+ int threshold = 0;
+ BlurBox *box = NULL;
+ int nBox = 0;
+
+ BLUR_DISPLAY (w->screen->display);
+ BLUR_SCREEN (w->screen);
+ BLUR_WINDOW (w);
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ bd->blurAtom[state], 0L, 8192L, FALSE,
+ XA_INTEGER, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ bw->propSet[state] = TRUE;
+
+ if (n >= 2)
+ {
+ long *data = (long *) propData;
+
+ threshold = data[0];
+
+ nBox = (n - 2) / 6;
+ if (nBox)
+ {
+ box = malloc (sizeof (BlurBox) * nBox);
+ if (box)
+ {
+ int i;
+
+ data += 2;
+
+ for (i = 0; i < nBox; i++)
+ {
+ box[i].p1.gravity = *data++;
+ box[i].p1.x = *data++;
+ box[i].p1.y = *data++;
+ box[i].p2.gravity = *data++;
+ box[i].p2.x = *data++;
+ box[i].p2.y = *data++;
+ }
+ }
+ }
+ }
+
+ XFree (propData);
+ }
+ else
+ {
+ bw->propSet[state] = FALSE;
+ }
+
+ blurSetWindowBlur (w,
+ state,
+ threshold,
+ box,
+ nBox);
+
+ blurUpdateAlphaWindowMatch (bs, w);
+}
+
+static void
+blurPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ BLUR_SCREEN (s);
+
+ if (bs->moreBlur)
+ {
+ CompWindow *w;
+ int steps;
+ Bool focus = bs->opt[BLUR_SCREEN_OPTION_FOCUS_BLUR].value.b;
+ Bool focusBlur;
+
+ steps = (msSinceLastPaint * 0xffff) / bs->blurTime;
+ if (steps < 12)
+ steps = 12;
+
+ bs->moreBlur = FALSE;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ BLUR_WINDOW (w);
+
+ focusBlur = bw->focusBlur && focus;
+
+ if (!bw->pulse && (!focusBlur || w->id == s->display->activeWindow))
+ {
+ if (bw->blur)
+ {
+ bw->blur -= steps;
+ if (bw->blur > 0)
+ bs->moreBlur = TRUE;
+ else
+ bw->blur = 0;
+ }
+ }
+ else
+ {
+ if (bw->blur < 0xffff)
+ {
+ if (bw->pulse)
+ {
+ bw->blur += steps * 2;
+
+ if (bw->blur >= 0xffff)
+ {
+ bw->blur = 0xffff - 1;
+ bw->pulse = FALSE;
+ }
+
+ bs->moreBlur = TRUE;
+ }
+ else
+ {
+ bw->blur += steps;
+ if (bw->blur < 0xffff)
+ bs->moreBlur = TRUE;
+ else
+ bw->blur = 0xffff;
+ }
+ }
+ }
+ }
+ }
+
+ UNWRAP (bs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (bs, s, preparePaintScreen, blurPreparePaintScreen);
+
+ if (s->damageMask & COMP_SCREEN_DAMAGE_REGION_MASK)
+ {
+ /* walk from bottom to top and expand damage */
+ if (bs->alphaBlur)
+ {
+ CompWindow *w;
+ int x1, y1, x2, y2;
+ int count = 0;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ BLUR_WINDOW (w);
+
+ if (w->attrib.map_state != IsViewable || !w->damaged)
+ continue;
+
+ if (bw->region)
+ {
+ x1 = bw->region->extents.x1 - bs->filterRadius;
+ y1 = bw->region->extents.y1 - bs->filterRadius;
+ x2 = bw->region->extents.x2 + bs->filterRadius;
+ y2 = bw->region->extents.y2 + bs->filterRadius;
+
+ if (x1 < s->damage->extents.x2 &&
+ y1 < s->damage->extents.y2 &&
+ x2 > s->damage->extents.x1 &&
+ y2 > s->damage->extents.y1)
+ {
+ XShrinkRegion (s->damage,
+ -bs->filterRadius,
+ -bs->filterRadius);
+
+ count++;
+ }
+ }
+ }
+
+ bs->count = count;
+ }
+ }
+}
+
+static Bool
+blurPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ BLUR_SCREEN (s);
+
+ if (bs->alphaBlur)
+ {
+ bs->stencilBox = region->extents;
+ XSubtractRegion (region, &emptyRegion, bs->region);
+
+ if (mask & PAINT_SCREEN_REGION_MASK)
+ {
+ /* we need to redraw more than the screen region being updated */
+ if (bs->count)
+ {
+ XShrinkRegion (bs->region,
+ -bs->filterRadius * 2,
+ -bs->filterRadius * 2);
+ XIntersectRegion (bs->region, &s->region, bs->region);
+
+ region = bs->region;
+ }
+ }
+ }
+
+ if (!bs->blurOcclusion)
+ {
+ CompWindow *w;
+
+ XSubtractRegion (&emptyRegion, &emptyRegion, bs->occlusion);
+
+ for (w = s->windows; w; w = w->next)
+ XSubtractRegion (&emptyRegion, &emptyRegion,
+ GET_BLUR_WINDOW (w, bs)->clip);
+ }
+
+ bs->output = output;
+
+ UNWRAP (bs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (bs, s, paintOutput, blurPaintOutput);
+
+ return status;
+}
+
+static void
+blurPaintTransformedOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ BLUR_SCREEN (s);
+
+ if (!bs->blurOcclusion)
+ {
+ CompWindow *w;
+
+ XSubtractRegion (&emptyRegion, &emptyRegion, bs->occlusion);
+
+ for (w = s->windows; w; w = w->next)
+ XSubtractRegion (&emptyRegion, &emptyRegion,
+ GET_BLUR_WINDOW (w, bs)->clip);
+ }
+
+ UNWRAP (bs, s, paintTransformedOutput);
+ (*s->paintTransformedOutput) (s, sAttrib, transform,
+ region, output, mask);
+ WRAP (bs, s, paintTransformedOutput, blurPaintTransformedOutput);
+}
+
+static void
+blurDonePaintScreen (CompScreen *s)
+{
+ BLUR_SCREEN (s);
+
+ if (bs->moreBlur)
+ {
+ CompWindow *w;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ BLUR_WINDOW (w);
+
+ if (bw->blur > 0 && bw->blur < 0xffff)
+ addWindowDamage (w);
+ }
+ }
+
+ UNWRAP (bs, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (bs, s, donePaintScreen, blurDonePaintScreen);
+}
+
+static Bool
+blurPaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ BLUR_SCREEN (s);
+ BLUR_WINDOW (w);
+
+ UNWRAP (bs, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (bs, s, paintWindow, blurPaintWindow);
+
+ if (!bs->blurOcclusion && (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK))
+ {
+ XSubtractRegion (bs->occlusion, &emptyRegion, bw->clip);
+
+ if (!(w->lastMask & PAINT_WINDOW_NO_CORE_INSTANCE_MASK) &&
+ !(w->lastMask & PAINT_WINDOW_TRANSFORMED_MASK) && bw->region)
+ XUnionRegion (bs->occlusion, bw->region, bs->occlusion);
+ }
+
+ return status;
+}
+
+static int
+getSrcBlurFragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int param)
+{
+ BlurFunction *function;
+ CompFunctionData *data;
+ int target;
+
+ BLUR_SCREEN (s);
+
+ if (texture->target == GL_TEXTURE_2D)
+ target = COMP_FETCH_TARGET_2D;
+ else
+ target = COMP_FETCH_TARGET_RECT;
+
+ for (function = bs->srcBlurFunctions; function; function = function->next)
+ if (function->param == param && function->target == target)
+ return function->handle;
+
+ data = createFunctionData ();
+ if (data)
+ {
+ static char *temp[] = { "offset0", "offset1", "sum" };
+ int i, handle = 0;
+ char str[1024];
+ Bool ok = TRUE;
+
+ for (i = 0; i < sizeof (temp) / sizeof (temp[0]); i++)
+ ok &= addTempHeaderOpToFunctionData (data, temp[i]);
+
+ snprintf (str, 1024,
+ "MUL offset0, program.env[%d].xyzw, { 1.0, 1.0, 0.0, 0.0 };"
+ "MUL offset1, program.env[%d].zwww, { 1.0, 1.0, 0.0, 0.0 };",
+ param, param);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ switch (bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i) {
+ case BLUR_FILTER_4X_BILINEAR:
+ default:
+ ok &= addFetchOpToFunctionData (data, "output", "offset0", target);
+ ok &= addDataOpToFunctionData (data, "MUL sum, output, 0.25;");
+ ok &= addFetchOpToFunctionData (data, "output", "-offset0", target);
+ ok &= addDataOpToFunctionData (data, "MAD sum, output, 0.25, sum;");
+ ok &= addFetchOpToFunctionData (data, "output", "offset1", target);
+ ok &= addDataOpToFunctionData (data, "MAD sum, output, 0.25, sum;");
+ ok &= addFetchOpToFunctionData (data, "output", "-offset1", target);
+ ok &= addDataOpToFunctionData (data,
+ "MAD output, output, 0.25, sum;");
+ break;
+ }
+
+ if (!ok)
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ function = malloc (sizeof (BlurFunction));
+ if (function)
+ {
+ handle = createFragmentFunction (s, "blur", data);
+
+ function->handle = handle;
+ function->target = target;
+ function->param = param;
+ function->unit = 0;
+
+ function->next = bs->srcBlurFunctions;
+ bs->srcBlurFunctions = function;
+ }
+
+ destroyFunctionData (data);
+
+ return handle;
+ }
+
+ return 0;
+}
+
+static int
+getDstBlurFragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int param,
+ int unit,
+ int numITC,
+ int startTC)
+{
+ BlurFunction *function;
+ CompFunctionData *data;
+ int target;
+ char *targetString;
+
+ BLUR_SCREEN (s);
+
+ if (texture->target == GL_TEXTURE_2D)
+ {
+ target = COMP_FETCH_TARGET_2D;
+ targetString = "2D";
+ }
+ else
+ {
+ target = COMP_FETCH_TARGET_RECT;
+ targetString = "RECT";
+ }
+
+ for (function = bs->dstBlurFunctions; function; function = function->next)
+ if (function->param == param &&
+ function->target == target &&
+ function->unit == unit &&
+ function->numITC == numITC &&
+ function->startTC == startTC)
+ return function->handle;
+
+ data = createFunctionData ();
+ if (data)
+ {
+ static char *temp[] = { "fCoord", "mask", "sum", "dst" };
+ int i, j, handle = 0;
+ char str[1024];
+ int saturation = bs->opt[BLUR_SCREEN_OPTION_SATURATION].value.i;
+ Bool ok = TRUE;
+ int numIndirect;
+ int numIndirectOp;
+ int base, end, ITCbase;
+
+ for (i = 0; i < sizeof (temp) / sizeof (temp[0]); i++)
+ ok &= addTempHeaderOpToFunctionData (data, temp[i]);
+
+ if (saturation < 100)
+ ok &= addTempHeaderOpToFunctionData (data, "sat");
+
+ switch (bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i) {
+ case BLUR_FILTER_4X_BILINEAR: {
+ static char *filterTemp[] = {
+ "t0", "t1", "t2", "t3",
+ "s0", "s1", "s2", "s3"
+ };
+
+ for (i = 0; i < sizeof (filterTemp) / sizeof (filterTemp[0]); i++)
+ ok &= addTempHeaderOpToFunctionData (data, filterTemp[i]);
+
+ ok &= addFetchOpToFunctionData (data, "output", NULL, target);
+ ok &= addColorOpToFunctionData (data, "output", "output");
+
+ snprintf (str, 1024,
+ "MUL fCoord, fragment.position, program.env[%d];",
+ param);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "ADD t0, fCoord, program.env[%d];"
+ "TEX s0, t0, texture[%d], %s;"
+
+ "SUB t1, fCoord, program.env[%d];"
+ "TEX s1, t1, texture[%d], %s;"
+
+ "MAD t2, program.env[%d], { -1.0, 1.0, 0.0, 0.0 }, fCoord;"
+ "TEX s2, t2, texture[%d], %s;"
+
+ "MAD t3, program.env[%d], { 1.0, -1.0, 0.0, 0.0 }, fCoord;"
+ "TEX s3, t3, texture[%d], %s;"
+
+ "MUL_SAT mask, output.a, program.env[%d];"
+
+ "MUL sum, s0, 0.25;"
+ "MAD sum, s1, 0.25, sum;"
+ "MAD sum, s2, 0.25, sum;"
+ "MAD sum, s3, 0.25, sum;",
+
+ param + 2, unit, targetString,
+ param + 2, unit, targetString,
+ param + 2, unit, targetString,
+ param + 2, unit, targetString,
+ param + 1);
+
+ ok &= addDataOpToFunctionData (data, str);
+ } break;
+ case BLUR_FILTER_GAUSSIAN: {
+
+ /* try to use only half of the available temporaries to keep
+ other plugins working */
+ if ((bs->maxTemp / 2) - 4 >
+ (bs->numTexop + (bs->numTexop - numITC)) * 2)
+ {
+ numIndirect = 1;
+ numIndirectOp = bs->numTexop;
+ }
+ else
+ {
+ i = MAX(((bs->maxTemp / 2) - 4) / 4, 1);
+ numIndirect = ceil ((float)bs->numTexop / (float)i);
+ numIndirectOp = ceil ((float)bs->numTexop / (float)numIndirect);
+ }
+
+ /* we need to define all coordinate temporaries if we have
+ multiple indirection steps */
+ j = (numIndirect > 1) ? 0 : numITC;
+
+ for (i = 0; i < numIndirectOp * 2; i++)
+ {
+ snprintf (str, 1024, "pix_%d", i);
+ ok &= addTempHeaderOpToFunctionData (data, str);
+ }
+
+ for (i = j * 2; i < numIndirectOp * 2; i++)
+ {
+ snprintf (str, 1024, "coord_%d", i);
+ ok &= addTempHeaderOpToFunctionData (data, str);
+ }
+
+ ok &= addFetchOpToFunctionData (data, "output", NULL, target);
+ ok &= addColorOpToFunctionData (data, "output", "output");
+
+ snprintf (str, 1024,
+ "MUL fCoord, fragment.position, program.env[%d];",
+ param);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "TEX sum, fCoord, texture[%d], %s;",
+ unit + 1, targetString);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "MUL_SAT mask, output.a, program.env[%d];"
+ "MUL sum, sum, %f;",
+ param + 1, bs->amp[bs->numTexop]);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ for (j = 0; j < numIndirect; j++)
+ {
+ base = j * numIndirectOp;
+ end = MIN ((j + 1) * numIndirectOp, bs->numTexop) - base;
+
+ ITCbase = MAX (numITC - base, 0);
+
+ for (i = ITCbase; i < end; i++)
+ {
+ snprintf (str, 1024,
+ "ADD coord_%d, fCoord, {0.0, %g, 0.0, 0.0};"
+ "SUB coord_%d, fCoord, {0.0, %g, 0.0, 0.0};",
+ i * 2, bs->pos[base + i] * bs->ty,
+ (i * 2) + 1, bs->pos[base + i] * bs->ty);
+
+ ok &= addDataOpToFunctionData (data, str);
+ }
+
+ for (i = 0; i < ITCbase; i++)
+ {
+ snprintf (str, 1024,
+ "TXP pix_%d, fragment.texcoord[%d], texture[%d], %s;"
+ "TXP pix_%d, fragment.texcoord[%d], texture[%d], %s;",
+ i * 2, startTC + ((i + base) * 2),
+ unit + 1, targetString,
+ (i * 2) + 1, startTC + 1 + ((i + base) * 2),
+ unit + 1, targetString);
+
+ ok &= addDataOpToFunctionData (data, str);
+ }
+
+ for (i = ITCbase; i < end; i++)
+ {
+ snprintf (str, 1024,
+ "TEX pix_%d, coord_%d, texture[%d], %s;"
+ "TEX pix_%d, coord_%d, texture[%d], %s;",
+ i * 2, i * 2,
+ unit + 1, targetString,
+ (i * 2) + 1, (i * 2) + 1,
+ unit + 1, targetString);
+
+ ok &= addDataOpToFunctionData (data, str);
+ }
+
+ for (i = 0; i < end * 2; i++)
+ {
+ snprintf (str, 1024,
+ "MAD sum, pix_%d, %f, sum;",
+ i, bs->amp[base + (i / 2)]);
+
+ ok &= addDataOpToFunctionData (data, str);
+ }
+ }
+
+ } break;
+ case BLUR_FILTER_MIPMAP:
+ ok &= addFetchOpToFunctionData (data, "output", NULL, target);
+ ok &= addColorOpToFunctionData (data, "output", "output");
+
+ snprintf (str, 1024,
+ "MUL fCoord, fragment.position, program.env[%d].xyzz;"
+ "MOV fCoord.w, program.env[%d].w;"
+ "TXB sum, fCoord, texture[%d], %s;"
+ "MUL_SAT mask, output.a, program.env[%d];",
+ param, param, unit, targetString,
+ param + 1);
+
+ ok &= addDataOpToFunctionData (data, str);
+ break;
+ }
+
+ if (saturation < 100)
+ {
+ snprintf (str, 1024,
+ "MUL sat, sum, { 1.0, 1.0, 1.0, 0.0 };"
+ "DP3 sat, sat, { %f, %f, %f, %f };"
+ "LRP sum.xyz, %f, sum, sat;",
+ RED_SATURATION_WEIGHT, GREEN_SATURATION_WEIGHT,
+ BLUE_SATURATION_WEIGHT, 0.0f, saturation / 100.0f);
+
+ ok &= addDataOpToFunctionData (data, str);
+ }
+
+ snprintf (str, 1024,
+ "MAD dst, mask, -output.a, mask;"
+ "MAD output.rgb, sum, dst.a, output;"
+ "ADD output.a, output.a, dst.a;");
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ if (!ok)
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ function = malloc (sizeof (BlurFunction));
+ if (function)
+ {
+ handle = createFragmentFunction (s, "blur", data);
+
+ function->handle = handle;
+ function->target = target;
+ function->param = param;
+ function->unit = unit;
+ function->numITC = numITC;
+ function->startTC = startTC;
+
+ function->next = bs->dstBlurFunctions;
+ bs->dstBlurFunctions = function;
+ }
+
+ destroyFunctionData (data);
+
+ return handle;
+ }
+
+ return 0;
+}
+
+static Bool
+projectVertices (CompScreen *s,
+ CompOutput *output,
+ const CompTransform *transform,
+ const float *object,
+ float *screen,
+ int n)
+{
+ GLdouble dProjection[16];
+ GLdouble dModel[16];
+ GLint viewport[4];
+ double x, y, z;
+ int i;
+
+ viewport[0] = output->region.extents.x1;
+ viewport[1] = s->height - output->region.extents.y2;
+ viewport[2] = output->width;
+ viewport[3] = output->height;
+
+ for (i = 0; i < 16; i++)
+ {
+ dModel[i] = transform->m[i];
+ dProjection[i] = s->projection[i];
+ }
+
+ while (n--)
+ {
+ if (!gluProject (object[0], object[1], object[2],
+ dModel, dProjection, viewport,
+ &x, &y, &z))
+ return FALSE;
+
+ screen[0] = x;
+ screen[1] = y;
+
+ object += 3;
+ screen += 2;
+ }
+
+ return TRUE;
+}
+
+static Bool
+loadFragmentProgram (CompScreen *s,
+ GLuint *program,
+ const char *string)
+{
+ GLint errorPos;
+
+ /* clear errors */
+ glGetError ();
+
+ if (!*program)
+ (*s->genPrograms) (1, program);
+
+ (*s->bindProgram) (GL_FRAGMENT_PROGRAM_ARB, *program);
+ (*s->programString) (GL_FRAGMENT_PROGRAM_ARB,
+ GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen (string), string);
+
+ glGetIntegerv (GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
+ if (glGetError () != GL_NO_ERROR || errorPos != -1)
+ {
+ compLogMessage ("blur", CompLogLevelError,
+ "Failed to load blur program %s", string);
+
+ (*s->deletePrograms) (1, program);
+ *program = 0;
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+loadFilterProgram (CompScreen *s, int numITC)
+{
+ char buffer[4096];
+ char *targetString;
+ char *str = buffer;
+ int i, j;
+ int numIndirect;
+ int numIndirectOp;
+ int base, end, ITCbase;
+
+ BLUR_SCREEN (s);
+
+ if (bs->target == GL_TEXTURE_2D)
+ targetString = "2D";
+ else
+ targetString = "RECT";
+
+ str += sprintf (str,
+ "!!ARBfp1.0"
+ "ATTRIB texcoord = fragment.texcoord[0];"
+ "TEMP sum;");
+
+ if (bs->maxTemp - 1 > (bs->numTexop + (bs->numTexop - numITC)) * 2)
+ {
+ numIndirect = 1;
+ numIndirectOp = bs->numTexop;
+ }
+ else
+ {
+ i = (bs->maxTemp - 1) / 4;
+ numIndirect = ceil ((float)bs->numTexop / (float)i);
+ numIndirectOp = ceil ((float)bs->numTexop / (float)numIndirect);
+ }
+
+ /* we need to define all coordinate temporaries if we have
+ multiple indirection steps */
+ j = (numIndirect > 1) ? 0 : numITC;
+
+ for (i = 0; i < numIndirectOp; i++)
+ str += sprintf (str,"TEMP pix_%d, pix_%d;", i * 2, (i * 2) + 1);
+
+ for (i = j; i < numIndirectOp; i++)
+ str += sprintf (str,"TEMP coord_%d, coord_%d;", i * 2, (i * 2) + 1);
+
+ str += sprintf (str,
+ "TEX sum, texcoord, texture[0], %s;",
+ targetString);
+
+ str += sprintf (str,
+ "MUL sum, sum, %f;",
+ bs->amp[bs->numTexop]);
+
+ for (j = 0; j < numIndirect; j++)
+ {
+ base = j * numIndirectOp;
+ end = MIN ((j + 1) * numIndirectOp, bs->numTexop) - base;
+
+ ITCbase = MAX (numITC - base, 0);
+
+ for (i = ITCbase; i < end; i++)
+ str += sprintf (str,
+ "ADD coord_%d, texcoord, {%g, 0.0, 0.0, 0.0};"
+ "SUB coord_%d, texcoord, {%g, 0.0, 0.0, 0.0};",
+ i * 2, bs->pos[base + i] * bs->tx,
+ (i * 2) + 1, bs->pos[base + i] * bs->tx);
+
+ for (i = 0; i < ITCbase; i++)
+ str += sprintf (str,
+ "TEX pix_%d, fragment.texcoord[%d], texture[0], %s;"
+ "TEX pix_%d, fragment.texcoord[%d], texture[0], %s;",
+ i * 2, ((i + base) * 2) + 1, targetString,
+ (i * 2) + 1, ((i + base) * 2) + 2, targetString);
+
+ for (i = ITCbase; i < end; i++)
+ str += sprintf (str,
+ "TEX pix_%d, coord_%d, texture[0], %s;"
+ "TEX pix_%d, coord_%d, texture[0], %s;",
+ i * 2, i * 2, targetString,
+ (i * 2) + 1, (i * 2) + 1, targetString);
+
+ for (i = 0; i < end * 2; i++)
+ str += sprintf (str,
+ "MAD sum, pix_%d, %f, sum;",
+ i, bs->amp[base + (i / 2)]);
+ }
+
+ str += sprintf (str,
+ "MOV result.color, sum;"
+ "END");
+
+ return loadFragmentProgram (s, &bs->program, buffer);
+}
+
+static int
+fboPrologue (CompScreen *s)
+{
+ BLUR_SCREEN (s);
+
+ if (!bs->fbo)
+ return FALSE;
+
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, bs->fbo);
+
+ /* bind texture and check status the first time */
+ if (!bs->fboStatus)
+ {
+ (*s->framebufferTexture2D) (GL_FRAMEBUFFER_EXT,
+ GL_COLOR_ATTACHMENT0_EXT,
+ bs->target, bs->texture[1],
+ 0);
+
+ bs->fboStatus = (*s->checkFramebufferStatus) (GL_FRAMEBUFFER_EXT);
+ if (bs->fboStatus != GL_FRAMEBUFFER_COMPLETE_EXT)
+ {
+ compLogMessage ("blur", CompLogLevelError,
+ "Framebuffer incomplete");
+
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, 0);
+ (*s->deleteFramebuffers) (1, &bs->fbo);
+
+ bs->fbo = 0;
+
+ return 0;
+ }
+ }
+
+ glPushAttrib (GL_VIEWPORT_BIT | GL_ENABLE_BIT);
+
+ glDrawBuffer (GL_COLOR_ATTACHMENT0_EXT);
+ glReadBuffer (GL_COLOR_ATTACHMENT0_EXT);
+
+ glDisable (GL_CLIP_PLANE0);
+ glDisable (GL_CLIP_PLANE1);
+ glDisable (GL_CLIP_PLANE2);
+ glDisable (GL_CLIP_PLANE3);
+
+ glViewport (0, 0, bs->width, bs->height);
+ glMatrixMode (GL_PROJECTION);
+ glPushMatrix ();
+ glLoadIdentity ();
+ glOrtho (0.0, bs->width, 0.0, bs->height, -1.0, 1.0);
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+ glLoadIdentity ();
+
+ return TRUE;
+}
+
+static void
+fboEpilogue (CompScreen *s)
+{
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, 0);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ glDepthRange (0, 1);
+ glViewport (-1, -1, 2, 2);
+ glRasterPos2f (0, 0);
+
+ s->rasterX = s->rasterY = 0;
+
+ glMatrixMode (GL_PROJECTION);
+ glPopMatrix ();
+ glMatrixMode (GL_MODELVIEW);
+ glPopMatrix ();
+
+ glDrawBuffer (GL_BACK);
+ glReadBuffer (GL_BACK);
+
+ glPopAttrib ();
+}
+
+static Bool
+fboUpdate (CompScreen *s,
+ BoxPtr pBox,
+ int nBox)
+{
+ int i, y, iTC = 0;
+ Bool wasCulled = glIsEnabled (GL_CULL_FACE);
+
+ BLUR_SCREEN (s);
+
+ if (s->maxTextureUnits &&
+ bs->opt[BLUR_SCREEN_OPTION_INDEPENDENT_TEX].value.b)
+ iTC = MIN ((s->maxTextureUnits - 1) / 2, bs->numTexop);
+
+ if (!bs->program)
+ if (!loadFilterProgram (s, iTC))
+ return FALSE;
+
+ if (!fboPrologue (s))
+ return FALSE;
+
+ glDisable (GL_CULL_FACE);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glBindTexture (bs->target, bs->texture[0]);
+
+ glEnable (GL_FRAGMENT_PROGRAM_ARB);
+ (*s->bindProgram) (GL_FRAGMENT_PROGRAM_ARB, bs->program);
+
+ glBegin (GL_QUADS);
+
+ while (nBox--)
+ {
+ y = s->height - pBox->y2;
+
+ for (i = 0; i < iTC; i++)
+ {
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2),
+ bs->tx * (pBox->x1 + bs->pos[i]),
+ bs->ty * y);
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2) + 1,
+ bs->tx * (pBox->x1 - bs->pos[i]),
+ bs->ty * y);
+ }
+
+ glTexCoord2f (bs->tx * pBox->x1, bs->ty * y);
+ glVertex2i (pBox->x1, y);
+
+ for (i = 0; i < iTC; i++)
+ {
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2),
+ bs->tx * (pBox->x2 + bs->pos[i]),
+ bs->ty * y);
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2) + 1,
+ bs->tx * (pBox->x2 - bs->pos[i]),
+ bs->ty * y);
+ }
+
+ glTexCoord2f (bs->tx * pBox->x2, bs->ty * y);
+ glVertex2i (pBox->x2, y);
+
+ y = s->height - pBox->y1;
+
+ for (i = 0; i < iTC; i++)
+ {
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2),
+ bs->tx * (pBox->x2 + bs->pos[i]),
+ bs->ty * y);
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2) + 1,
+ bs->tx * (pBox->x2 - bs->pos[i]),
+ bs->ty * y);
+ }
+
+ glTexCoord2f (bs->tx * pBox->x2, bs->ty * y);
+ glVertex2i (pBox->x2, y);
+
+ for (i = 0; i < iTC; i++)
+ {
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2),
+ bs->tx * (pBox->x1 + bs->pos[i]),
+ bs->ty * y);
+ (*s->multiTexCoord2f) (GL_TEXTURE1_ARB + (i * 2) + 1,
+ bs->tx * (pBox->x1 - bs->pos[i]),
+ bs->ty * y);
+ }
+
+ glTexCoord2f (bs->tx * pBox->x1, bs->ty * y);
+ glVertex2i (pBox->x1, y);
+
+ pBox++;
+ }
+
+ glEnd ();
+
+ glDisable (GL_FRAGMENT_PROGRAM_ARB);
+
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ if (wasCulled)
+ glEnable (GL_CULL_FACE);
+
+ fboEpilogue (s);
+
+ return TRUE;
+}
+
+#define MAX_VERTEX_PROJECT_COUNT 20
+
+static void
+blurProjectRegion (CompWindow *w,
+ CompOutput *output,
+ const CompTransform *transform)
+{
+ CompScreen *s = w->screen;
+ float screen[MAX_VERTEX_PROJECT_COUNT * 2];
+ float vertices[MAX_VERTEX_PROJECT_COUNT * 3];
+ int nVertices, nQuadCombine;
+ int i, j, stride;
+ float *v, *vert;
+ float minX, maxX, minY, maxY, minZ, maxZ;
+ float *scr;
+ REGION region;
+
+ BLUR_SCREEN(s);
+
+ w->vCount = w->indexCount = 0;
+ (*w->screen->addWindowGeometry) (w, NULL, 0, bs->tmpRegion2,
+ &infiniteRegion);
+
+ if (!w->vCount)
+ return;
+
+ nVertices = (w->indexCount) ? w->indexCount: w->vCount;
+ nQuadCombine = 1;
+
+ stride = w->vertexStride;
+ vert = w->vertices + (stride - 3);
+
+ /* we need to find the best value here */
+ if (nVertices <= MAX_VERTEX_PROJECT_COUNT)
+ {
+ for (i = 0; i < nVertices; i++)
+ {
+ if (w->indexCount)
+ {
+ v = vert + (stride * w->indices[i]);
+ }
+ else
+ {
+ v = vert + (stride * i);
+ }
+
+ vertices[i * 3] = v[0];
+ vertices[(i * 3) + 1] = v[1];
+ vertices[(i * 3) + 2] = v[2];
+ }
+ }
+ else
+ {
+ minX = s->width;
+ maxX = 0;
+ minY = s->height;
+ maxY = 0;
+ minZ = 1000000;
+ maxZ = -1000000;
+
+ for (i = 0; i < w->vCount; i++)
+ {
+ v = vert + (stride * i);
+
+ if (v[0] < minX)
+ minX = v[0];
+
+ if (v[0] > maxX)
+ maxX = v[0];
+
+ if (v[1] < minY)
+ minY = v[1];
+
+ if (v[1] > maxY)
+ maxY = v[1];
+
+ if (v[2] < minZ)
+ minZ = v[2];
+
+ if (v[2] > maxZ)
+ maxZ = v[2];
+ }
+
+ vertices[0] = vertices[9] = minX;
+ vertices[1] = vertices[4] = minY;
+ vertices[3] = vertices[6] = maxX;
+ vertices[7] = vertices[10] = maxY;
+ vertices[2] = vertices[5] = maxZ;
+ vertices[8] = vertices[11] = maxZ;
+
+ nVertices = 4;
+
+ if (maxZ != minZ)
+ {
+ vertices[12] = vertices[21] = minX;
+ vertices[13] = vertices[16] = minY;
+ vertices[15] = vertices[18] = maxX;
+ vertices[19] = vertices[22] = maxY;
+ vertices[14] = vertices[17] = minZ;
+ vertices[20] = vertices[23] = minZ;
+ nQuadCombine = 2;
+ }
+ }
+
+
+ if (!projectVertices (w->screen, output, transform, vertices, screen,
+ nVertices * nQuadCombine))
+ return;
+
+ region.rects = &region.extents;
+ region.numRects = 1;
+
+ for (i = 0; i < nVertices / 4; i++)
+ {
+ scr = screen + (i * 4 * 2);
+
+ minX = s->width;
+ maxX = 0;
+ minY = s->height;
+ maxY = 0;
+
+ for (j = 0; j < 8 * nQuadCombine; j += 2)
+ {
+ if (scr[j] < minX)
+ minX = scr[j];
+
+ if (scr[j] > maxX)
+ maxX = scr[j];
+
+ if (scr[j + 1] < minY)
+ minY = scr[j + 1];
+
+ if (scr[j + 1] > maxY)
+ maxY = scr[j + 1];
+ }
+
+ region.extents.x1 = minX - bs->filterRadius;
+ region.extents.y1 = (s->height - maxY - bs->filterRadius);
+ region.extents.x2 = maxX + bs->filterRadius + 0.5f;
+ region.extents.y2 = (s->height - minY + bs->filterRadius + 0.5f);
+
+ XUnionRegion (&region, bs->tmpRegion3, bs->tmpRegion3);
+ }
+}
+
+static Bool
+blurUpdateDstTexture (CompWindow *w,
+ const CompTransform *transform,
+ BoxPtr pExtents,
+ int clientThreshold)
+{
+ CompScreen *s = w->screen;
+ BoxPtr pBox;
+ int nBox;
+ int y;
+ int filter;
+
+ BLUR_SCREEN (s);
+ BLUR_WINDOW (w);
+
+ filter = bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i;
+
+ /* create empty region */
+ XSubtractRegion (&emptyRegion, &emptyRegion, bs->tmpRegion3);
+
+ if (filter == BLUR_FILTER_GAUSSIAN)
+ {
+ REGION region;
+
+ region.rects = &region.extents;
+ region.numRects = 1;
+
+ if (bw->state[BLUR_STATE_DECOR].threshold)
+ {
+ /* top */
+ region.extents.x1 = w->attrib.x - w->output.left;
+ region.extents.y1 = w->attrib.y - w->output.top;
+ region.extents.x2 = w->attrib.x + w->width + w->output.right;
+ region.extents.y2 = w->attrib.y;
+
+ XIntersectRegion (bs->tmpRegion, &region, bs->tmpRegion2);
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+
+ /* bottom */
+ region.extents.x1 = w->attrib.x - w->output.left;
+ region.extents.y1 = w->attrib.y + w->height;
+ region.extents.x2 = w->attrib.x + w->width + w->output.right;
+ region.extents.y2 = w->attrib.y + w->height + w->output.bottom;
+
+ XIntersectRegion (bs->tmpRegion, &region, bs->tmpRegion2);
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+
+ /* left */
+ region.extents.x1 = w->attrib.x - w->output.left;
+ region.extents.y1 = w->attrib.y;
+ region.extents.x2 = w->attrib.x;
+ region.extents.y2 = w->attrib.y + w->height;
+
+ XIntersectRegion (bs->tmpRegion, &region, bs->tmpRegion2);
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+
+ /* right */
+ region.extents.x1 = w->attrib.x + w->width;
+ region.extents.y1 = w->attrib.y;
+ region.extents.x2 = w->attrib.x + w->width + w->output.right;
+ region.extents.y2 = w->attrib.y + w->height;
+
+ XIntersectRegion (bs->tmpRegion, &region, bs->tmpRegion2);
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+ }
+
+ if (clientThreshold)
+ {
+ /* center */
+ region.extents.x1 = w->attrib.x;
+ region.extents.y1 = w->attrib.y;
+ region.extents.x2 = w->attrib.x + w->width;
+ region.extents.y2 = w->attrib.y + w->height;
+
+ XIntersectRegion (bs->tmpRegion, &region, bs->tmpRegion2);
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+ }
+ }
+ else
+ {
+ /* get region that needs blur */
+ XSubtractRegion (bs->tmpRegion, &emptyRegion, bs->tmpRegion2);
+
+ if (bs->tmpRegion2->numRects)
+ blurProjectRegion (w, bs->output, transform);
+ }
+
+ XIntersectRegion (bs->tmpRegion3, bs->region, bs->tmpRegion);
+
+ if (XEmptyRegion (bs->tmpRegion))
+ return FALSE;
+
+ pBox = &bs->tmpRegion->extents;
+ nBox = 1;
+
+ *pExtents = bs->tmpRegion->extents;
+
+ if (!bs->texture[0] || bs->width != s->width || bs->height != s->height)
+ {
+ int i, textures = 1;
+
+ bs->width = s->width;
+ bs->height = s->height;
+
+ if (s->textureNonPowerOfTwo ||
+ (POWER_OF_TWO (bs->width) && POWER_OF_TWO (bs->height)))
+ {
+ bs->target = GL_TEXTURE_2D;
+ bs->tx = 1.0f / bs->width;
+ bs->ty = 1.0f / bs->height;
+ }
+ else
+ {
+ bs->target = GL_TEXTURE_RECTANGLE_NV;
+ bs->tx = 1;
+ bs->ty = 1;
+ }
+
+ if (filter == BLUR_FILTER_GAUSSIAN)
+ {
+ if (s->fbo && !bs->fbo)
+ (*s->genFramebuffers) (1, &bs->fbo);
+
+ if (!bs->fbo)
+ compLogMessage ("blur", CompLogLevelError,
+ "Failed to create framebuffer object");
+
+ textures = 2;
+ }
+
+ bs->fboStatus = FALSE;
+
+ for (i = 0; i < textures; i++)
+ {
+ if (!bs->texture[i])
+ glGenTextures (1, &bs->texture[i]);
+
+ glBindTexture (bs->target, bs->texture[i]);
+
+ glTexImage2D (bs->target, 0, GL_RGB,
+ bs->width,
+ bs->height,
+ 0, GL_BGRA,
+
+#if IMAGE_BYTE_ORDER == MSBFirst
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else
+ GL_UNSIGNED_BYTE,
+#endif
+
+ NULL);
+
+ glTexParameteri (bs->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (bs->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ if (filter == BLUR_FILTER_MIPMAP)
+ {
+ if (!s->fbo)
+ {
+ compLogMessage ("blur", CompLogLevelWarn,
+ "GL_EXT_framebuffer_object extension "
+ "is required for mipmap filter");
+ }
+ else if (bs->target != GL_TEXTURE_2D)
+ {
+ compLogMessage ("blur", CompLogLevelWarn,
+ "GL_ARB_texture_non_power_of_two "
+ "extension is required for mipmap filter");
+ }
+ else
+ {
+ glTexParameteri (bs->target, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameteri (bs->target, GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR_MIPMAP_LINEAR);
+ }
+ }
+
+ glTexParameteri (bs->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (bs->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glCopyTexSubImage2D (bs->target, 0, 0, 0, 0, 0,
+ bs->width, bs->height);
+ }
+ }
+ else
+ {
+ glBindTexture (bs->target, bs->texture[0]);
+
+ while (nBox--)
+ {
+ y = s->height - pBox->y2;
+
+ glCopyTexSubImage2D (bs->target, 0,
+ pBox->x1, y,
+ pBox->x1, y,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1);
+
+ pBox++;
+ }
+ }
+
+ switch (filter) {
+ case BLUR_FILTER_GAUSSIAN:
+ return fboUpdate (s, bs->tmpRegion->rects, bs->tmpRegion->numRects);
+ case BLUR_FILTER_MIPMAP:
+ (*s->generateMipmap) (bs->target);
+ break;
+ case BLUR_FILTER_4X_BILINEAR:
+ break;
+ }
+
+ glBindTexture (bs->target, 0);
+
+ return TRUE;
+}
+
+static Bool
+blurDrawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *attrib,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ BLUR_SCREEN (s);
+ BLUR_WINDOW (w);
+
+ if (bs->alphaBlur && bw->region)
+ {
+ int clientThreshold;
+
+ /* only care about client window blurring when it's translucent */
+ if (mask & PAINT_WINDOW_TRANSLUCENT_MASK)
+ clientThreshold = bw->state[BLUR_STATE_CLIENT].threshold;
+ else
+ clientThreshold = 0;
+
+ if (bw->state[BLUR_STATE_DECOR].threshold || clientThreshold)
+ {
+ Bool clipped = FALSE;
+ BoxRec box = { 0, 0, 0, 0 };
+ Region reg;
+ int i;
+
+ for (i = 0; i < 16; i++)
+ bs->mvp.m[i] = s->projection[i];
+
+ matrixMultiply (&bs->mvp, &bs->mvp, transform);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ reg = &infiniteRegion;
+ else
+ reg = region;
+
+ XIntersectRegion (bw->region, reg, bs->tmpRegion);
+ if (!bs->blurOcclusion && !(mask & PAINT_WINDOW_TRANSFORMED_MASK))
+ XSubtractRegion(bs->tmpRegion, bw->clip, bs->tmpRegion);
+
+ if (blurUpdateDstTexture (w, transform, &box, clientThreshold))
+ {
+ if (clientThreshold)
+ {
+ if (bw->state[BLUR_STATE_CLIENT].clipped)
+ {
+ if (bs->stencilBits)
+ {
+ bw->state[BLUR_STATE_CLIENT].active = TRUE;
+ clipped = TRUE;
+ }
+ }
+ else
+ {
+ bw->state[BLUR_STATE_CLIENT].active = TRUE;
+ }
+ }
+
+ if (bw->state[BLUR_STATE_DECOR].threshold)
+ {
+ if (bw->state[BLUR_STATE_DECOR].clipped)
+ {
+ if (bs->stencilBits)
+ {
+ bw->state[BLUR_STATE_DECOR].active = TRUE;
+ clipped = TRUE;
+ }
+ }
+ else
+ {
+ bw->state[BLUR_STATE_DECOR].active = TRUE;
+ }
+ }
+
+ if (!bs->blurOcclusion && bw->clip->numRects)
+ clipped = TRUE;
+ }
+
+ if (!bs->blurOcclusion)
+ XSubtractRegion (bw->region, bw->clip, bs->tmpRegion);
+ else
+ XSubtractRegion (bw->region, &emptyRegion, bs->tmpRegion);
+
+ if (!clientThreshold)
+ {
+ REGION wRegion;
+ wRegion.numRects = 1;
+ wRegion.rects = &wRegion.extents;
+ wRegion.extents.x1 = w->attrib.x;
+ wRegion.extents.y1 = w->attrib.y;
+ wRegion.extents.x2 = w->attrib.x + w->width;
+ wRegion.extents.y2 = w->attrib.y + w->height;
+ XSubtractRegion (bs->tmpRegion, &wRegion, bs->tmpRegion);
+ }
+
+ if (clipped)
+ {
+ w->vCount = w->indexCount = 0;
+ (*w->screen->addWindowGeometry) (w, NULL, 0, bs->tmpRegion, reg);
+ if (w->vCount)
+ {
+ BoxRec clearBox = bs->stencilBox;
+
+ bs->stencilBox = box;
+
+ glEnable (GL_STENCIL_TEST);
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+
+ if (clearBox.x2 > clearBox.x1 && clearBox.y2 > clearBox.y1)
+ {
+ glPushAttrib (GL_SCISSOR_BIT);
+ glEnable (GL_SCISSOR_TEST);
+ glScissor (clearBox.x1,
+ s->height - clearBox.y2,
+ clearBox.x2 - clearBox.x1,
+ clearBox.y2 - clearBox.y1);
+ glClear (GL_STENCIL_BUFFER_BIT);
+ glPopAttrib ();
+ }
+
+ glStencilFunc (GL_ALWAYS, 0x1, ~0);
+ glStencilOp (GL_KEEP, GL_KEEP, GL_REPLACE);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ (*w->drawWindowGeometry) (w);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glDisable (GL_STENCIL_TEST);
+ }
+ }
+ }
+ }
+
+ UNWRAP (bs, s, drawWindow);
+ status = (*s->drawWindow) (w, transform, attrib, region, mask);
+ WRAP (bs, s, drawWindow, blurDrawWindow);
+
+ bw->state[BLUR_STATE_CLIENT].active = FALSE;
+ bw->state[BLUR_STATE_DECOR].active = FALSE;
+
+ return status;
+}
+
+static void
+blurDrawWindowTexture (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ int state;
+
+ BLUR_SCREEN (s);
+ BLUR_WINDOW (w);
+
+ if (texture == w->texture)
+ state = BLUR_STATE_CLIENT;
+ else
+ state = BLUR_STATE_DECOR;
+
+ if (bw->blur || bw->state[state].active)
+ {
+ FragmentAttrib fa = *attrib;
+ int param, function;
+ int unit = 0;
+ GLfloat dx, dy;
+ int iTC = 0;
+
+ if (bw->blur)
+ {
+ param = allocFragmentParameters (&fa, 1);
+
+ function = getSrcBlurFragmentFunction (s, texture, param);
+ if (function)
+ {
+ addFragmentFunction (&fa, function);
+
+ dx = ((texture->matrix.xx / 2.1f) * bw->blur) / 65535.0f;
+ dy = ((texture->matrix.yy / 2.1f) * bw->blur) / 65535.0f;
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param, dx, dy, dx, -dy);
+
+ /* bi-linear filtering is required */
+ mask |= PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK;
+ }
+ }
+
+ if (bw->state[state].active)
+ {
+ FragmentAttrib dstFa = fa;
+ float threshold = (float) bw->state[state].threshold;
+
+ switch (bs->opt[BLUR_SCREEN_OPTION_FILTER].value.i) {
+ case BLUR_FILTER_4X_BILINEAR:
+ dx = bs->tx / 2.1f;
+ dy = bs->ty / 2.1f;
+
+ param = allocFragmentParameters (&dstFa, 3);
+ unit = allocFragmentTextureUnits (&dstFa, 1);
+
+ function =
+ getDstBlurFragmentFunction (s, texture, param, unit, 0, 0);
+ if (function)
+ {
+ addFragmentFunction (&dstFa, function);
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit);
+ glBindTexture (bs->target, bs->texture[0]);
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB, param,
+ bs->tx, bs->ty, 0.0f, 0.0f);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param + 1,
+ threshold, threshold,
+ threshold, threshold);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param + 2,
+ dx, dy, 0.0f, 0.0f);
+ }
+ break;
+ case BLUR_FILTER_GAUSSIAN:
+ if (bs->opt[BLUR_SCREEN_OPTION_INDEPENDENT_TEX].value.b)
+ {
+ /* leave one free texture unit for fragment position */
+ iTC = MAX (0, s->maxTextureUnits - (w->texUnits + 1));
+ if (iTC)
+ iTC = MIN (iTC / 2, bs->numTexop);
+ }
+
+ param = allocFragmentParameters (&dstFa, 2);
+ unit = allocFragmentTextureUnits (&dstFa, 2);
+
+ function =
+ getDstBlurFragmentFunction (s, texture, param, unit,
+ iTC, w->texUnits);
+ if (function)
+ {
+ int i;
+
+ addFragmentFunction (&dstFa, function);
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit);
+ glBindTexture (bs->target, bs->texture[0]);
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit + 1);
+ glBindTexture (bs->target, bs->texture[1]);
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param,
+ bs->tx, bs->ty,
+ 0.0f, 0.0f);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param + 1,
+ threshold, threshold,
+ threshold, threshold);
+
+ if (iTC)
+ {
+ CompTransform tm, rm;
+ float s_gen[4], t_gen[4], q_gen[4];
+
+ for (i = 0; i < 16; i++)
+ tm.m[i] = 0;
+ tm.m[0] = (bs->output->width / 2.0) * bs->tx;
+ tm.m[5] = (bs->output->height / 2.0) * bs->ty;
+ tm.m[10] = 1;
+
+ tm.m[12] = (bs->output->width / 2.0 +
+ bs->output->region.extents.x1) * bs->tx;
+ tm.m[13] = (bs->output->height / 2.0 + s->height -
+ bs->output->region.extents.y2) * bs->ty;
+ tm.m[14] = 1;
+ tm.m[15] = 1;
+
+ matrixMultiply (&tm, &tm, &bs->mvp);
+
+ for (i = 0; i < iTC; i++)
+ {
+ (*s->activeTexture) (GL_TEXTURE0_ARB + w->texUnits
+ + (i * 2));
+
+ matrixGetIdentity (&rm);
+ rm.m[13] = bs->ty * bs->pos[i];
+ matrixMultiply (&rm, &rm, &tm);
+ s_gen[0] = rm.m[0];
+ s_gen[1] = rm.m[4];
+ s_gen[2] = rm.m[8];
+ s_gen[3] = rm.m[12];
+ t_gen[0] = rm.m[1];
+ t_gen[1] = rm.m[5];
+ t_gen[2] = rm.m[9];
+ t_gen[3] = rm.m[13];
+ q_gen[0] = rm.m[3];
+ q_gen[1] = rm.m[7];
+ q_gen[2] = rm.m[11];
+ q_gen[3] = rm.m[15];
+
+ glTexGenfv(GL_T, GL_OBJECT_PLANE, t_gen);
+ glTexGenfv(GL_S, GL_OBJECT_PLANE, s_gen);
+ glTexGenfv(GL_Q, GL_OBJECT_PLANE, q_gen);
+
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+ glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glEnable(GL_TEXTURE_GEN_Q);
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB + w->texUnits
+ + 1 + (i * 2));
+
+ matrixGetIdentity (&rm);
+ rm.m[13] = -bs->ty * bs->pos[i];
+ matrixMultiply (&rm, &rm, &tm);
+ s_gen[0] = rm.m[0];
+ s_gen[1] = rm.m[4];
+ s_gen[2] = rm.m[8];
+ s_gen[3] = rm.m[12];
+ t_gen[0] = rm.m[1];
+ t_gen[1] = rm.m[5];
+ t_gen[2] = rm.m[9];
+ t_gen[3] = rm.m[13];
+ q_gen[0] = rm.m[3];
+ q_gen[1] = rm.m[7];
+ q_gen[2] = rm.m[11];
+ q_gen[3] = rm.m[15];
+
+ glTexGenfv(GL_T, GL_OBJECT_PLANE, t_gen);
+ glTexGenfv(GL_S, GL_OBJECT_PLANE, s_gen);
+ glTexGenfv(GL_Q, GL_OBJECT_PLANE, q_gen);
+
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+ glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE,
+ GL_OBJECT_LINEAR);
+
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ glEnable(GL_TEXTURE_GEN_Q);
+ }
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+ }
+
+ }
+ break;
+ case BLUR_FILTER_MIPMAP:
+ param = allocFragmentParameters (&dstFa, 2);
+ unit = allocFragmentTextureUnits (&dstFa, 1);
+
+ function =
+ getDstBlurFragmentFunction (s, texture, param, unit, 0, 0);
+ if (function)
+ {
+ float lod = bs->opt[BLUR_SCREEN_OPTION_MIPMAP_LOD].value.f;
+
+ addFragmentFunction (&dstFa, function);
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit);
+ glBindTexture (bs->target, bs->texture[0]);
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param,
+ bs->tx, bs->ty,
+ 0.0f, lod);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param + 1,
+ threshold, threshold,
+ threshold, threshold);
+ }
+ break;
+ }
+
+ if (bw->state[state].clipped ||
+ (!bs->blurOcclusion && bw->clip->numRects))
+ {
+ glEnable (GL_STENCIL_TEST);
+
+ glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP);
+ glStencilFunc (GL_EQUAL, 0x1, ~0);
+
+ /* draw region with destination blur */
+ UNWRAP (bs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, &dstFa, mask);
+
+ glStencilFunc (GL_EQUAL, 0, ~0);
+
+ /* draw region without destination blur */
+ (*s->drawWindowTexture) (w, texture, &fa, mask);
+ WRAP (bs, s, drawWindowTexture, blurDrawWindowTexture);
+
+ glDisable (GL_STENCIL_TEST);
+ }
+ else
+ {
+ /* draw with destination blur */
+ UNWRAP (bs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, &dstFa, mask);
+ WRAP (bs, s, drawWindowTexture, blurDrawWindowTexture);
+ }
+ }
+ else
+ {
+ UNWRAP (bs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, &fa, mask);
+ WRAP (bs, s, drawWindowTexture, blurDrawWindowTexture);
+ }
+
+ if (unit)
+ {
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit);
+ glBindTexture (bs->target, 0);
+ (*s->activeTexture) (GL_TEXTURE0_ARB + unit + 1);
+ glBindTexture (bs->target, 0);
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+ }
+
+ if (iTC)
+ {
+ int i;
+ for (i = w->texUnits; i < w->texUnits + (2 * iTC); i++)
+ {
+ (*s->activeTexture) (GL_TEXTURE0_ARB + i);
+ glDisable(GL_TEXTURE_GEN_S);
+ glDisable(GL_TEXTURE_GEN_T);
+ glDisable(GL_TEXTURE_GEN_Q);
+ }
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+ }
+ }
+ else
+ {
+ UNWRAP (bs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, attrib, mask);
+ WRAP (bs, s, drawWindowTexture, blurDrawWindowTexture);
+ }
+}
+
+static void
+blurHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ Window activeWindow = d->activeWindow;
+
+ BLUR_DISPLAY (d);
+
+ UNWRAP (bd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (bd, d, handleEvent, blurHandleEvent);
+
+ if (d->activeWindow != activeWindow)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, activeWindow);
+ if (w)
+ {
+ BLUR_SCREEN (w->screen);
+
+ if (bs->opt[BLUR_SCREEN_OPTION_FOCUS_BLUR].value.b)
+ {
+ addWindowDamage (w);
+ bs->moreBlur = TRUE;
+ }
+ }
+
+ w = findWindowAtDisplay (d, d->activeWindow);
+ if (w)
+ {
+ BLUR_SCREEN (w->screen);
+
+ if (bs->opt[BLUR_SCREEN_OPTION_FOCUS_BLUR].value.b)
+ {
+ addWindowDamage (w);
+ bs->moreBlur = TRUE;
+ }
+ }
+ }
+
+ if (event->type == PropertyNotify)
+ {
+ int i;
+
+ for (i = 0; i < BLUR_STATE_NUM; i++)
+ {
+ if (event->xproperty.atom == bd->blurAtom[i])
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ blurWindowUpdate (w, i);
+ }
+ }
+ }
+}
+
+static void
+blurWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ BLUR_SCREEN (w->screen);
+
+ if (bs->alphaBlur)
+ {
+ BLUR_WINDOW (w);
+
+ if (bw->state[BLUR_STATE_CLIENT].threshold ||
+ bw->state[BLUR_STATE_DECOR].threshold)
+ blurWindowUpdateRegion (w);
+ }
+
+ UNWRAP (bs, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (bs, w->screen, windowResizeNotify, blurWindowResizeNotify);
+}
+
+static void
+blurWindowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+ BLUR_SCREEN (w->screen);
+ BLUR_WINDOW (w);
+
+ if (bw->region)
+ XOffsetRegion (bw->region, dx, dy);
+
+ UNWRAP (bs, w->screen, windowMoveNotify);
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+ WRAP (bs, w->screen, windowMoveNotify, blurWindowMoveNotify);
+}
+
+static CompOption *
+blurGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ BLUR_DISPLAY (display);
+
+ *count = NUM_OPTIONS (bd);
+ return bd->opt;
+}
+
+static Bool
+blurSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ BLUR_DISPLAY (display);
+
+ o = compFindOption (bd->opt, NUM_OPTIONS (bd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static Bool
+blurPulse (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ int xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", d->activeWindow);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w && w->screen->fragmentProgram)
+ {
+ BLUR_SCREEN (w->screen);
+ BLUR_WINDOW (w);
+
+ bw->pulse = TRUE;
+ bs->moreBlur = TRUE;
+
+ addWindowDamage (w);
+ }
+
+ return FALSE;
+}
+
+static void
+blurMatchExpHandlerChanged (CompDisplay *d)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ BLUR_DISPLAY (d);
+
+ UNWRAP (bd, d, matchExpHandlerChanged);
+ (*d->matchExpHandlerChanged) (d);
+ WRAP (bd, d, matchExpHandlerChanged, blurMatchExpHandlerChanged);
+
+ /* match options are up to date after the call to matchExpHandlerChanged */
+ for (s = d->screens; s; s = s->next)
+ {
+ BLUR_SCREEN (s);
+
+ for (w = s->windows; w; w = w->next)
+ blurUpdateWindowMatch (bs, w);
+ }
+}
+
+static void
+blurMatchPropertyChanged (CompDisplay *d,
+ CompWindow *w)
+{
+ BLUR_DISPLAY (d);
+ BLUR_SCREEN (w->screen);
+
+ blurUpdateWindowMatch (bs, w);
+
+ UNWRAP (bd, d, matchPropertyChanged);
+ (*d->matchPropertyChanged) (d, w);
+ WRAP (bd, d, matchPropertyChanged, blurMatchPropertyChanged);
+}
+
+static void
+blurWindowAdd (CompScreen *s,
+ CompWindow *w)
+{
+ BLUR_SCREEN (s);
+
+ blurWindowUpdate (w, BLUR_STATE_CLIENT);
+ blurWindowUpdate (w, BLUR_STATE_DECOR);
+
+ blurUpdateWindowMatch (bs, w);
+}
+
+static void
+blurObjectAdd (CompObject *parent,
+ CompObject *object)
+{
+ static ObjectAddProc dispTab[] = {
+ (ObjectAddProc) 0, /* CoreAdd */
+ (ObjectAddProc) 0, /* DisplayAdd */
+ (ObjectAddProc) 0, /* ScreenAdd */
+ (ObjectAddProc) blurWindowAdd
+ };
+
+ BLUR_CORE (&core);
+
+ UNWRAP (bc, &core, objectAdd);
+ (*core.objectAdd) (parent, object);
+ WRAP (bc, &core, objectAdd, blurObjectAdd);
+
+ DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), (parent, object));
+}
+
+static Bool
+blurInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ BlurCore *bc;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ bc = malloc (sizeof (BlurCore));
+ if (!bc)
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ free (bc);
+ return FALSE;
+ }
+
+ WRAP (bc, c, objectAdd, blurObjectAdd);
+
+ c->base.privates[corePrivateIndex].ptr = bc;
+
+ return TRUE;
+}
+
+static void
+blurFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ BLUR_CORE (c);
+
+ freeDisplayPrivateIndex (displayPrivateIndex);
+
+ UNWRAP (bc, c, objectAdd);
+
+ free (bc);
+}
+
+static const CompMetadataOptionInfo blurDisplayOptionInfo[] = {
+ { "pulse", "bell", 0, blurPulse, 0 }
+};
+
+static Bool
+blurInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ BlurDisplay *bd;
+
+ bd = malloc (sizeof (BlurDisplay));
+ if (!bd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &blurMetadata,
+ blurDisplayOptionInfo,
+ bd->opt,
+ BLUR_DISPLAY_OPTION_NUM))
+ {
+ free (bd);
+ return FALSE;
+ }
+
+ bd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (bd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, bd->opt, BLUR_DISPLAY_OPTION_NUM);
+ free (bd);
+ return FALSE;
+ }
+
+ bd->blurAtom[BLUR_STATE_CLIENT] =
+ XInternAtom (d->display, "_COMPIZ_WM_WINDOW_BLUR", 0);
+ bd->blurAtom[BLUR_STATE_DECOR] =
+ XInternAtom (d->display, DECOR_BLUR_ATOM_NAME, 0);
+
+ WRAP (bd, d, handleEvent, blurHandleEvent);
+ WRAP (bd, d, matchExpHandlerChanged, blurMatchExpHandlerChanged);
+ WRAP (bd, d, matchPropertyChanged, blurMatchPropertyChanged);
+
+ d->base.privates[displayPrivateIndex].ptr = bd;
+
+ return TRUE;
+}
+
+static void
+blurFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ BLUR_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, bd->screenPrivateIndex);
+
+ UNWRAP (bd, d, handleEvent);
+ UNWRAP (bd, d, matchExpHandlerChanged);
+ UNWRAP (bd, d, matchPropertyChanged);
+
+ compFiniDisplayOptions (d, bd->opt, BLUR_DISPLAY_OPTION_NUM);
+
+ free (bd);
+}
+
+static const CompMetadataOptionInfo blurScreenOptionInfo[] = {
+ { "blur_speed", "float", "<min>0.1</min>", 0, 0 },
+ { "focus_blur_match", "match", 0, 0, 0 },
+ { "focus_blur", "bool", 0, 0, 0 },
+ { "alpha_blur_match", "match", 0, 0, 0 },
+ { "alpha_blur", "bool", 0, 0, 0 },
+ { "filter", "int", RESTOSTRING (0, BLUR_FILTER_LAST), 0, 0 },
+ { "gaussian_radius", "int", "<min>1</min><max>15</max>", 0, 0 },
+ { "gaussian_strength", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
+ { "mipmap_lod", "float", "<min>0.1</min><max>5.0</max>", 0, 0 },
+ { "saturation", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "occlusion", "bool", 0, 0, 0 },
+ { "independent_tex", "bool", 0, 0, 0 }
+};
+
+static Bool
+blurInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ BlurScreen *bs;
+ int i;
+
+ BLUR_DISPLAY (s->display);
+
+ bs = malloc (sizeof (BlurScreen));
+ if (!bs)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &blurMetadata,
+ blurScreenOptionInfo,
+ bs->opt,
+ BLUR_SCREEN_OPTION_NUM))
+ {
+ free (bs);
+ return FALSE;
+ }
+
+ bs->region = XCreateRegion ();
+ if (!bs->region)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ free (bs);
+ return FALSE;
+ }
+
+ bs->tmpRegion = XCreateRegion ();
+ if (!bs->tmpRegion)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ XDestroyRegion (bs->region);
+ free (bs);
+ return FALSE;
+ }
+
+ bs->tmpRegion2 = XCreateRegion ();
+ if (!bs->tmpRegion2)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ XDestroyRegion (bs->region);
+ XDestroyRegion (bs->tmpRegion);
+ free (bs);
+ return FALSE;
+ }
+
+ bs->tmpRegion3 = XCreateRegion ();
+ if (!bs->tmpRegion3)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ XDestroyRegion (bs->region);
+ XDestroyRegion (bs->tmpRegion);
+ XDestroyRegion (bs->tmpRegion2);
+ free (bs);
+ return FALSE;
+ }
+
+ bs->occlusion = XCreateRegion ();
+ if (!bs->occlusion)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ XDestroyRegion (bs->region);
+ XDestroyRegion (bs->tmpRegion);
+ XDestroyRegion (bs->tmpRegion2);
+ XDestroyRegion (bs->tmpRegion3);
+ free (bs);
+ return FALSE;
+ }
+
+
+ bs->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (bs->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+ XDestroyRegion (bs->region);
+ XDestroyRegion (bs->tmpRegion);
+ XDestroyRegion (bs->tmpRegion2);
+ XDestroyRegion (bs->tmpRegion3);
+ XDestroyRegion (bs->occlusion);
+ free (bs);
+ return FALSE;
+ }
+
+ bs->output = NULL;
+ bs->count = 0;
+
+ bs->filterRadius = 0;
+
+ bs->srcBlurFunctions = NULL;
+ bs->dstBlurFunctions = NULL;
+ bs->blurTime = 1000.0f /
+ bs->opt[BLUR_SCREEN_OPTION_BLUR_SPEED].value.f;
+ bs->moreBlur = FALSE;
+ bs->blurOcclusion =
+ bs->opt[BLUR_SCREEN_OPTION_BLUR_OCCLUSION].value.b;
+
+ for (i = 0; i < 2; i++)
+ bs->texture[i] = 0;
+
+ bs->program = 0;
+ bs->maxTemp = 32;
+ bs->fbo = 0;
+ bs->fboStatus = FALSE;
+
+ glGetIntegerv (GL_STENCIL_BITS, &bs->stencilBits);
+ if (!bs->stencilBits)
+ compLogMessage ("blur", CompLogLevelWarn,
+ "No stencil buffer. Region based blur disabled");
+
+ /* We need GL_ARB_fragment_program for blur */
+ if (s->fragmentProgram)
+ bs->alphaBlur = bs->opt[BLUR_SCREEN_OPTION_ALPHA_BLUR].value.b;
+ else
+ bs->alphaBlur = FALSE;
+
+ if (s->fragmentProgram)
+ {
+ int tmp[4];
+ s->getProgramiv (GL_FRAGMENT_PROGRAM_ARB,
+ GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
+ tmp);
+ bs->maxTemp = tmp[0];
+ }
+
+ WRAP (bs, s, preparePaintScreen, blurPreparePaintScreen);
+ WRAP (bs, s, donePaintScreen, blurDonePaintScreen);
+ WRAP (bs, s, paintOutput, blurPaintOutput);
+ WRAP (bs, s, paintTransformedOutput, blurPaintTransformedOutput);
+ WRAP (bs, s, paintWindow, blurPaintWindow);
+ WRAP (bs, s, drawWindow, blurDrawWindow);
+ WRAP (bs, s, drawWindowTexture, blurDrawWindowTexture);
+ WRAP (bs, s, windowResizeNotify, blurWindowResizeNotify);
+ WRAP (bs, s, windowMoveNotify, blurWindowMoveNotify);
+
+ s->base.privates[bd->screenPrivateIndex].ptr = bs;
+
+ blurUpdateFilterRadius (s);
+
+ return TRUE;
+}
+
+static void
+blurFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ int i;
+
+ BLUR_SCREEN (s);
+
+ blurDestroyFragmentFunctions (s, &bs->srcBlurFunctions);
+ blurDestroyFragmentFunctions (s, &bs->dstBlurFunctions);
+
+ damageScreen (s);
+
+ XDestroyRegion (bs->region);
+ XDestroyRegion (bs->tmpRegion);
+ XDestroyRegion (bs->tmpRegion2);
+ XDestroyRegion (bs->tmpRegion3);
+ XDestroyRegion (bs->occlusion);
+
+ if (bs->fbo)
+ (*s->deleteFramebuffers) (1, &bs->fbo);
+
+ for (i = 0; i < 2; i++)
+ if (bs->texture[i])
+ glDeleteTextures (1, &bs->texture[i]);
+
+ freeWindowPrivateIndex (s, bs->windowPrivateIndex);
+
+ UNWRAP (bs, s, preparePaintScreen);
+ UNWRAP (bs, s, donePaintScreen);
+ UNWRAP (bs, s, paintOutput);
+ UNWRAP (bs, s, paintTransformedOutput);
+ UNWRAP (bs, s, paintWindow);
+ UNWRAP (bs, s, drawWindow);
+ UNWRAP (bs, s, drawWindowTexture);
+ UNWRAP (bs, s, windowResizeNotify);
+ UNWRAP (bs, s, windowMoveNotify);
+
+ compFiniScreenOptions (s, bs->opt, BLUR_SCREEN_OPTION_NUM);
+
+ free (bs);
+}
+
+static Bool
+blurInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ BlurWindow *bw;
+ int i;
+
+ BLUR_SCREEN (w->screen);
+
+ bw = malloc (sizeof (BlurWindow));
+ if (!bw)
+ return FALSE;
+
+ bw->blur = 0;
+ bw->pulse = FALSE;
+ bw->focusBlur = FALSE;
+
+ for (i = 0; i < BLUR_STATE_NUM; i++)
+ {
+ bw->state[i].threshold = 0;
+ bw->state[i].box = NULL;
+ bw->state[i].nBox = 0;
+ bw->state[i].clipped = FALSE;
+ bw->state[i].active = FALSE;
+
+ bw->propSet[i] = FALSE;
+ }
+
+ bw->region = NULL;
+
+ bw->clip = XCreateRegion ();
+ if (!bw->clip)
+ {
+ free (bw);
+ return FALSE;
+ }
+
+ w->base.privates[bs->windowPrivateIndex].ptr = bw;
+
+ if (w->base.parent)
+ blurWindowAdd (w->screen, w);
+
+ return TRUE;
+}
+
+static void
+blurFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ int i;
+
+ BLUR_WINDOW (w);
+
+ for (i = 0; i < BLUR_STATE_NUM; i++)
+ if (bw->state[i].box)
+ free (bw->state[i].box);
+
+ if (bw->region)
+ XDestroyRegion (bw->region);
+
+ XDestroyRegion (bw->clip);
+
+ free (bw);
+}
+
+static CompBool
+blurInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) blurInitCore,
+ (InitPluginObjectProc) blurInitDisplay,
+ (InitPluginObjectProc) blurInitScreen,
+ (InitPluginObjectProc) blurInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+blurFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) blurFiniCore,
+ (FiniPluginObjectProc) blurFiniDisplay,
+ (FiniPluginObjectProc) blurFiniScreen,
+ (FiniPluginObjectProc) blurFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+blurGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) blurGetDisplayOptions,
+ (GetPluginObjectOptionsProc) blurGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+blurSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) blurSetDisplayOption,
+ (SetPluginObjectOptionProc) blurSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+blurInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&blurMetadata,
+ p->vTable->name,
+ blurDisplayOptionInfo,
+ BLUR_DISPLAY_OPTION_NUM,
+ blurScreenOptionInfo,
+ BLUR_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&blurMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&blurMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+blurFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&blurMetadata);
+}
+
+static CompMetadata *
+blurGetMetadata (CompPlugin *plugin)
+{
+ return &blurMetadata;
+}
+
+static CompPluginVTable blurVTable = {
+ "blur",
+ blurGetMetadata,
+ blurInit,
+ blurFini,
+ blurInitObject,
+ blurFiniObject,
+ blurGetObjectOptions,
+ blurSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &blurVTable;
+}
diff --git a/plugins/clone.c b/plugins/clone.c
new file mode 100644
index 0000000..bda208e
--- /dev/null
+++ b/plugins/clone.c
@@ -0,0 +1,937 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/time.h>
+
+#include <compiz-core.h>
+
+static CompMetadata cloneMetadata;
+
+static int displayPrivateIndex;
+
+#define CLONE_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define CLONE_DISPLAY_OPTION_NUM 1
+
+typedef struct _CloneDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[CLONE_DISPLAY_OPTION_NUM];
+} CloneDisplay;
+
+typedef struct _CloneClone {
+ int src;
+ int dst;
+ Region region;
+ Window input;
+} CloneClone;
+
+typedef struct _CloneScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ OutputChangeNotifyProc outputChangeNotify;
+
+ int grabIndex;
+ Bool grab;
+
+ float offset;
+
+ Bool transformed;
+
+ CloneClone *clone;
+ int nClone;
+
+ int x, y;
+ int grabbedOutput;
+ int src, dst;
+} CloneScreen;
+
+#define GET_CLONE_DISPLAY(d) \
+ ((CloneDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define CLONE_DISPLAY(d) \
+ CloneDisplay *cd = GET_CLONE_DISPLAY (d)
+
+#define GET_CLONE_SCREEN(s, cd) \
+ ((CloneScreen *) (s)->base.privates[(cd)->screenPrivateIndex].ptr)
+
+#define CLONE_SCREEN(s) \
+ CloneScreen *cs = GET_CLONE_SCREEN (s, GET_CLONE_DISPLAY (s->display))
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static void
+cloneRemove (CompScreen *s,
+ int i)
+{
+ CloneClone *clone;
+
+ CLONE_SCREEN (s);
+
+ clone = malloc (sizeof (CloneClone) * (cs->nClone - 1));
+ if (clone)
+ {
+ int j, k = 0;
+
+ for (j = 0; j < cs->nClone; j++)
+ if (j != i)
+ memcpy (&clone[k++], &cs->clone[j],
+ sizeof (CloneClone));
+
+ XDestroyRegion (cs->clone[i].region);
+ XDestroyWindow (s->display->display, cs->clone[i].input);
+
+ free (cs->clone);
+
+ cs->clone = clone;
+ cs->nClone--;
+ }
+}
+
+static void
+cloneFinish (CompScreen *s)
+{
+ CloneClone *clone;
+ int i;
+
+ CLONE_SCREEN (s);
+
+ cs->grab = FALSE;
+
+ if (cs->src != cs->dst)
+ {
+ clone = NULL;
+
+ /* check if we should replace current clone */
+ for (i = 0; i < cs->nClone; i++)
+ {
+ if (cs->clone[i].dst == cs->dst)
+ {
+ clone = &cs->clone[i];
+ break;
+ }
+ }
+
+ /* no existing clone for this destination, we must allocate one */
+ if (!clone)
+ {
+ Region region;
+
+ region = XCreateRegion ();
+ if (region)
+ {
+ clone =
+ realloc (cs->clone,
+ sizeof (CloneClone) * (cs->nClone + 1));
+ if (clone)
+ {
+ XSetWindowAttributes attr;
+ int x, y;
+
+ cs->clone = clone;
+ clone = &cs->clone[cs->nClone++];
+ clone->region = region;
+
+ attr.override_redirect = TRUE;
+
+ x = s->outputDev[cs->dst].region.extents.x1;
+ y = s->outputDev[cs->dst].region.extents.y1;
+
+ clone->input =
+ XCreateWindow (s->display->display,
+ s->root, x, y,
+ s->outputDev[cs->dst].width,
+ s->outputDev[cs->dst].height,
+ 0, 0, InputOnly, CopyFromParent,
+ CWOverrideRedirect, &attr);
+ XMapRaised (s->display->display, clone->input);
+ }
+ else
+ {
+ XDestroyRegion (region);
+ }
+ }
+ }
+
+ if (clone)
+ {
+ clone->src = cs->src;
+ clone->dst = cs->dst;
+ }
+ }
+
+ if (cs->grabbedOutput != cs->dst)
+ {
+ /* remove clone */
+ for (i = 0; i < cs->nClone; i++)
+ {
+ if (cs->clone[i].dst == cs->grabbedOutput)
+ {
+ cloneRemove (s, i);
+ break;
+ }
+ }
+ }
+}
+
+static void
+clonePreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ int i;
+
+ CLONE_SCREEN (s);
+
+ if (cs->grab)
+ {
+ if (cs->grabIndex)
+ {
+ cs->offset -= msSinceLastPaint * 0.005f;
+ if (cs->offset < 0.0f)
+ cs->offset = 0.0f;
+ }
+ else
+ {
+ cs->offset += msSinceLastPaint * 0.005f;
+ if (cs->offset >= 1.0f)
+ cs->offset = 1.0f;
+ }
+ }
+
+ UNWRAP (cs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (cs, s, preparePaintScreen, clonePreparePaintScreen);
+
+ for (i = 0; i < cs->nClone; i++)
+ {
+ CompOutput *src = &s->outputDev[cs->clone[i].src];
+ CompOutput *dst = &s->outputDev[cs->clone[i].dst];
+ int dx, dy;
+
+ dx = dst->region.extents.x1 - src->region.extents.x1;
+ dy = dst->region.extents.y1 - src->region.extents.y1;
+
+ if (s->damageMask & COMP_SCREEN_DAMAGE_REGION_MASK)
+ {
+ if (src->width != dst->width || src->height != dst->height)
+ {
+ XSubtractRegion (&dst->region, &emptyRegion,
+ cs->clone[i].region);
+ XUnionRegion (s->damage, cs->clone[i].region, s->damage);
+ XSubtractRegion (&src->region, &emptyRegion,
+ cs->clone[i].region);
+ }
+ else
+ {
+ XSubtractRegion (s->damage, &dst->region, cs->clone[i].region);
+ XOffsetRegion (cs->clone[i].region, dx, dy);
+ XUnionRegion (s->damage, cs->clone[i].region, s->damage);
+ XSubtractRegion (s->damage, &src->region, cs->clone[i].region);
+ XOffsetRegion (cs->clone[i].region, -dx, -dy);
+ }
+ }
+ else
+ {
+ XSubtractRegion (&src->region, &emptyRegion, cs->clone[i].region);
+ }
+ }
+}
+
+static void
+cloneDonePaintScreen (CompScreen *s)
+{
+ CLONE_SCREEN (s);
+
+ if (cs->grab)
+ {
+ if (cs->offset == 1.0f)
+ cloneFinish (s);
+
+ damageScreen (s);
+ }
+
+ UNWRAP (cs, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (cs, s, donePaintScreen, cloneDonePaintScreen);
+}
+
+static Bool
+clonePaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *outputPtr,
+ unsigned int mask)
+{
+ Bool status;
+ int i, dst, output = 0;
+
+ CLONE_SCREEN (s);
+
+ dst = output = (outputPtr->id != ~0) ? outputPtr->id : 0;
+
+ if (!cs->grab || cs->grabbedOutput != output)
+ {
+ for (i = 0; i < cs->nClone; i++)
+ {
+ if (cs->clone[i].dst == output)
+ {
+ region = cs->clone[i].region;
+ dst = cs->clone[i].src;
+
+ if (s->outputDev[dst].width != s->outputDev[output].width ||
+ s->outputDev[dst].height != s->outputDev[output].height )
+ cs->transformed = TRUE;
+ else
+ cs->transformed = FALSE;
+
+ break;
+ }
+ }
+ }
+
+ UNWRAP (cs, s, paintOutput);
+ if (outputPtr->id != ~0)
+ status = (*s->paintOutput) (s, sAttrib, transform, region,
+ &s->outputDev[dst], mask);
+ else
+ status = (*s->paintOutput) (s, sAttrib, transform, region,
+ outputPtr, mask);
+ WRAP (cs, s, paintOutput, clonePaintOutput);
+
+ if (cs->grab)
+ {
+ CompTransform sTransform = *transform;
+ CompWindow *w;
+ GLenum filter;
+ float zoom1, zoom2x, zoom2y, x1, y1, x2, y2;
+ float zoomX, zoomY;
+ int dx, dy;
+
+ zoom1 = 160.0f / s->outputDev[cs->src].height;
+
+ x1 = cs->x - (s->outputDev[cs->src].region.extents.x1 * zoom1);
+ y1 = cs->y - (s->outputDev[cs->src].region.extents.y1 * zoom1);
+
+ x1 -= (s->outputDev[cs->src].width * zoom1) / 2;
+ y1 -= (s->outputDev[cs->src].height * zoom1) / 2;
+
+ if (cs->grabIndex)
+ {
+ x2 = s->outputDev[cs->grabbedOutput].region.extents.x1 -
+ s->outputDev[cs->src].region.extents.x1;
+ y2 = s->outputDev[cs->grabbedOutput].region.extents.y1 -
+ s->outputDev[cs->src].region.extents.y1;
+
+ zoom2x = (float) s->outputDev[cs->grabbedOutput].width /
+ s->outputDev[cs->src].width;
+ zoom2y = (float) s->outputDev[cs->grabbedOutput].height /
+ s->outputDev[cs->src].height;
+ }
+ else
+ {
+ x2 = s->outputDev[cs->dst].region.extents.x1 -
+ s->outputDev[cs->src].region.extents.x1;
+ y2 = s->outputDev[cs->dst].region.extents.y1 -
+ s->outputDev[cs->src].region.extents.y1;
+
+ zoom2x = (float) s->outputDev[cs->dst].width /
+ s->outputDev[cs->src].width;
+ zoom2y = (float) s->outputDev[cs->dst].height /
+ s->outputDev[cs->src].height;
+ }
+
+ /* XXX: hmm.. why do I need this.. */
+ if (x2 < 0.0f)
+ x2 *= zoom2x;
+ if (y2 < 0.0f)
+ y2 *= zoom2y;
+
+ dx = x1 * (1.0f - cs->offset) + x2 * cs->offset;
+ dy = y1 * (1.0f - cs->offset) + y2 * cs->offset;
+
+ zoomX = zoom1 * (1.0f - cs->offset) + zoom2x * cs->offset;
+ zoomY = zoom1 * (1.0f - cs->offset) + zoom2y * cs->offset;
+
+ matrixTranslate (&sTransform, -0.5f, -0.5f, -DEFAULT_Z_CAMERA);
+ matrixScale (&sTransform,
+ 1.0f / s->outputDev[output].width,
+ -1.0f / s->outputDev[output].height,
+ 1.0f);
+ matrixTranslate (&sTransform,
+ dx - s->outputDev[output].region.extents.x1,
+ dy - s->outputDev[output].region.extents.y2,
+ 0.0f);
+ matrixScale (&sTransform, zoomX, zoomY, 1.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (sTransform.m);
+
+ filter = s->display->textureFilter;
+
+ if (cs->offset == 0.0f)
+ s->display->textureFilter = GL_LINEAR_MIPMAP_LINEAR;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->destroyed)
+ continue;
+
+ if (!w->shaded)
+ {
+ if (w->attrib.map_state != IsViewable || !w->damaged)
+ continue;
+ }
+
+ (*s->paintWindow) (w, &w->paint, &sTransform,
+ &s->outputDev[cs->src].region,
+ PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK);
+ }
+
+ s->display->textureFilter = filter;
+
+ glPopMatrix ();
+ }
+
+ return status;
+}
+
+static Bool
+clonePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+
+ CLONE_SCREEN (w->screen);
+
+ if (cs->nClone && cs->transformed)
+ mask |= PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK;
+
+ UNWRAP (cs, w->screen, paintWindow);
+ status = (*w->screen->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (cs, w->screen, paintWindow, clonePaintWindow);
+
+ return status;
+}
+
+static Bool
+cloneInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int i;
+
+ CLONE_SCREEN (s);
+
+ if (cs->grab || otherScreenGrabExist (s, "clone", 0))
+ return FALSE;
+
+ if (!cs->grabIndex)
+ cs->grabIndex = pushScreenGrab (s, None, "clone");
+
+ cs->grab = TRUE;
+
+ cs->x = getIntOptionNamed (option, nOption, "x", 0);
+ cs->y = getIntOptionNamed (option, nOption, "y", 0);
+
+ cs->src = cs->grabbedOutput = outputDeviceForPoint (s, cs->x, cs->y);
+
+ /* trace source */
+ i = 0;
+ while (i < cs->nClone)
+ {
+ if (cs->clone[i].dst == cs->src)
+ {
+ cs->src = cs->clone[i].src;
+ i = 0;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+ }
+
+ return FALSE;
+}
+
+static Bool
+cloneTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ CLONE_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (cs->grabIndex)
+ {
+ int x, y;
+
+ removeScreenGrab (s, cs->grabIndex, NULL);
+ cs->grabIndex = 0;
+
+ x = getIntOptionNamed (option, nOption, "x", 0);
+ y = getIntOptionNamed (option, nOption, "y", 0);
+
+ cs->dst = outputDeviceForPoint (s, x, y);
+
+ damageScreen (s);
+ }
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static void
+cloneSetStrutsForCloneWindow (CompScreen *s,
+ CloneClone *clone)
+{
+ CompOutput *output = &s->outputDev[clone->dst];
+ XRectangle *rect = NULL;
+ CompStruts *struts;
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, clone->input);
+ if (!w)
+ return;
+
+ struts = malloc (sizeof (CompStruts));
+ if (!struts)
+ return;
+
+ if (w->struts)
+ free (w->struts);
+
+ struts->left.x = 0;
+ struts->left.y = 0;
+ struts->left.width = 0;
+ struts->left.height = s->height;
+
+ struts->right.x = s->width;
+ struts->right.y = 0;
+ struts->right.width = 0;
+ struts->right.height = s->height;
+
+ struts->top.x = 0;
+ struts->top.y = 0;
+ struts->top.width = s->width;
+ struts->top.height = 0;
+
+ struts->bottom.x = 0;
+ struts->bottom.y = s->height;
+ struts->bottom.width = s->width;
+ struts->bottom.height = 0;
+
+ /* create struts relative to a screen edge that this output is next to */
+ if (output->region.extents.x1 == 0)
+ rect = &struts->left;
+ else if (output->region.extents.x2 == s->width)
+ rect = &struts->right;
+ else if (output->region.extents.y1 == 0)
+ rect = &struts->top;
+ else if (output->region.extents.y2 == s->height)
+ rect = &struts->bottom;
+
+ if (rect)
+ {
+ rect->x = output->region.extents.x1;
+ rect->y = output->region.extents.y1;
+ rect->width = output->width;
+ rect->height = output->height;
+ }
+
+ w->struts = struts;
+}
+
+static void
+cloneHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ CLONE_SCREEN (s);
+
+ if (cs->grabIndex)
+ {
+ cs->x = xRoot;
+ cs->y = yRoot;
+
+ damageScreen (s);
+ }
+}
+
+static void
+cloneHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ CLONE_DISPLAY (d);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ cloneHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ cloneHandleMotionEvent (s, pointerX, pointerY);
+ default:
+ break;
+ }
+
+ UNWRAP (cd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (cd, d, handleEvent, cloneHandleEvent);
+
+ switch (event->type) {
+ case CreateNotify:
+ s = findScreenAtDisplay (d, event->xcreatewindow.parent);
+ if (s)
+ {
+ int i;
+
+ CLONE_SCREEN (s);
+
+ for (i = 0; i < cs->nClone; i++)
+ if (event->xcreatewindow.window == cs->clone[i].input)
+ cloneSetStrutsForCloneWindow (s, &cs->clone[i]);
+ }
+ default:
+ break;
+ }
+}
+
+static void
+cloneOutputChangeNotify (CompScreen *s)
+{
+ int i;
+
+ CLONE_SCREEN (s);
+
+ /* remove clones with destination or source that doesn't exist */
+ for (i = 0; i < cs->nClone; i++)
+ {
+ if (cs->clone[i].dst >= s->nOutputDev ||
+ cs->clone[i].src >= s->nOutputDev)
+ {
+ cloneRemove (s, i);
+ i = 0;
+ continue;
+ }
+ }
+
+ UNWRAP (cs, s, outputChangeNotify);
+ (*s->outputChangeNotify) (s);
+ WRAP (cs, s, outputChangeNotify, cloneOutputChangeNotify);
+}
+
+static CompOption *
+cloneGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ CLONE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (cd);
+ return cd->opt;
+}
+
+static Bool
+cloneSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ CLONE_DISPLAY (display);
+
+ o = compFindOption (cd->opt, NUM_OPTIONS (cd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo cloneDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, cloneInitiate, cloneTerminate }
+};
+
+static Bool
+cloneInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CloneDisplay *cd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ cd = malloc (sizeof (CloneDisplay));
+ if (!cd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &cloneMetadata,
+ cloneDisplayOptionInfo,
+ cd->opt,
+ CLONE_DISPLAY_OPTION_NUM))
+ {
+ free (cd);
+ return FALSE;
+ }
+
+ cd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (cd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, cd->opt, CLONE_DISPLAY_OPTION_NUM);
+ free (cd);
+ return FALSE;
+ }
+
+ WRAP (cd, d, handleEvent, cloneHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = cd;
+
+ return TRUE;
+}
+
+static void
+cloneFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CLONE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, cd->screenPrivateIndex);
+
+ UNWRAP (cd, d, handleEvent);
+
+ compFiniDisplayOptions (d, cd->opt, CLONE_DISPLAY_OPTION_NUM);
+
+ free (cd);
+}
+
+static Bool
+cloneInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ CloneScreen *cs;
+
+ CLONE_DISPLAY (s->display);
+
+ cs = malloc (sizeof (CloneScreen));
+ if (!cs)
+ return FALSE;
+
+ cs->grabIndex = 0;
+ cs->grab = FALSE;
+
+ cs->offset = 1.0f;
+
+ cs->transformed = FALSE;
+
+ cs->nClone = 0;
+ cs->clone = NULL;
+
+ cs->src = 0;
+
+ WRAP (cs, s, preparePaintScreen, clonePreparePaintScreen);
+ WRAP (cs, s, donePaintScreen, cloneDonePaintScreen);
+ WRAP (cs, s, paintOutput, clonePaintOutput);
+ WRAP (cs, s, paintWindow, clonePaintWindow);
+ WRAP (cs, s, outputChangeNotify, cloneOutputChangeNotify);
+
+ s->base.privates[cd->screenPrivateIndex].ptr = cs;
+
+ return TRUE;
+}
+
+static void
+cloneFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ int i;
+
+ CLONE_SCREEN (s);
+
+ for (i = 0; i < cs->nClone; i++)
+ cloneRemove (s, i);
+
+ if (cs->clone)
+ free (cs->clone);
+
+ UNWRAP (cs, s, preparePaintScreen);
+ UNWRAP (cs, s, donePaintScreen);
+ UNWRAP (cs, s, paintOutput);
+ UNWRAP (cs, s, paintWindow);
+ UNWRAP (cs, s, outputChangeNotify);
+
+ free (cs);
+}
+
+static CompBool
+cloneInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) cloneInitDisplay,
+ (InitPluginObjectProc) cloneInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+cloneFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) cloneFiniDisplay,
+ (FiniPluginObjectProc) cloneFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+cloneGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) cloneGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+cloneSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) cloneSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+cloneInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&cloneMetadata,
+ p->vTable->name,
+ cloneDisplayOptionInfo,
+ CLONE_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&cloneMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&cloneMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+cloneFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&cloneMetadata);
+}
+
+static CompMetadata *
+cloneGetMetadata (CompPlugin *plugin)
+{
+ return &cloneMetadata;
+}
+
+CompPluginVTable cloneVTable = {
+ "clone",
+ cloneGetMetadata,
+ cloneInit,
+ cloneFini,
+ cloneInitObject,
+ cloneFiniObject,
+ cloneGetObjectOptions,
+ cloneSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &cloneVTable;
+}
diff --git a/plugins/commands.c b/plugins/commands.c
new file mode 100644
index 0000000..0b2851e
--- /dev/null
+++ b/plugins/commands.c
@@ -0,0 +1,352 @@
+/*
+ * Copyright © 2009 Danny Baumann
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Danny Baumann not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Danny Baumann makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DANNY BAUMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Danny Baumann <dannybaumann@web.de>
+ */
+
+#include <compiz-core.h>
+
+static CompMetadata commandsMetadata;
+
+static int displayPrivateIndex;
+
+#define COMMANDS_DISPLAY_OPTION_COMMAND0 0
+#define COMMANDS_DISPLAY_OPTION_COMMAND1 1
+#define COMMANDS_DISPLAY_OPTION_COMMAND2 2
+#define COMMANDS_DISPLAY_OPTION_COMMAND3 3
+#define COMMANDS_DISPLAY_OPTION_COMMAND4 4
+#define COMMANDS_DISPLAY_OPTION_COMMAND5 5
+#define COMMANDS_DISPLAY_OPTION_COMMAND6 6
+#define COMMANDS_DISPLAY_OPTION_COMMAND7 7
+#define COMMANDS_DISPLAY_OPTION_COMMAND8 8
+#define COMMANDS_DISPLAY_OPTION_COMMAND9 9
+#define COMMANDS_DISPLAY_OPTION_COMMAND10 10
+#define COMMANDS_DISPLAY_OPTION_COMMAND11 11
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_KEY 12
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND1_KEY 13
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND2_KEY 14
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND3_KEY 15
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND4_KEY 16
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND5_KEY 17
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND6_KEY 18
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND7_KEY 19
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND8_KEY 20
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND9_KEY 21
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND10_KEY 22
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND11_KEY 23
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_BUTTON 24
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND1_BUTTON 25
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND2_BUTTON 26
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND3_BUTTON 27
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND4_BUTTON 28
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND5_BUTTON 29
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND6_BUTTON 30
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND7_BUTTON 31
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND8_BUTTON 32
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND9_BUTTON 33
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND10_BUTTON 34
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND11_BUTTON 35
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_EDGE 36
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND1_EDGE 37
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND2_EDGE 38
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND3_EDGE 39
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND4_EDGE 40
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND5_EDGE 41
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND6_EDGE 42
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND7_EDGE 43
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND8_EDGE 44
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND9_EDGE 45
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND10_EDGE 46
+#define COMMANDS_DISPLAY_OPTION_RUN_COMMAND11_EDGE 47
+#define COMMANDS_DISPLAY_OPTION_NUM 48
+
+typedef struct _CommandsDisplay {
+ CompOption opt[COMMANDS_DISPLAY_OPTION_NUM];
+} CommandsDisplay;
+
+#define GET_COMMANDS_DISPLAY(d) \
+ ((CommandsDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+#define COMMANDS_DISPLAY(d) \
+ CommandsDisplay *cd = GET_COMMANDS_DISPLAY (d)
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static Bool
+runCommandDispatch (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+ s = findScreenAtDisplay (d, xid);
+
+ if (s)
+ {
+ int index = COMMANDS_DISPLAY_OPTION_COMMAND0 + action->priv.val;
+
+ COMMANDS_DISPLAY (d);
+
+ runCommand (s, cd->opt[index].value.s);
+ }
+
+ return TRUE;
+}
+
+static const CompMetadataOptionInfo commandsDisplayOptionInfo[] = {
+ { "command0", "string", 0, 0, 0 },
+ { "command1", "string", 0, 0, 0 },
+ { "command2", "string", 0, 0, 0 },
+ { "command3", "string", 0, 0, 0 },
+ { "command4", "string", 0, 0, 0 },
+ { "command5", "string", 0, 0, 0 },
+ { "command6", "string", 0, 0, 0 },
+ { "command7", "string", 0, 0, 0 },
+ { "command8", "string", 0, 0, 0 },
+ { "command9", "string", 0, 0, 0 },
+ { "command10", "string", 0, 0, 0 },
+ { "command11", "string", 0, 0, 0 },
+ { "run_command0_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command1_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command2_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command3_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command4_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command5_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command6_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command7_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command8_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command9_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command10_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command11_key", "key", 0, runCommandDispatch, 0 },
+ { "run_command0_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command1_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command2_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command3_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command4_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command5_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command6_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command7_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command8_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command9_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command10_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command11_button", "button", 0, runCommandDispatch, 0 },
+ { "run_command0_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command1_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command2_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command3_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command4_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command5_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command6_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command7_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command8_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command9_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command10_edge", "edge", 0, runCommandDispatch, 0 },
+ { "run_command11_edge", "edge", 0, runCommandDispatch, 0 }
+};
+
+static CompBool
+commandsInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CommandsDisplay *cd;
+ int i;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ cd = malloc (sizeof (CommandsDisplay));
+ if (!cd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &commandsMetadata,
+ commandsDisplayOptionInfo,
+ cd->opt,
+ COMMANDS_DISPLAY_OPTION_NUM))
+ {
+ free (cd);
+ return FALSE;
+ }
+
+ for (i = 0; i < 12; i++)
+ {
+ int opt;
+
+ opt = COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_KEY + i;
+ cd->opt[opt].value.action.priv.val = i;
+ opt = COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_BUTTON + i;
+ cd->opt[opt].value.action.priv.val = i;
+ opt = COMMANDS_DISPLAY_OPTION_RUN_COMMAND0_EDGE + i;
+ cd->opt[opt].value.action.priv.val = i;
+ }
+
+ d->base.privates[displayPrivateIndex].ptr = cd;
+
+ return TRUE;
+}
+
+static void
+commandsFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ COMMANDS_DISPLAY (d);
+
+ compFiniDisplayOptions (d, cd->opt, COMMANDS_DISPLAY_OPTION_NUM);
+
+ free (cd);
+}
+
+static CompOption *
+commandsGetDisplayOptions (CompPlugin *p,
+ CompDisplay *d,
+ int *count)
+{
+ COMMANDS_DISPLAY (d);
+
+ *count = NUM_OPTIONS (cd);
+ return cd->opt;
+}
+
+static CompBool
+commandsSetDisplayOption (CompPlugin *p,
+ CompDisplay *d,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ COMMANDS_DISPLAY (d);
+
+ o = compFindOption (cd->opt, NUM_OPTIONS (cd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (d, o, value);
+}
+
+static CompBool
+commandsInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) commandsInitDisplay
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+commandsFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) commandsFiniDisplay
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+commandsGetObjectOptions (CompPlugin *p,
+ CompObject *o,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) commandsGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (p, o, count));
+}
+
+static CompBool
+commandsSetObjectOption (CompPlugin *p,
+ CompObject *o,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) commandsSetDisplayOption,
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (p, o, name, value));
+}
+
+static Bool
+commandsInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&commandsMetadata,
+ p->vTable->name,
+ commandsDisplayOptionInfo,
+ COMMANDS_DISPLAY_OPTION_NUM, 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&commandsMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&commandsMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+commandsFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&commandsMetadata);
+}
+
+static CompMetadata *
+commandsGetMetadata (CompPlugin *p)
+{
+ return &commandsMetadata;
+}
+
+static CompPluginVTable commandsVTable = {
+ "commands",
+ commandsGetMetadata,
+ commandsInit,
+ commandsFini,
+ commandsInitObject,
+ commandsFiniObject,
+ commandsGetObjectOptions,
+ commandsSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &commandsVTable;
+}
diff --git a/plugins/cube.c b/plugins/cube.c
new file mode 100644
index 0000000..4207ef1
--- /dev/null
+++ b/plugins/cube.c
@@ -0,0 +1,2233 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ * Mirco Müller <macslow@bangang.de> (Skydome support)
+ */
+
+#include <string.h>
+#include <math.h>
+
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+
+#include <compiz-cube.h>
+
+static CompMetadata cubeMetadata;
+
+static int cubeCorePrivateIndex;
+static int cubeDisplayPrivateIndex;
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static void
+cubeLoadImg (CompScreen *s,
+ int n)
+{
+ unsigned int width, height;
+ int pw, ph;
+ CompOptionValue *imgFiles;
+ int imgNFile;
+
+ CUBE_SCREEN (s);
+
+ imgFiles = cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.value;
+ imgNFile = cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.nValue;
+
+ if (!cs->fullscreenOutput)
+ {
+ pw = s->width;
+ ph = s->height;
+ }
+ else
+ {
+ pw = s->outputDev[0].width;
+ ph = s->outputDev[0].height;
+ }
+
+ if (!imgNFile || cs->pw != pw || cs->ph != ph)
+ {
+ finiTexture (s, &cs->texture);
+ initTexture (s, &cs->texture);
+
+ if (!imgNFile)
+ return;
+ }
+
+ cs->imgCurFile = n % imgNFile;
+
+ if (!readImageToTexture (s, &cs->texture,
+ imgFiles[cs->imgCurFile].s,
+ &width, &height))
+ {
+ compLogMessage ("cube", CompLogLevelWarn,
+ "Failed to load slide: %s",
+ imgFiles[cs->imgCurFile].s);
+
+ finiTexture (s, &cs->texture);
+ initTexture (s, &cs->texture);
+
+ return;
+ }
+
+ cs->tc[0] = COMP_TEX_COORD_X (&cs->texture.matrix, width / 2.0f);
+ cs->tc[1] = COMP_TEX_COORD_Y (&cs->texture.matrix, height / 2.0f);
+
+ if (cs->opt[CUBE_SCREEN_OPTION_SCALE_IMAGE].value.b)
+ {
+ cs->tc[2] = COMP_TEX_COORD_X (&cs->texture.matrix, width);
+ cs->tc[3] = COMP_TEX_COORD_Y (&cs->texture.matrix, 0.0f);
+
+ cs->tc[4] = COMP_TEX_COORD_X (&cs->texture.matrix, 0.0f);
+ cs->tc[5] = COMP_TEX_COORD_Y (&cs->texture.matrix, 0.0f);
+
+ cs->tc[6] = COMP_TEX_COORD_X (&cs->texture.matrix, 0.0f);
+ cs->tc[7] = COMP_TEX_COORD_Y (&cs->texture.matrix, height);
+
+ cs->tc[8] = COMP_TEX_COORD_X (&cs->texture.matrix, width);
+ cs->tc[9] = COMP_TEX_COORD_Y (&cs->texture.matrix, height);
+
+ cs->tc[10] = COMP_TEX_COORD_X (&cs->texture.matrix, width);
+ cs->tc[11] = COMP_TEX_COORD_Y (&cs->texture.matrix, 0.0f);
+ }
+ else
+ {
+ float x1 = width / 2.0f - pw / 2.0f;
+ float y1 = height / 2.0f - ph / 2.0f;
+ float x2 = width / 2.0f + pw / 2.0f;
+ float y2 = height / 2.0f + ph / 2.0f;
+
+ cs->tc[2] = COMP_TEX_COORD_X (&cs->texture.matrix, x2);
+ cs->tc[3] = COMP_TEX_COORD_Y (&cs->texture.matrix, y1);
+
+ cs->tc[4] = COMP_TEX_COORD_X (&cs->texture.matrix, x1);
+ cs->tc[5] = COMP_TEX_COORD_Y (&cs->texture.matrix, y1);
+
+ cs->tc[6] = COMP_TEX_COORD_X (&cs->texture.matrix, x1);
+ cs->tc[7] = COMP_TEX_COORD_Y (&cs->texture.matrix, y2);
+
+ cs->tc[8] = COMP_TEX_COORD_X (&cs->texture.matrix, x2);
+ cs->tc[9] = COMP_TEX_COORD_Y (&cs->texture.matrix, y2);
+
+ cs->tc[10] = COMP_TEX_COORD_X (&cs->texture.matrix, x2);
+ cs->tc[11] = COMP_TEX_COORD_Y (&cs->texture.matrix, y1);
+ }
+}
+
+static Bool
+cubeUpdateGeometry (CompScreen *s,
+ int sides,
+ Bool invert)
+{
+ GLfloat radius, distance;
+ GLfloat *v;
+ int i, n;
+
+ CUBE_SCREEN (s);
+
+ sides *= cs->nOutput;
+
+ distance = 0.5f / tanf (M_PI / sides);
+ radius = 0.5f / sinf (M_PI / sides);
+
+ n = (sides + 2) * 2;
+
+ if (cs->nVertices != n)
+ {
+ v = realloc (cs->vertices, sizeof (GLfloat) * n * 3);
+ if (!v)
+ return FALSE;
+
+ cs->nVertices = n;
+ cs->vertices = v;
+ }
+ else
+ v = cs->vertices;
+
+ *v++ = 0.0f;
+ *v++ = 0.5 * invert;
+ *v++ = 0.0f;
+
+ for (i = 0; i <= sides; i++)
+ {
+ *v++ = radius * sinf (i * 2 * M_PI / sides + M_PI / sides);
+ *v++ = 0.5 * invert;
+ *v++ = radius * cosf (i * 2 * M_PI / sides + M_PI / sides);
+ }
+
+ *v++ = 0.0f;
+ *v++ = -0.5 * invert;
+ *v++ = 0.0f;
+
+ for (i = sides; i >= 0; i--)
+ {
+ *v++ = radius * sinf (i * 2 * M_PI / sides + M_PI / sides);
+ *v++ = -0.5 * invert;
+ *v++ = radius * cosf (i * 2 * M_PI / sides + M_PI / sides);
+ }
+
+ cs->invert = invert;
+ cs->distance = distance;
+
+ return TRUE;
+}
+
+static void
+cubeUpdateOutputs (CompScreen *s)
+{
+ BoxPtr pBox0, pBox1;
+ int i, j, k, x;
+
+ CUBE_SCREEN (s);
+
+ k = 0;
+
+ cs->fullscreenOutput = TRUE;
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ cs->outputMask[i] = -1;
+
+ /* dimensions must match first output */
+ if (s->outputDev[i].width != s->outputDev[0].width ||
+ s->outputDev[i].height != s->outputDev[0].height)
+ continue;
+
+ pBox0 = &s->outputDev[0].region.extents;
+ pBox1 = &s->outputDev[i].region.extents;
+
+ /* top and bottom line must match first output */
+ if (pBox0->y1 != pBox1->y1 || pBox0->y2 != pBox1->y2)
+ continue;
+
+ k++;
+
+ for (j = 0; j < s->nOutputDev; j++)
+ {
+ pBox0 = &s->outputDev[j].region.extents;
+
+ /* must not intersect other output region */
+ if (i != j && pBox0->x2 > pBox1->x1 && pBox0->x1 < pBox1->x2)
+ {
+ k--;
+ break;
+ }
+ }
+ }
+
+ if (cs->moMode == CUBE_MOMODE_ONE)
+ {
+ cs->fullscreenOutput = FALSE;
+ cs->nOutput = 1;
+ return;
+ }
+
+ if (cs->moMode == CUBE_MOMODE_MULTI)
+ {
+ cs->fullscreenOutput = TRUE;
+ cs->nOutput = 1;
+ return;
+ }
+
+ if (k != s->nOutputDev)
+ {
+ cs->fullscreenOutput = FALSE;
+ cs->nOutput = 1;
+ return;
+ }
+
+ /* add output indices from left to right */
+ j = 0;
+ for (;;)
+ {
+ x = MAXSHORT;
+ k = -1;
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ if (cs->outputMask[i] != -1)
+ continue;
+
+ if (s->outputDev[i].region.extents.x1 < x)
+ {
+ x = s->outputDev[i].region.extents.x1;
+ k = i;
+ }
+ }
+
+ if (k < 0)
+ break;
+
+ cs->outputMask[k] = j;
+ cs->output[j] = k;
+
+ j++;
+ }
+
+ cs->nOutput = j;
+
+ if (cs->nOutput == 1)
+ {
+ if (s->outputDev[0].width != s->width ||
+ s->outputDev[0].height != s->height)
+ cs->fullscreenOutput = FALSE;
+ }
+}
+
+static CompOption *
+cubeGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ CUBE_SCREEN (screen);
+
+ *count = NUM_OPTIONS (cs);
+ return cs->opt;
+}
+
+static void
+cubeUpdateSkyDomeTexture (CompScreen *screen)
+{
+ CUBE_SCREEN (screen);
+
+ finiTexture (screen, &cs->sky);
+ initTexture (screen, &cs->sky);
+
+ if (!cs->opt[CUBE_SCREEN_OPTION_SKYDOME].value.b)
+ return;
+
+ if (strlen (cs->opt[CUBE_SCREEN_OPTION_SKYDOME_IMG].value.s) == 0 ||
+ !readImageToTexture (screen,
+ &cs->sky,
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_IMG].value.s,
+ &cs->skyW,
+ &cs->skyH))
+ {
+ GLfloat aaafTextureData[128][128][3];
+ GLfloat fRStart = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_START].value.c[0] / 0xffff;
+ GLfloat fGStart = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_START].value.c[1] / 0xffff;
+ GLfloat fBStart = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_START].value.c[2] / 0xffff;
+ GLfloat fREnd = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_END].value.c[0] / 0xffff;
+ GLfloat fGEnd = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_END].value.c[1] / 0xffff;
+ GLfloat fBEnd = (GLfloat)
+ cs->opt[CUBE_SCREEN_OPTION_SKYDOME_GRAD_END].value.c[2] / 0xffff;
+ GLfloat fRStep = (fREnd - fRStart) / 128.0f;
+ GLfloat fGStep = (fGEnd - fGStart) / 128.0f;
+ GLfloat fBStep = (fBStart - fBEnd) / 128.0f;
+ GLfloat fR = fRStart;
+ GLfloat fG = fGStart;
+ GLfloat fB = fBStart;
+
+ int iX, iY;
+
+ for (iX = 127; iX >= 0; iX--)
+ {
+ fR += fRStep;
+ fG += fGStep;
+ fB -= fBStep;
+
+ for (iY = 0; iY < 128; iY++)
+ {
+ aaafTextureData[iX][iY][0] = fR;
+ aaafTextureData[iX][iY][1] = fG;
+ aaafTextureData[iX][iY][2] = fB;
+ }
+ }
+
+ cs->sky.target = GL_TEXTURE_2D;
+ cs->sky.filter = GL_LINEAR;
+ cs->sky.wrap = GL_CLAMP_TO_EDGE;
+
+ cs->sky.matrix.xx = 1.0 / 128.0;
+ cs->sky.matrix.yy = -1.0 / 128.0;
+ cs->sky.matrix.xy = 0;
+ cs->sky.matrix.yx = 0;
+ cs->sky.matrix.x0 = 0;
+ cs->sky.matrix.y0 = 1.0;
+
+ cs->skyW = 128;
+ cs->skyH = 128;
+
+ glGenTextures (1, &cs->sky.name);
+ glBindTexture (cs->sky.target, cs->sky.name);
+
+ glTexParameteri (cs->sky.target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (cs->sky.target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ glTexParameteri (cs->sky.target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (cs->sky.target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glTexImage2D (cs->sky.target,
+ 0,
+ GL_RGB,
+ 128,
+ 128,
+ 0,
+ GL_RGB,
+ GL_FLOAT,
+ aaafTextureData);
+
+ glBindTexture (cs->sky.target, 0);
+ }
+}
+
+static Bool
+fillCircleTable (GLfloat **ppSint,
+ GLfloat **ppCost,
+ const int n)
+{
+ const GLfloat angle = 2 * M_PI / (GLfloat) ((n == 0) ? 1 : n);
+ const int size = abs (n);
+ int i;
+
+ *ppSint = (GLfloat *) calloc (sizeof (GLfloat), size + 1);
+ *ppCost = (GLfloat *) calloc (sizeof (GLfloat), size + 1);
+
+ if (!(*ppSint) || !(*ppCost))
+ {
+ free (*ppSint);
+ free (*ppCost);
+
+ return FALSE;
+ }
+
+ (*ppSint)[0] = 0.0;
+ (*ppCost)[0] = 1.0;
+
+ for (i = 1; i < size; i++)
+ {
+ (*ppSint)[i] = sin (angle * i);
+ (*ppCost)[i] = cos (angle * i);
+ }
+
+ (*ppSint)[size] = (*ppSint)[0];
+ (*ppCost)[size] = (*ppCost)[0];
+
+ return TRUE;
+}
+
+static void
+cubeUpdateSkyDomeList (CompScreen *s,
+ GLfloat fRadius)
+{
+ GLint iSlices = 128;
+ GLint iStacks = 64;
+ GLfloat afTexCoordX[4];
+ GLfloat afTexCoordY[4];
+ GLfloat *sint1;
+ GLfloat *cost1;
+ GLfloat *sint2;
+ GLfloat *cost2;
+ GLfloat r;
+ GLfloat x;
+ GLfloat y;
+ GLfloat z;
+ int i;
+ int j;
+ int iStacksStart;
+ int iStacksEnd;
+ int iSlicesStart;
+ int iSlicesEnd;
+ GLfloat fStepX;
+ GLfloat fStepY;
+
+ CUBE_SCREEN (s);
+
+ if (cs->opt[CUBE_SCREEN_OPTION_SKYDOME_ANIM].value.b)
+ {
+ iStacksStart = 11; /* min. 0 */
+ iStacksEnd = 53; /* max. 64 */
+ iSlicesStart = 0; /* min. 0 */
+ iSlicesEnd = 128; /* max. 128 */
+ }
+ else
+ {
+ iStacksStart = 21; /* min. 0 */
+ iStacksEnd = 43; /* max. 64 */
+ iSlicesStart = 21; /* min. 0 */
+ iSlicesEnd = 44; /* max. 128 */
+ }
+
+ fStepX = 1.0 / (GLfloat) (iSlicesEnd - iSlicesStart);
+ fStepY = 1.0 / (GLfloat) (iStacksEnd - iStacksStart);
+
+ if (!fillCircleTable (&sint1, &cost1, -iSlices))
+ return;
+
+ if (!fillCircleTable (&sint2, &cost2, iStacks * 2))
+ {
+ free (sint1);
+ free (cost1);
+ return;
+ }
+
+ afTexCoordX[0] = 1.0f;
+ afTexCoordY[0] = 1.0f - fStepY;
+ afTexCoordX[1] = 1.0f - fStepX;
+ afTexCoordY[1] = 1.0f - fStepY;
+ afTexCoordX[2] = 1.0f - fStepX;
+ afTexCoordY[2] = 1.0f;
+ afTexCoordX[3] = 1.0f;
+ afTexCoordY[3] = 1.0f;
+
+ if (!cs->skyListId)
+ cs->skyListId = glGenLists (1);
+
+ glNewList (cs->skyListId, GL_COMPILE);
+
+ enableTexture (s, &cs->sky, COMP_TEXTURE_FILTER_GOOD);
+
+ glBegin (GL_QUADS);
+
+ for (i = iStacksStart; i < iStacksEnd; i++)
+ {
+ afTexCoordX[0] = 1.0f;
+ afTexCoordX[1] = 1.0f - fStepX;
+ afTexCoordX[2] = 1.0f - fStepX;
+ afTexCoordX[3] = 1.0f;
+
+ for (j = iSlicesStart; j < iSlicesEnd; j++)
+ {
+ /* bottom-right */
+ z = cost2[i];
+ r = sint2[i];
+ x = cost1[j];
+ y = sint1[j];
+
+ glTexCoord2f (
+ COMP_TEX_COORD_X (&cs->sky.matrix, afTexCoordX[3] * cs->skyW),
+ COMP_TEX_COORD_Y (&cs->sky.matrix, afTexCoordY[3] * cs->skyH));
+ glVertex3f (x * r * fRadius, y * r * fRadius, z * fRadius);
+
+ /* top-right */
+ z = cost2[i + 1];
+ r = sint2[i + 1];
+ x = cost1[j];
+ y = sint1[j];
+
+ glTexCoord2f (
+ COMP_TEX_COORD_X (&cs->sky.matrix, afTexCoordX[0] * cs->skyW),
+ COMP_TEX_COORD_Y (&cs->sky.matrix, afTexCoordY[0] * cs->skyH));
+ glVertex3f (x * r * fRadius, y * r * fRadius, z * fRadius);
+
+ /* top-left */
+ z = cost2[i + 1];
+ r = sint2[i + 1];
+ x = cost1[j + 1];
+ y = sint1[j + 1];
+
+ glTexCoord2f (
+ COMP_TEX_COORD_X (&cs->sky.matrix, afTexCoordX[1] * cs->skyW),
+ COMP_TEX_COORD_Y (&cs->sky.matrix, afTexCoordY[1] * cs->skyH));
+ glVertex3f (x * r * fRadius, y * r * fRadius, z * fRadius);
+
+ /* bottom-left */
+ z = cost2[i];
+ r = sint2[i];
+ x = cost1[j + 1];
+ y = sint1[j + 1];
+
+ glTexCoord2f (
+ COMP_TEX_COORD_X (&cs->sky.matrix, afTexCoordX[2] * cs->skyW),
+ COMP_TEX_COORD_Y (&cs->sky.matrix, afTexCoordY[2] * cs->skyH));
+ glVertex3f (x * r * fRadius, y * r * fRadius, z * fRadius);
+
+ afTexCoordX[0] -= fStepX;
+ afTexCoordX[1] -= fStepX;
+ afTexCoordX[2] -= fStepX;
+ afTexCoordX[3] -= fStepX;
+ }
+
+ afTexCoordY[0] -= fStepY;
+ afTexCoordY[1] -= fStepY;
+ afTexCoordY[2] -= fStepY;
+ afTexCoordY[3] -= fStepY;
+ }
+
+ glEnd ();
+
+ disableTexture (s, &cs->sky);
+
+ glEndList ();
+
+ free (sint1);
+ free (cost1);
+ free (sint2);
+ free (cost2);
+}
+
+static Bool
+cubeSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ CUBE_SCREEN (screen);
+
+ o = compFindOption (cs->opt, NUM_OPTIONS (cs), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case CUBE_SCREEN_OPTION_COLOR:
+ if (compSetColorOption (o, value))
+ {
+ memcpy (cs->color, o->value.c, sizeof (cs->color));
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_IN:
+ if (compSetBoolOption (o, value))
+ {
+ if (cubeUpdateGeometry (screen, screen->hsize, o->value.b ? -1 : 1))
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SCALE_IMAGE:
+ if (compSetBoolOption (o, value))
+ {
+ cubeLoadImg (screen, cs->imgCurFile);
+ damageScreen (screen);
+
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_IMAGES:
+ if (compSetOptionList (o, value))
+ {
+ cubeLoadImg (screen, cs->imgCurFile);
+ damageScreen (screen);
+
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SKYDOME:
+ if (compSetBoolOption (o, value))
+ {
+ cubeUpdateSkyDomeTexture (screen);
+ cubeUpdateSkyDomeList (screen, 1.0f);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SKYDOME_IMG:
+ if (compSetStringOption (o, value))
+ {
+ cubeUpdateSkyDomeTexture (screen);
+ cubeUpdateSkyDomeList (screen, 1.0f);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SKYDOME_ANIM:
+ if (compSetBoolOption (o, value))
+ {
+ cubeUpdateSkyDomeTexture (screen);
+ cubeUpdateSkyDomeList (screen, 1.0f);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SKYDOME_GRAD_START:
+ if (compSetColorOption (o, value))
+ {
+ cubeUpdateSkyDomeTexture (screen);
+ cubeUpdateSkyDomeList (screen, 1.0f);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_SKYDOME_GRAD_END:
+ if (compSetColorOption (o, value))
+ {
+ cubeUpdateSkyDomeTexture (screen);
+ cubeUpdateSkyDomeList (screen, 1.0f);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ case CUBE_SCREEN_OPTION_MULTIOUTPUT_MODE:
+ if (compSetIntOption (o, value))
+ {
+ cs->moMode = o->value.i;
+ cubeUpdateOutputs (screen);
+ cubeUpdateGeometry (screen, screen->hsize, cs->invert);
+ damageScreen (screen);
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetScreenOption (screen, o, value);
+ }
+
+ return FALSE;
+}
+
+static int
+adjustVelocity (CubeScreen *cs)
+{
+ float unfold, adjust, amount;
+
+ if (cs->unfolded)
+ unfold = 1.0f - cs->unfold;
+ else
+ unfold = 0.0f - cs->unfold;
+
+ adjust = unfold * 0.02f * cs->opt[CUBE_SCREEN_OPTION_ACCELERATION].value.f;
+ amount = fabs (unfold);
+ if (amount < 1.0f)
+ amount = 1.0f;
+ else if (amount > 3.0f)
+ amount = 3.0f;
+
+ cs->unfoldVelocity = (amount * cs->unfoldVelocity + adjust) /
+ (amount + 2.0f);
+
+ return (fabs (unfold) < 0.002f && fabs (cs->unfoldVelocity) < 0.01f);
+}
+
+static void
+cubePreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ int opt;
+ float x, progress;
+
+ CUBE_SCREEN (s);
+
+ if (cs->grabIndex)
+ {
+ int steps;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.2f *
+ cs->opt[CUBE_SCREEN_OPTION_SPEED].value.f;
+ steps = amount / (0.5f * cs->opt[CUBE_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ cs->unfold += cs->unfoldVelocity * chunk;
+ if (cs->unfold > 1.0f)
+ cs->unfold = 1.0f;
+
+ if (adjustVelocity (cs))
+ {
+ if (cs->unfold < 0.5f)
+ {
+ if (cs->grabIndex)
+ {
+ removeScreenGrab (s, cs->grabIndex, NULL);
+ cs->grabIndex = 0;
+ }
+
+ cs->unfold = 0.0f;
+ }
+ break;
+ }
+ }
+ }
+
+ memset (cs->cleared, 0, sizeof (Bool) * s->nOutputDev);
+ memset (cs->capsPainted, 0, sizeof (Bool) * s->nOutputDev);
+
+ /* Transparency handling */
+ if (cs->rotationState == RotationManual ||
+ (cs->rotationState == RotationChange &&
+ !cs->opt[CUBE_SCREEN_OPTION_TRANSPARENT_MANUAL_ONLY].value.b))
+ {
+ opt = cs->lastOpacityIndex = CUBE_SCREEN_OPTION_ACTIVE_OPACITY;
+ }
+ else if (cs->rotationState == RotationChange)
+ {
+ opt = cs->lastOpacityIndex = CUBE_SCREEN_OPTION_INACTIVE_OPACITY;
+ }
+ else
+ {
+ opt = CUBE_SCREEN_OPTION_INACTIVE_OPACITY;
+ }
+
+ cs->toOpacity = (cs->opt[opt].value.f / 100.0f) * OPAQUE;
+
+ (*cs->getRotation) (s, &x, &x, &progress);
+
+ if (cs->desktopOpacity != cs->toOpacity ||
+ (progress > 0.0 && progress < 1.0))
+ {
+ cs->desktopOpacity =
+ (cs->opt[CUBE_SCREEN_OPTION_INACTIVE_OPACITY].value.f -
+ ((cs->opt[CUBE_SCREEN_OPTION_INACTIVE_OPACITY].value.f -
+ cs->opt[cs->lastOpacityIndex].value.f) * progress))
+ / 100.0f * OPAQUE;
+
+ }
+
+ cs->paintAllViewports = (cs->desktopOpacity != OPAQUE);
+
+ UNWRAP (cs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (cs, s, preparePaintScreen, cubePreparePaintScreen);
+}
+
+static void
+cubePaintScreen (CompScreen *s,
+ CompOutput *outputs,
+ int numOutputs,
+ unsigned int mask)
+{
+ float x, progress;
+
+ CUBE_SCREEN (s);
+
+ (*cs->getRotation) (s, &x, &x, &progress);
+
+ UNWRAP (cs, s, paintScreen);
+ if (cs->moMode == CUBE_MOMODE_ONE && s->nOutputDev &&
+ (progress > 0.0f || cs->desktopOpacity != OPAQUE))
+ (*s->paintScreen) (s, &s->fullscreenOutput, 1, mask);
+ else
+ (*s->paintScreen) (s, outputs, numOutputs, mask);
+ WRAP (cs, s, paintScreen, cubePaintScreen);
+}
+
+static Bool
+cubePaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ CUBE_SCREEN (s);
+
+ if (cs->grabIndex || cs->desktopOpacity != OPAQUE)
+ {
+ mask &= ~PAINT_SCREEN_REGION_MASK;
+ mask |= PAINT_SCREEN_TRANSFORMED_MASK;
+ }
+
+ cs->srcOutput = (output->id != ~0) ? output->id : 0;
+ /* Always use BTF painting on non-transformed screen */
+ cs->paintOrder = BTF;
+
+ UNWRAP (cs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (cs, s, paintOutput, cubePaintOutput);
+
+ return status;
+}
+
+static void
+cubeDonePaintScreen (CompScreen *s)
+{
+ CUBE_SCREEN (s);
+
+ if (cs->grabIndex || cs->desktopOpacity != cs->toOpacity)
+ damageScreen (s);
+
+ UNWRAP (cs, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (cs, s, donePaintScreen, cubeDonePaintScreen);
+}
+
+static Bool
+cubeCheckOrientation (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *outputPtr,
+ CompVector *points)
+{
+ CompTransform sTransform = *transform;
+ CompTransform mvp, pm;
+ CompVector pntA, pntB, pntC;
+ CompVector vecA, vecB, ortho;
+ Bool rv = FALSE;
+
+ CUBE_SCREEN (s);
+
+ (*s->applyScreenTransform) (s, sAttrib, outputPtr, &sTransform);
+ matrixTranslate (&sTransform, cs->outputXOffset, -cs->outputYOffset, 0.0f);
+ matrixScale (&sTransform, cs->outputXScale, cs->outputYScale, 1.0f);
+
+ memcpy (pm.m, s->projection, sizeof (pm.m));
+ matrixMultiply (&mvp, &pm, &sTransform);
+
+ matrixMultiplyVector (&pntA, &points[0], &mvp);
+
+ if (pntA.w < 0.0f)
+ rv = !rv;
+
+ matrixVectorDiv (&pntA);
+
+ matrixMultiplyVector (&pntB, &points[1], &mvp);
+
+ if (pntB.w < 0.0f)
+ rv = !rv;
+
+ matrixVectorDiv (&pntB);
+ matrixMultiplyVector (&pntC, &points[2], &mvp);
+ matrixVectorDiv (&pntC);
+
+ vecA.x = pntC.x - pntA.x;
+ vecA.y = pntC.y - pntA.y;
+ vecA.z = pntC.z - pntA.z;
+
+ vecB.x = pntC.x - pntB.x;
+ vecB.y = pntC.y - pntB.y;
+ vecB.z = pntC.z - pntB.z;
+
+ ortho.x = vecA.y * vecB.z - vecA.z * vecB.y;
+ ortho.y = vecA.z * vecB.x - vecA.x * vecB.z;
+ ortho.z = vecA.x * vecB.y - vecA.y * vecB.x;
+
+ if (ortho.z > 0.0f)
+ rv = !rv;
+
+ return rv;
+}
+
+static Bool
+cubeShouldPaintViewport (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *outputPtr,
+ PaintOrder order)
+{
+ Bool ftb;
+ float pointZ;
+
+ CUBE_SCREEN (s);
+
+ pointZ = cs->invert * cs->distance;
+ CompVector vPoints[3] = { {.v = { -0.5, 0.0, pointZ, 1.0 } },
+ {.v = { 0.0, 0.5, pointZ, 1.0 } },
+ {.v = { 0.0, 0.0, pointZ, 1.0 } } };
+
+ ftb = (*cs->checkOrientation) (s, sAttrib, transform, outputPtr, vPoints);
+
+ return (order == FTB && ftb) || (order == BTF && !ftb);
+}
+
+static void
+cubeMoveViewportAndPaint (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *outputPtr,
+ unsigned int mask,
+ PaintOrder paintOrder,
+ int dx)
+{
+ int output;
+
+ CUBE_SCREEN (s);
+
+ if (!(*cs->shouldPaintViewport) (s,
+ sAttrib,
+ transform,
+ outputPtr,
+ paintOrder))
+ return;
+
+ output = (outputPtr->id != ~0) ? outputPtr->id : 0;
+
+ cs->paintOrder = paintOrder;
+
+ if (cs->nOutput > 1)
+ {
+ int cubeOutput, dView;
+
+ /* translate to cube output */
+ cubeOutput = cs->outputMask[output];
+
+ /* convert from window movement to viewport movement */
+ dView = -dx;
+
+ cubeOutput += dView;
+
+ dView = cubeOutput / cs->nOutput;
+ cubeOutput = cubeOutput % cs->nOutput;
+
+ if (cubeOutput < 0)
+ {
+ cubeOutput += cs->nOutput;
+ dView--;
+ }
+
+ /* translate back to compiz output */
+ output = cs->srcOutput = cs->output[cubeOutput];
+
+ setWindowPaintOffset (s, -dView * s->width, 0);
+ (*cs->paintViewport) (s, sAttrib, transform,
+ &s->outputDev[output].region,
+ &s->outputDev[output], mask);
+ setWindowPaintOffset (s, 0, 0);
+ }
+ else
+ {
+ Region region;
+
+ setWindowPaintOffset (s, dx * s->width, 0);
+
+ if (cs->moMode == CUBE_MOMODE_MULTI)
+ region = &outputPtr->region;
+ else
+ region = &s->region;
+
+ (*cs->paintViewport) (s, sAttrib, transform, region, outputPtr, mask);
+
+ setWindowPaintOffset (s, 0, 0);
+ }
+}
+
+static void
+cubePaintAllViewports (CompScreen *s,
+ ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *outputPtr,
+ unsigned int mask,
+ int xMove,
+ float size,
+ int hsize,
+ PaintOrder paintOrder)
+{
+ ScreenPaintAttrib sa = *sAttrib;
+
+ int i;
+ int xMoveAdd;
+ int origXMoveAdd = 0; /* dx for the viewport we start
+ painting with (back-most). */
+ int iFirstSign; /* 1 if we do xMove += i first and
+ -1 if we do xMove -= i first. */
+
+ CUBE_SCREEN (s);
+
+ if (cs->invert == 1)
+ {
+ /* xMove ==> dx for the viewport which is the
+ nearest to the viewer in z axis.
+ xMove +/- hsize / 2 ==> dx for the viewport
+ which is the farthest to the viewer in z axis. */
+
+ if ((sa.xRotate < 0.0f && hsize % 2 == 1) ||
+ (sa.xRotate > 0.0f && hsize % 2 == 0))
+ {
+ origXMoveAdd = hsize / 2;
+ iFirstSign = 1;
+ }
+ else
+ {
+ origXMoveAdd = -hsize / 2;
+ iFirstSign = -1;
+ }
+ }
+ else
+ {
+ /* xMove is already the dx for farthest viewport. */
+ if (sa.xRotate > 0.0f)
+ iFirstSign = -1;
+ else
+ iFirstSign = 1;
+ }
+
+ for (i = 0; i <= hsize / 2; i++)
+ {
+ /* move to the correct viewport (back to front). */
+ xMoveAdd = origXMoveAdd; /* move to farthest viewport. */
+ xMoveAdd += iFirstSign * i; /* move i more viewports to
+ the right / left. */
+
+ /* Needed especially for unfold.
+ We paint the viewports around xMove viewport.
+ Adding or subtracting hsize from xMove has no effect on
+ what viewport we paint, but can make shorter paths. */
+ if (xMoveAdd < -hsize / 2)
+ xMoveAdd += hsize;
+ else if (xMoveAdd > hsize / 2)
+ xMoveAdd -= hsize;
+
+ /* Paint the viewport. */
+ xMove += xMoveAdd;
+
+ sa.yRotate -= cs->invert * xMoveAdd * 360.0f / size;
+ cubeMoveViewportAndPaint (s, &sa, transform, outputPtr, mask,
+ paintOrder, xMove);
+ sa.yRotate += cs->invert * xMoveAdd * 360.0f / size;
+
+ xMove -= xMoveAdd;
+
+ /* do the same for an equally far viewport. */
+ if (i == 0 || i * 2 == hsize)
+ continue;
+
+ xMoveAdd = origXMoveAdd; /* move to farthest viewport. */
+ xMoveAdd -= iFirstSign * i; /* move i more viewports to the
+ left / right (opposite side
+ from the one chosen first) */
+
+ if (xMoveAdd < -hsize / 2)
+ xMoveAdd += hsize;
+ else if (xMoveAdd > hsize / 2)
+ xMoveAdd -= hsize;
+
+ xMove += xMoveAdd;
+
+ sa.yRotate -= cs->invert * xMoveAdd * 360.0f / size;
+ cubeMoveViewportAndPaint (s, &sa, transform, outputPtr, mask,
+ paintOrder, xMove);
+ sa.yRotate += cs->invert * xMoveAdd * 360.0f / size;
+
+ xMove -= xMoveAdd;
+ }
+}
+
+static void
+cubeGetRotation (CompScreen *s,
+ float *x,
+ float *v,
+ float *progress)
+{
+ *x = 0.0f;
+ *v = 0.0f;
+ *progress = 0.0f;
+}
+
+static void
+cubeClearTargetOutput (CompScreen *s,
+ float xRotate,
+ float vRotate)
+{
+ CUBE_SCREEN (s);
+
+ if (cs->sky.name)
+ {
+ screenLighting (s, FALSE);
+
+ glPushMatrix ();
+
+ if (cs->opt[CUBE_SCREEN_OPTION_SKYDOME_ANIM].value.b &&
+ cs->grabIndex == 0)
+ {
+ glRotatef (vRotate / 5.0f + 90.0f, 1.0f, 0.0f, 0.0f);
+ glRotatef (xRotate, 0.0f, 0.0f, -1.0f);
+ }
+ else
+ {
+ glRotatef (90.0f, 1.0f, 0.0f, 0.0f);
+ }
+
+ glCallList (cs->skyListId);
+ glPopMatrix ();
+ }
+ else
+ {
+ clearTargetOutput (s->display, GL_COLOR_BUFFER_BIT);
+ }
+}
+
+static void
+cubePaintTop (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size)
+{
+ ScreenPaintAttrib sa = *sAttrib;
+ CompTransform sTransform = *transform;
+
+ CUBE_SCREEN (s);
+
+ screenLighting (s, TRUE);
+
+ glColor4us (cs->color[0], cs->color[1], cs->color[2], cs->desktopOpacity);
+
+ glPushMatrix ();
+
+ sa.yRotate += (360.0f / size) * (cs->xRotations + 1);
+ if (!cs->opt[CUBE_SCREEN_OPTION_ADJUST_IMAGE].value.b)
+ sa.yRotate -= (360.0f / size) * s->x;
+
+ (*s->applyScreenTransform) (s, &sa, output, &sTransform);
+
+ glLoadMatrixf (sTransform.m);
+ glTranslatef (cs->outputXOffset, -cs->outputYOffset, 0.0f);
+ glScalef (cs->outputXScale, cs->outputYScale, 1.0f);
+
+ if (cs->desktopOpacity != OPAQUE)
+ {
+ screenTexEnvMode (s, GL_MODULATE);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ glVertexPointer (3, GL_FLOAT, 0, cs->vertices);
+
+ if (cs->invert == 1 && size == 4 && cs->texture.name)
+ {
+ enableTexture (s, &cs->texture, COMP_TEXTURE_FILTER_GOOD);
+ glTexCoordPointer (2, GL_FLOAT, 0, cs->tc);
+ glDrawArrays (GL_TRIANGLE_FAN, 0, cs->nVertices >> 1);
+ disableTexture (s, &cs->texture);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ }
+ else
+ {
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glDrawArrays (GL_TRIANGLE_FAN, 0, cs->nVertices >> 1);
+ }
+
+ glPopMatrix ();
+
+ glColor4usv (defaultColor);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ screenTexEnvMode (s, GL_REPLACE);
+ glDisable (GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+}
+
+static void
+cubePaintBottom (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size)
+{
+ ScreenPaintAttrib sa = *sAttrib;
+ CompTransform sTransform = *transform;
+
+ CUBE_SCREEN (s);
+
+ screenLighting (s, TRUE);
+
+ glColor4us (cs->color[0], cs->color[1], cs->color[2], cs->desktopOpacity);
+
+ glPushMatrix ();
+
+ sa.yRotate += (360.0f / size) * (cs->xRotations + 1);
+ if (!cs->opt[CUBE_SCREEN_OPTION_ADJUST_IMAGE].value.b)
+ sa.yRotate -= (360.0f / size) * s->x;
+
+ (*s->applyScreenTransform) (s, &sa, output, &sTransform);
+
+ glLoadMatrixf (sTransform.m);
+ glTranslatef (cs->outputXOffset, -cs->outputYOffset, 0.0f);
+ glScalef (cs->outputXScale, cs->outputYScale, 1.0f);
+
+ if (cs->desktopOpacity != OPAQUE)
+ {
+ screenTexEnvMode (s, GL_MODULATE);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+
+ glVertexPointer (3, GL_FLOAT, 0, cs->vertices);
+
+ glDrawArrays (GL_TRIANGLE_FAN, cs->nVertices >> 1,
+ cs->nVertices >> 1);
+
+ glPopMatrix ();
+
+ glColor4usv (defaultColor);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ screenTexEnvMode (s, GL_REPLACE);
+ glDisable (GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+}
+
+static void
+cubePaintInside (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ CompOutput *output,
+ int size)
+{
+}
+
+static void
+cubeEnableOutputClipping (CompScreen *s,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output)
+{
+ CUBE_SCREEN (s);
+
+ if (cs->rotationState != RotationNone)
+ {
+ glPushMatrix ();
+ glLoadMatrixf (transform->m);
+ glTranslatef (cs->outputXOffset, -cs->outputYOffset, 0.0f);
+ glScalef (cs->outputXScale, cs->outputYScale, 1.0f);
+
+ if (cs->invert == 1)
+ {
+ GLdouble clipPlane0[] = { 1.0, 0.0, 0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane1[] = { -1.0, 0.0, 0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane2[] = { 0.0, -1.0, 0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane3[] = { 0.0, 1.0, 0.5 / cs->distance, 0.0 };
+ glClipPlane (GL_CLIP_PLANE0, clipPlane0);
+ glClipPlane (GL_CLIP_PLANE1, clipPlane1);
+ glClipPlane (GL_CLIP_PLANE2, clipPlane2);
+ glClipPlane (GL_CLIP_PLANE3, clipPlane3);
+ }
+ else
+ {
+ GLdouble clipPlane0[] = { -1.0, 0.0, -0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane1[] = { 1.0, 0.0, -0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane2[] = { 0.0, 1.0, -0.5 / cs->distance, 0.0 };
+ GLdouble clipPlane3[] = { 0.0, -1.0, -0.5 / cs->distance, 0.0 };
+ glClipPlane (GL_CLIP_PLANE0, clipPlane0);
+ glClipPlane (GL_CLIP_PLANE1, clipPlane1);
+ glClipPlane (GL_CLIP_PLANE2, clipPlane2);
+ glClipPlane (GL_CLIP_PLANE3, clipPlane3);
+ }
+
+ glEnable (GL_CLIP_PLANE0);
+ glEnable (GL_CLIP_PLANE1);
+ glEnable (GL_CLIP_PLANE2);
+ glEnable (GL_CLIP_PLANE3);
+
+ glPopMatrix ();
+ }
+ else
+ {
+ UNWRAP (cs, s, enableOutputClipping);
+ (*s->enableOutputClipping) (s, transform, region, output);
+ WRAP (cs, s, enableOutputClipping, cubeEnableOutputClipping);
+ }
+}
+
+static void
+cubePaintViewport (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ (*s->paintTransformedOutput) (s, sAttrib, transform, region, output, mask);
+}
+
+static void
+cubePaintTransformedOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *outputPtr,
+ unsigned int mask)
+{
+ ScreenPaintAttrib sa = *sAttrib;
+ float xRotate, vRotate, progress;
+ int hsize;
+ float size;
+ GLenum filter = s->display->textureFilter;
+ PaintOrder paintOrder;
+ Bool wasCulled = FALSE;
+ Bool paintCaps;
+ int cullNorm, cullInv;
+ int output = 0;
+
+ CUBE_SCREEN (s);
+
+ output = (outputPtr->id != ~0) ? outputPtr->id : 0;
+
+ if (((outputPtr->id != ~0) && cs->recalcOutput) ||
+ ((outputPtr->id == ~0) && !cs->recalcOutput && cs->nOutput > 1))
+ {
+ cs->recalcOutput = (outputPtr->id == ~0);
+ cs->nOutput = 1;
+ cubeUpdateGeometry (s, s->hsize, cs->invert);
+ }
+
+ hsize = s->hsize * cs->nOutput;
+ size = hsize;
+
+ glGetIntegerv (GL_CULL_FACE_MODE, &cullNorm);
+ cullInv = (cullNorm == GL_BACK)? GL_FRONT : GL_BACK;
+ wasCulled = glIsEnabled (GL_CULL_FACE);
+
+ if (!cs->fullscreenOutput)
+ {
+ cs->outputXScale = (float) s->width / outputPtr->width;
+ cs->outputYScale = (float) s->height / outputPtr->height;
+
+ cs->outputXOffset =
+ (s->width / 2.0f -
+ (outputPtr->region.extents.x1 +
+ outputPtr->region.extents.x2) / 2.0f) /
+ (float) outputPtr->width;
+
+ cs->outputYOffset =
+ (s->height / 2.0f -
+ (outputPtr->region.extents.y1 +
+ outputPtr->region.extents.y2) / 2.0f) /
+ (float) outputPtr->height;
+ }
+ else
+ {
+ cs->outputXScale = 1.0f;
+ cs->outputYScale = 1.0f;
+ cs->outputXOffset = 0.0f;
+ cs->outputYOffset = 0.0f;
+ }
+
+ (*cs->getRotation) (s, &xRotate, &vRotate, &progress);
+
+ sa.xRotate += xRotate;
+ sa.vRotate += vRotate;
+
+ if (!cs->cleared[output])
+ {
+ float rRotate;
+
+ rRotate = xRotate - ((s->x *360.0f) / s->hsize);
+
+ (*cs->clearTargetOutput) (s, rRotate, vRotate);
+ cs->cleared[output] = TRUE;
+ }
+
+ mask &= ~PAINT_SCREEN_CLEAR_MASK;
+
+ UNWRAP (cs, s, paintTransformedOutput);
+
+ if (cs->grabIndex)
+ {
+ sa.vRotate = 0.0f;
+
+ size += cs->unfold * 8.0f;
+ size += powf (cs->unfold, 6) * 64.0;
+ size += powf (cs->unfold, 16) * 8192.0;
+
+ sa.zTranslate = -cs->invert * (0.5f / tanf (M_PI / size));
+
+ /* distance we move the camera back when unfolding the cube.
+ currently hardcoded to 1.5 but it should probably be optional. */
+ sa.zCamera -= cs->unfold * 1.5f;
+ }
+ else
+ {
+ if (vRotate > 100.0f)
+ sa.vRotate = 100.0f;
+ else if (vRotate < -100.0f)
+ sa.vRotate = -100.0f;
+ else
+ sa.vRotate = vRotate;
+
+ sa.zTranslate = -cs->invert * cs->distance;
+ }
+
+ if (sa.xRotate > 0.0f)
+ cs->xRotations = (int) (hsize * sa.xRotate + 180.0f) / 360.0f;
+ else
+ cs->xRotations = (int) (hsize * sa.xRotate - 180.0f) / 360.0f;
+
+ sa.xRotate -= (360.0f * cs->xRotations) / hsize;
+ sa.xRotate *= cs->invert;
+
+ sa.xRotate = sa.xRotate / size * hsize;
+
+ if (cs->grabIndex && cs->opt[CUBE_SCREEN_OPTION_MIPMAP].value.b)
+ s->display->textureFilter = GL_LINEAR_MIPMAP_LINEAR;
+
+ if (cs->invert == 1)
+ {
+ /* Outside cube - start with FTB faces */
+ paintOrder = FTB;
+ glCullFace (cullInv);
+ }
+ else
+ {
+ /* Inside cube - start with BTF faces */
+ paintOrder = BTF;
+ }
+
+ if (cs->invert == -1 || cs->paintAllViewports)
+ cubePaintAllViewports (s, &sa, transform, region, outputPtr,
+ mask, cs->xRotations, size, hsize, paintOrder);
+
+ glCullFace (cullNorm);
+
+ if (wasCulled && cs->paintAllViewports)
+ glDisable (GL_CULL_FACE);
+
+ paintCaps = !cs->grabIndex && (hsize > 2) && !cs->capsPainted[output] &&
+ (cs->invert != 1 || cs->desktopOpacity != OPAQUE ||
+ cs->paintAllViewports || sa.vRotate != 0.0f ||
+ sa.yTranslate != 0.0f);
+
+ if (paintCaps)
+ {
+ Bool topDir, bottomDir, allCaps;
+
+ static CompVector top[3] = { { .v = { 0.5, 0.5, 0.0, 1.0} },
+ { .v = { 0.0, 0.5, -0.5, 1.0} },
+ { .v = { 0.0, 0.5, 0.0, 1.0} } };
+ static CompVector bottom[3] = { { .v = { 0.5, -0.5, 0.0, 1.0} },
+ { .v = { 0.0, -0.5, -0.5, 1.0} },
+ { .v = { 0.0, -0.5, 0.0, 1.0} } };
+
+ topDir = (*cs->checkOrientation) (s, &sa, transform, outputPtr, top);
+ bottomDir = (*cs->checkOrientation) (s, &sa, transform,
+ outputPtr, bottom);
+
+ cs->capsPainted[output] = TRUE;
+
+ allCaps = cs->paintAllViewports || cs->invert != 1;
+
+ if (topDir && bottomDir)
+ {
+ glNormal3f (0.0f, -1.0f, 0.0f);
+ if (allCaps)
+ {
+ (*cs->paintBottom) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, 0.0f, -1.0f);
+ (*cs->paintInside) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, -1.0f, 0.0f);
+ }
+ (*cs->paintTop) (s, &sa, transform, outputPtr, hsize);
+ }
+ else if (!topDir && !bottomDir)
+ {
+ glNormal3f (0.0f, 1.0f, 0.0f);
+ if (allCaps)
+ {
+ (*cs->paintTop) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, 0.0f, -1.0f);
+ (*cs->paintInside) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, 1.0f, 0.0f);
+ }
+ (*cs->paintBottom) (s, &sa, transform, outputPtr, hsize);
+ }
+ else if (allCaps)
+ {
+ glNormal3f (0.0f, 1.0f, 0.0f);
+ (*cs->paintTop) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, -1.0f, 0.0f);
+ (*cs->paintBottom) (s, &sa, transform, outputPtr, hsize);
+ glNormal3f (0.0f, 0.0f, -1.0f);
+ (*cs->paintInside) (s, &sa, transform, outputPtr, hsize);
+ }
+ glNormal3f (0.0f, 0.0f, -1.0f);
+ }
+
+ if (wasCulled)
+ glEnable (GL_CULL_FACE);
+
+ if (cs->invert == 1)
+ {
+ /* Outside cube - continue with BTF faces */
+ paintOrder = BTF;
+ }
+ else
+ {
+ /* Inside cube - continue with FTB faces */
+ paintOrder = FTB;
+ glCullFace (cullInv);
+ }
+
+ if (cs->invert == 1 || cs->paintAllViewports)
+ cubePaintAllViewports (s, &sa, transform, region,
+ outputPtr, mask, cs->xRotations,
+ size, hsize, paintOrder);
+
+ glCullFace (cullNorm);
+
+ s->display->textureFilter = filter;
+
+ WRAP (cs, s, paintTransformedOutput, cubePaintTransformedOutput);
+}
+
+static Bool
+cubePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+ CompScreen *s = w->screen;
+ CUBE_SCREEN (s);
+
+ if ((w->type & CompWindowTypeDesktopMask) &&
+ (attrib->opacity != cs->desktopOpacity))
+ {
+ WindowPaintAttrib wAttrib = *attrib;
+
+ wAttrib.opacity = cs->desktopOpacity;
+
+ UNWRAP (cs, s, paintWindow);
+ status = (*s->paintWindow) (w, &wAttrib, transform, region, mask);
+ WRAP (cs, s, paintWindow, cubePaintWindow);
+ }
+ else
+ {
+ UNWRAP (cs, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (cs, s, paintWindow, cubePaintWindow);
+ }
+
+ return status;
+}
+
+static void
+cubeInitWindowWalker (CompScreen *s, CompWalker* walker)
+{
+ CUBE_SCREEN (s);
+
+ UNWRAP (cs, s, initWindowWalker);
+ (*s->initWindowWalker) (s, walker);
+ WRAP (cs, s, initWindowWalker, cubeInitWindowWalker);
+
+ if (cs->paintOrder == FTB)
+ {
+ WalkInitProc tmpInit = walker->first;
+ WalkStepProc tmpStep = walker->next;
+
+ walker->first = walker->last;
+ walker->last = tmpInit;
+
+ walker->next = walker->prev;
+ walker->prev = tmpStep;
+ }
+}
+
+static void
+cubeApplyScreenTransform (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ CompOutput *output,
+ CompTransform *transform)
+{
+ CUBE_SCREEN (s);
+
+ matrixTranslate (transform, cs->outputXOffset, -cs->outputYOffset, 0.0f);
+ matrixScale (transform, cs->outputXScale, cs->outputYScale, 1.0f);
+
+ UNWRAP (cs, s, applyScreenTransform);
+ (*s->applyScreenTransform) (s, sAttrib, output, transform);
+ WRAP (cs, s, applyScreenTransform, cubeApplyScreenTransform);
+
+ matrixScale (transform, 1.0f / cs->outputXScale,
+ 1.0f / cs->outputYScale, 1.0f);
+ matrixTranslate (transform, -cs->outputXOffset, cs->outputYOffset, 0.0f);
+}
+
+static Bool
+cubeUnfold (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ CUBE_SCREEN (s);
+
+ if (s->hsize * cs->nOutput < 4)
+ return FALSE;
+
+ if (otherScreenGrabExist (s, "rotate", "switcher", "cube", 0))
+ return FALSE;
+
+ if (!cs->grabIndex)
+ cs->grabIndex = pushScreenGrab (s, s->invisibleCursor, "cube");
+
+ if (cs->grabIndex)
+ {
+ cs->unfolded = TRUE;
+ damageScreen (s);
+ }
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+ }
+
+ return FALSE;
+}
+
+static Bool
+cubeFold (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ CUBE_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (cs->grabIndex)
+ {
+ cs->unfolded = FALSE;
+ damageScreen (s);
+ }
+ }
+
+ action->state &= ~(CompActionStateTermButton | CompActionStateTermKey);
+
+ return FALSE;
+}
+
+static Bool
+cubeNextImage (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int imgNFile;
+
+ CUBE_SCREEN (s);
+
+ imgNFile = cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.nValue;
+ if (imgNFile)
+ {
+ cubeLoadImg (s, (cs->imgCurFile + 1) % imgNFile);
+ damageScreen (s);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+cubePrevImage (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int imgNFile;
+
+ CUBE_SCREEN (s);
+
+ imgNFile = cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.nValue;
+ if (imgNFile)
+ {
+ cubeLoadImg (s, (cs->imgCurFile - 1 + imgNFile) % imgNFile);
+ damageScreen (s);
+ }
+ }
+
+ return FALSE;
+}
+
+static void
+cubeOutputChangeNotify (CompScreen *s)
+{
+ CUBE_SCREEN (s);
+
+ cubeUpdateOutputs (s);
+ cubeUpdateGeometry (s, s->hsize, cs->invert);
+
+ if (cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.nValue)
+ cubeLoadImg (s, cs->imgCurFile);
+
+ UNWRAP (cs, s, outputChangeNotify);
+ (*s->outputChangeNotify) (s);
+ WRAP (cs, s, outputChangeNotify, cubeOutputChangeNotify);
+}
+
+static Bool
+cubeSetOptionForPlugin (CompObject *o,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ Bool status;
+
+ CUBE_CORE (&core);
+
+ UNWRAP (cc, &core, setOptionForPlugin);
+ status = (*core.setOptionForPlugin) (o, plugin, name, value);
+ WRAP (cc, &core, setOptionForPlugin, cubeSetOptionForPlugin);
+
+ if (status && o->type == COMP_OBJECT_TYPE_SCREEN)
+ {
+ if (strcmp (plugin, "core") == 0 && strcmp (name, "hsize") == 0)
+ {
+ CompScreen *s = (CompScreen *) o;
+
+ CUBE_SCREEN (s);
+
+ cubeUpdateGeometry (s, s->hsize, cs->invert);
+ }
+ }
+
+ return status;
+}
+
+static CompOption *
+cubeGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ CUBE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (cd);
+ return cd->opt;
+}
+
+static Bool
+cubeSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ CUBE_DISPLAY (display);
+
+ o = compFindOption (cd->opt, NUM_OPTIONS (cd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case CUBE_DISPLAY_OPTION_ABI:
+ case CUBE_DISPLAY_OPTION_INDEX:
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static Bool
+cubeInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ CubeCore *cc;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ cc = malloc (sizeof (CubeCore));
+ if (!cc)
+ return FALSE;
+
+ cubeDisplayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (cubeDisplayPrivateIndex < 0)
+ {
+ free (cc);
+ return FALSE;
+ }
+
+ WRAP (cc, &core, setOptionForPlugin, cubeSetOptionForPlugin);
+
+ c->base.privates[cubeCorePrivateIndex].ptr = cc;
+
+ return TRUE;
+}
+
+static void
+cubeFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ CUBE_CORE (c);
+
+ UNWRAP (cc, &core, setOptionForPlugin);
+
+ freeDisplayPrivateIndex (cubeDisplayPrivateIndex);
+
+ free (cc);
+}
+
+static const CompMetadataOptionInfo cubeDisplayOptionInfo[] = {
+ { "abi", "int", 0, 0, 0 },
+ { "index", "int", 0, 0, 0 },
+ { "unfold_key", "key", 0, cubeUnfold, cubeFold },
+ { "next_slide_key", "key", "<passive_grab>false</passive_grab>",
+ cubeNextImage, 0 },
+ { "prev_slide_key", "key", "<passive_grab>false</passive_grab>",
+ cubePrevImage, 0 }
+};
+
+static Bool
+cubeInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CubeDisplay *cd;
+
+ cd = malloc (sizeof (CubeDisplay));
+ if (!cd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &cubeMetadata,
+ cubeDisplayOptionInfo,
+ cd->opt,
+ CUBE_DISPLAY_OPTION_NUM))
+ {
+ free (cd);
+ return FALSE;
+ }
+
+ cd->opt[CUBE_DISPLAY_OPTION_ABI].value.i = CUBE_ABIVERSION;
+ cd->opt[CUBE_DISPLAY_OPTION_INDEX].value.i = cubeDisplayPrivateIndex;
+
+ cd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (cd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, cd->opt, CUBE_DISPLAY_OPTION_NUM);
+ free (cd);
+ return FALSE;
+ }
+
+ d->base.privates[cubeDisplayPrivateIndex].ptr = cd;
+
+ return TRUE;
+}
+
+static void
+cubeFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CUBE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, cd->screenPrivateIndex);
+
+ compFiniDisplayOptions (d, cd->opt, CUBE_DISPLAY_OPTION_NUM);
+
+ free (cd);
+}
+
+static const CompMetadataOptionInfo cubeScreenOptionInfo[] = {
+ { "color", "color", 0, 0, 0 },
+ { "in", "bool", 0, 0, 0 },
+ { "scale_image", "bool", 0, 0, 0 },
+ { "images", "list", "<type>string</type>", 0, 0 },
+ { "skydome", "bool", 0, 0, 0 },
+ { "skydome_image", "string", 0, 0, 0 },
+ { "skydome_animated", "bool", 0, 0, 0 },
+ { "skydome_gradient_start_color", "color", 0, 0, 0 },
+ { "skydome_gradient_end_color", "color", 0, 0, 0 },
+ { "acceleration", "float", "<min>1.0</min>", 0, 0 },
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "mipmap", "bool", 0, 0, 0 },
+ { "adjust_image", "bool", 0, 0, 0 },
+ { "active_opacity", "float", "<min>0.0</min><max>100.0</max>", 0, 0 },
+ { "inactive_opacity", "float", "<min>0.0</min><max>100.0</max>", 0, 0 },
+ { "transparent_manual_only", "bool", 0, 0, 0 },
+ { "multioutput_mode", "int", "<min>0</min><max>2</max>", 0, 0 }
+};
+
+static Bool
+cubeInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ CubeScreen *cs;
+
+ CUBE_DISPLAY (s->display);
+
+ cs = malloc (sizeof (CubeScreen));
+ if (!cs)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &cubeMetadata,
+ cubeScreenOptionInfo,
+ cs->opt,
+ CUBE_SCREEN_OPTION_NUM))
+ {
+ free (cs);
+ return FALSE;
+ }
+
+ cs->pw = 0;
+ cs->ph = 0;
+
+ cs->invert = 1;
+
+ cs->tc[0] = cs->tc[1] = cs->tc[2] = cs->tc[3] = 0.0f;
+ cs->tc[4] = cs->tc[5] = cs->tc[6] = cs->tc[7] = 0.0f;
+
+ memcpy (cs->color, cs->opt[CUBE_SCREEN_OPTION_COLOR].value.c,
+ sizeof (cs->color));
+
+ cs->nVertices = 0;
+ cs->vertices = NULL;
+
+ cs->grabIndex = 0;
+
+ cs->srcOutput = 0;
+
+ cs->skyListId = 0;
+
+ cs->getRotation = cubeGetRotation;
+ cs->clearTargetOutput = cubeClearTargetOutput;
+ cs->paintTop = cubePaintTop;
+ cs->paintBottom = cubePaintBottom;
+ cs->paintInside = cubePaintInside;
+ cs->checkOrientation = cubeCheckOrientation;
+ cs->paintViewport = cubePaintViewport;
+ cs->shouldPaintViewport = cubeShouldPaintViewport;
+
+ s->base.privates[cd->screenPrivateIndex].ptr = cs;
+
+ initTexture (s, &cs->texture);
+ initTexture (s, &cs->sky);
+
+ cs->imgCurFile = 0;
+
+ cs->unfolded = FALSE;
+ cs->unfold = 0.0f;
+
+ cs->unfoldVelocity = 0.0f;
+
+ cs->paintAllViewports = FALSE;
+ cs->fullscreenOutput = TRUE;
+
+ cs->outputXScale = 1.0f;
+ cs->outputYScale = 1.0f;
+ cs->outputXOffset = 0.0f;
+ cs->outputYOffset = 0.0f;
+
+ cs->rotationState = RotationNone;
+
+ cs->desktopOpacity = OPAQUE;
+
+ cs->lastOpacityIndex = CUBE_SCREEN_OPTION_INACTIVE_OPACITY;
+
+ cs->moMode = cs->opt[CUBE_SCREEN_OPTION_MULTIOUTPUT_MODE].value.i;
+
+ cs->recalcOutput = FALSE;
+
+ memset (cs->cleared, 0, sizeof (cs->cleared));
+
+ cubeUpdateOutputs (s);
+
+ if (!cubeUpdateGeometry (s, s->hsize, cs->invert))
+ {
+ compFiniScreenOptions (s, cs->opt, CUBE_SCREEN_OPTION_NUM);
+ free (cs);
+ return FALSE;
+ }
+
+ if (cs->opt[CUBE_SCREEN_OPTION_IMAGES].value.list.nValue)
+ {
+ cubeLoadImg (s, cs->imgCurFile);
+ damageScreen (s);
+ }
+
+ WRAP (cs, s, preparePaintScreen, cubePreparePaintScreen);
+ WRAP (cs, s, donePaintScreen, cubeDonePaintScreen);
+ WRAP (cs, s, paintScreen, cubePaintScreen);
+ WRAP (cs, s, paintOutput, cubePaintOutput);
+ WRAP (cs, s, paintTransformedOutput, cubePaintTransformedOutput);
+ WRAP (cs, s, enableOutputClipping, cubeEnableOutputClipping);
+ WRAP (cs, s, paintWindow, cubePaintWindow);
+ WRAP (cs, s, applyScreenTransform, cubeApplyScreenTransform);
+ WRAP (cs, s, outputChangeNotify, cubeOutputChangeNotify);
+ WRAP (cs, s, initWindowWalker, cubeInitWindowWalker);
+
+ return TRUE;
+}
+
+static void
+cubeFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ CUBE_SCREEN (s);
+
+ if (cs->vertices)
+ free (cs->vertices);
+
+ if (cs->skyListId)
+ glDeleteLists (cs->skyListId, 1);
+
+ UNWRAP (cs, s, preparePaintScreen);
+ UNWRAP (cs, s, donePaintScreen);
+ UNWRAP (cs, s, paintScreen);
+ UNWRAP (cs, s, paintOutput);
+ UNWRAP (cs, s, paintTransformedOutput);
+ UNWRAP (cs, s, enableOutputClipping);
+ UNWRAP (cs, s, paintWindow);
+ UNWRAP (cs, s, applyScreenTransform);
+ UNWRAP (cs, s, outputChangeNotify);
+ UNWRAP (cs, s, initWindowWalker);
+
+ finiTexture (s, &cs->texture);
+ finiTexture (s, &cs->sky);
+
+ compFiniScreenOptions (s, cs->opt, CUBE_SCREEN_OPTION_NUM);
+
+ free (cs);
+}
+
+static CompBool
+cubeInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) cubeInitCore,
+ (InitPluginObjectProc) cubeInitDisplay,
+ (InitPluginObjectProc) cubeInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+cubeFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) cubeFiniCore,
+ (FiniPluginObjectProc) cubeFiniDisplay,
+ (FiniPluginObjectProc) cubeFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+cubeGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) cubeGetDisplayOptions,
+ (GetPluginObjectOptionsProc) cubeGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+cubeSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) cubeSetDisplayOption,
+ (SetPluginObjectOptionProc) cubeSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+cubeInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&cubeMetadata,
+ p->vTable->name,
+ cubeDisplayOptionInfo,
+ CUBE_DISPLAY_OPTION_NUM,
+ cubeScreenOptionInfo,
+ CUBE_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ cubeCorePrivateIndex = allocateCorePrivateIndex ();
+ if (cubeCorePrivateIndex < 0)
+ {
+ compFiniMetadata (&cubeMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&cubeMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+cubeFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (cubeCorePrivateIndex);
+ compFiniMetadata (&cubeMetadata);
+}
+
+static CompMetadata *
+cubeGetMetadata (CompPlugin *plugin)
+{
+ return &cubeMetadata;
+}
+
+CompPluginVTable cubeVTable = {
+ "cube",
+ cubeGetMetadata,
+ cubeInit,
+ cubeFini,
+ cubeInitObject,
+ cubeFiniObject,
+ cubeGetObjectOptions,
+ cubeSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &cubeVTable;
+}
diff --git a/plugins/dbus.c b/plugins/dbus.c
new file mode 100644
index 0000000..62ace06
--- /dev/null
+++ b/plugins/dbus.c
@@ -0,0 +1,2596 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <poll.h>
+
+#define DBUS_API_SUBJECT_TO_CHANGE
+#include <dbus/dbus.h>
+#include <libxml/xmlwriter.h>
+
+#include <compiz-core.h>
+
+static CompMetadata dbusMetadata;
+
+#define COMPIZ_DBUS_SERVICE_NAME "org.freedesktop.compiz"
+#define COMPIZ_DBUS_INTERFACE "org.freedesktop.compiz"
+#define COMPIZ_DBUS_ROOT_PATH "/org/freedesktop/compiz"
+
+#define COMPIZ_DBUS_ACTIVATE_MEMBER_NAME "activate"
+#define COMPIZ_DBUS_DEACTIVATE_MEMBER_NAME "deactivate"
+#define COMPIZ_DBUS_SET_MEMBER_NAME "set"
+#define COMPIZ_DBUS_GET_MEMBER_NAME "get"
+#define COMPIZ_DBUS_GET_METADATA_MEMBER_NAME "getMetadata"
+#define COMPIZ_DBUS_LIST_MEMBER_NAME "list"
+#define COMPIZ_DBUS_GET_PLUGINS_MEMBER_NAME "getPlugins"
+#define COMPIZ_DBUS_GET_PLUGIN_METADATA_MEMBER_NAME "getPluginMetadata"
+
+#define COMPIZ_DBUS_CHANGED_SIGNAL_NAME "changed"
+#define COMPIZ_DBUS_PLUGINS_CHANGED_SIGNAL_NAME "pluginsChanged"
+
+#define DBUS_FILE_WATCH_CURRENT 0
+#define DBUS_FILE_WATCH_PLUGIN 1
+#define DBUS_FILE_WATCH_HOME 2
+#define DBUS_FILE_WATCH_NUM 3
+
+static int corePrivateIndex;
+static int displayPrivateIndex;
+
+typedef struct _DbusCore {
+ DBusConnection *connection;
+ CompWatchFdHandle watchFdHandle;
+
+ CompFileWatchHandle fileWatch[DBUS_FILE_WATCH_NUM];
+
+ InitPluginForObjectProc initPluginForObject;
+ SetOptionForPluginProc setOptionForPlugin;
+} DbusCore;
+
+typedef struct _DbusDisplay {
+ char **pluginList;
+ unsigned int nPlugins;
+} DbusDisplay;
+
+static DBusHandlerResult dbusHandleMessage (DBusConnection *,
+ DBusMessage *,
+ void *);
+
+static DBusObjectPathVTable dbusMessagesVTable = {
+ NULL, dbusHandleMessage, /* handler function */
+ NULL, NULL, NULL, NULL
+};
+
+#define GET_DBUS_CORE(c) \
+ ((DbusCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define DBUS_CORE(c) \
+ DbusCore *dc = GET_DBUS_CORE (c)
+
+#define GET_DBUS_DISPLAY(d) \
+ ((DbusDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define DBUS_DISPLAY(d) \
+ DbusDisplay *dd = GET_DBUS_DISPLAY (d)
+
+static void
+dbusUpdatePluginList (CompDisplay *d)
+{
+ CompListValue *pl;
+ unsigned int i;
+
+ DBUS_DISPLAY (d);
+
+ pl = &d->opt[COMP_DISPLAY_OPTION_ACTIVE_PLUGINS].value.list;
+
+ for (i = 0; i < dd->nPlugins; i++)
+ free (dd->pluginList[i]);
+
+ dd->pluginList = realloc (dd->pluginList, pl->nValue * sizeof (char *));
+ if (!dd->pluginList)
+ {
+ dd->nPlugins = 0;
+ return;
+ }
+
+ for (i = 0; i < pl->nValue; i++)
+ dd->pluginList[i] = strdup (pl->value[i].s);
+
+ dd->nPlugins = pl->nValue;
+}
+
+static CompOption *
+dbusGetOptionsFromPath (char **path,
+ CompObject **returnObject,
+ CompMetadata **returnMetadata,
+ int *nOption)
+{
+ CompPlugin *p;
+ CompObject *object;
+
+ object = compObjectFind (&core.base, COMP_OBJECT_TYPE_DISPLAY, NULL);
+ if (!object)
+ return NULL;
+
+ if (strncmp (path[1], "screen", 6) == 0)
+ {
+ object = compObjectFind (object, COMP_OBJECT_TYPE_SCREEN,
+ path[1] + 6);
+ if (!object)
+ return NULL;
+ }
+ else if (strcmp (path[1], "allscreens") != 0)
+ {
+ return NULL;
+ }
+
+ if (returnObject)
+ *returnObject = object;
+
+ for (p = getPlugins (); p; p = p->next)
+ if (strcmp (p->vTable->name, path[0]) == 0)
+ break;
+
+ if (returnMetadata)
+ {
+ if (p && p->vTable->getMetadata)
+ *returnMetadata = (*p->vTable->getMetadata) (p);
+ else
+ *returnMetadata = NULL;
+ }
+
+ if (!p)
+ return NULL;
+
+ if (!p->vTable->getObjectOptions)
+ return NULL;
+
+ return (*p->vTable->getObjectOptions) (p, object, nOption);
+}
+
+/* functions to create introspection XML */
+static void
+dbusIntrospectStartInterface (xmlTextWriterPtr writer)
+{
+ xmlTextWriterStartElement (writer, BAD_CAST "interface");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "name",
+ BAD_CAST COMPIZ_DBUS_SERVICE_NAME);
+}
+
+static void
+dbusIntrospectEndInterface (xmlTextWriterPtr writer)
+{
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectAddArgument (xmlTextWriterPtr writer,
+ char *type,
+ char *direction)
+{
+ xmlTextWriterStartElement (writer, BAD_CAST "arg");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "type", BAD_CAST type);
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "direction",
+ BAD_CAST direction);
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectAddMethod (xmlTextWriterPtr writer,
+ char *name,
+ int nArgs,
+ ...)
+{
+ va_list var_args;
+ char *type, *direction;
+
+ xmlTextWriterStartElement (writer, BAD_CAST "method");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "name", BAD_CAST name);
+
+ va_start (var_args, nArgs);
+ while (nArgs)
+ {
+ type = va_arg (var_args, char *);
+ direction = va_arg (var_args, char *);
+ dbusIntrospectAddArgument (writer, type, direction);
+ nArgs--;
+ }
+ va_end (var_args);
+
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectAddSignal (xmlTextWriterPtr writer,
+ char *name,
+ int nArgs,
+ ...)
+{
+ va_list var_args;
+ char *type;
+
+ xmlTextWriterStartElement (writer, BAD_CAST "signal");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "name", BAD_CAST name);
+
+ va_start (var_args, nArgs);
+ while (nArgs)
+ {
+ type = va_arg (var_args, char *);
+ dbusIntrospectAddArgument (writer, type, "out");
+ nArgs--;
+ }
+ va_end (var_args);
+
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectAddNode (xmlTextWriterPtr writer,
+ char *name)
+{
+ xmlTextWriterStartElement (writer, BAD_CAST "node");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "name", BAD_CAST name);
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectStartRoot (xmlTextWriterPtr writer)
+{
+ xmlTextWriterStartElement (writer, BAD_CAST "node");
+
+ xmlTextWriterStartElement (writer, BAD_CAST "interface");
+ xmlTextWriterWriteAttribute (writer, BAD_CAST "name",
+ BAD_CAST "org.freedesktop.DBus.Introspectable");
+
+ dbusIntrospectAddMethod (writer, "Introspect", 1, "s", "out");
+
+ xmlTextWriterEndElement (writer);
+}
+
+static void
+dbusIntrospectEndRoot (xmlTextWriterPtr writer)
+{
+ xmlTextWriterEndDocument (writer);
+}
+
+/* introspection handlers */
+static Bool
+dbusHandleRootIntrospectMessage (DBusConnection *connection,
+ DBusMessage *message)
+{
+ char **plugins, **pluginName;
+ int nPlugins;
+
+ xmlTextWriterPtr writer;
+ xmlBufferPtr buf;
+
+ buf = xmlBufferCreate ();
+ writer = xmlNewTextWriterMemory (buf, 0);
+
+ dbusIntrospectStartRoot (writer);
+ dbusIntrospectStartInterface (writer);
+
+ dbusIntrospectAddMethod (writer, COMPIZ_DBUS_GET_PLUGINS_MEMBER_NAME, 1,
+ "as", "out");
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_PLUGIN_METADATA_MEMBER_NAME, 7,
+ "s", "in", "s", "out", "s", "out", "s", "out",
+ "b", "out", "as", "out", "as", "out");
+ dbusIntrospectAddSignal (writer,
+ COMPIZ_DBUS_PLUGINS_CHANGED_SIGNAL_NAME, 0);
+
+ dbusIntrospectEndInterface (writer);
+
+ plugins = availablePlugins (&nPlugins);
+ if (plugins)
+ {
+ pluginName = plugins;
+
+ while (nPlugins--)
+ {
+ dbusIntrospectAddNode (writer, *pluginName);
+ free (*pluginName);
+ pluginName++;
+ }
+
+ free (plugins);
+ }
+ else
+ {
+ xmlFreeTextWriter (writer);
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ dbusIntrospectEndRoot (writer);
+
+ xmlFreeTextWriter (writer);
+
+ DBusMessage *reply = dbus_message_new_method_return (message);
+ if (!reply)
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ DBusMessageIter args;
+ dbus_message_iter_init_append (reply, &args);
+
+ if (!dbus_message_iter_append_basic (&args, DBUS_TYPE_STRING,
+ &buf->content))
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ xmlBufferFree (buf);
+
+ if (!dbus_connection_send (connection, reply, NULL))
+ {
+ return FALSE;
+ }
+
+ dbus_connection_flush (connection);
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+/* MULTIDPYERROR: only works with one or less displays present */
+static Bool
+dbusHandlePluginIntrospectMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompDisplay *d;
+ CompScreen *s;
+ char screenName[256];
+
+ xmlTextWriterPtr writer;
+ xmlBufferPtr buf;
+
+ buf = xmlBufferCreate ();
+ writer = xmlNewTextWriterMemory (buf, 0);
+
+ dbusIntrospectStartRoot (writer);
+
+ for (d = core.displays; d; d = d->next)
+ {
+ dbusIntrospectAddNode (writer, "allscreens");
+
+ for (s = d->screens; s; s = s->next)
+ {
+ sprintf (screenName, "screen%d", s->screenNum);
+ dbusIntrospectAddNode (writer, screenName);
+ }
+ }
+
+ dbusIntrospectEndRoot (writer);
+
+ xmlFreeTextWriter (writer);
+
+ DBusMessage *reply = dbus_message_new_method_return (message);
+ if (!reply)
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ DBusMessageIter args;
+ dbus_message_iter_init_append (reply, &args);
+
+ if (!dbus_message_iter_append_basic (&args, DBUS_TYPE_STRING,
+ &buf->content))
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ xmlBufferFree (buf);
+
+ if (!dbus_connection_send (connection, reply, NULL))
+ {
+ return FALSE;
+ }
+
+ dbus_connection_flush (connection);
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+static Bool
+dbusHandleScreenIntrospectMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompOption *option = NULL;
+ int nOptions;
+
+ xmlTextWriterPtr writer;
+ xmlBufferPtr buf;
+
+ buf = xmlBufferCreate ();
+ writer = xmlNewTextWriterMemory (buf, 0);
+
+ dbusIntrospectStartRoot (writer);
+ dbusIntrospectStartInterface (writer);
+
+ dbusIntrospectAddMethod (writer, COMPIZ_DBUS_LIST_MEMBER_NAME, 1,
+ "as", "out");
+
+ dbusIntrospectEndInterface (writer);
+
+ option = dbusGetOptionsFromPath (path, NULL, NULL, &nOptions);
+ if (option)
+ {
+ while (nOptions--)
+ {
+ dbusIntrospectAddNode (writer, option->name);
+ option++;
+ }
+ }
+
+ dbusIntrospectEndRoot (writer);
+
+ xmlFreeTextWriter (writer);
+
+ DBusMessage *reply = dbus_message_new_method_return (message);
+ if (!reply)
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ DBusMessageIter args;
+ dbus_message_iter_init_append (reply, &args);
+
+ if (!dbus_message_iter_append_basic (&args, DBUS_TYPE_STRING,
+ &buf->content))
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ xmlBufferFree (buf);
+
+ if (!dbus_connection_send (connection, reply, NULL))
+ {
+ return FALSE;
+ }
+
+ dbus_connection_flush (connection);
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+static Bool
+dbusHandleOptionIntrospectMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompOption *option;
+ int nOptions;
+ CompOptionType restrictionType;
+ Bool metadataHandled;
+ char type[3];
+ xmlTextWriterPtr writer;
+ xmlBufferPtr buf;
+ Bool isList = FALSE;
+
+ buf = xmlBufferCreate ();
+ writer = xmlNewTextWriterMemory (buf, 0);
+
+ dbusIntrospectStartRoot (writer);
+ dbusIntrospectStartInterface (writer);
+
+ option = dbusGetOptionsFromPath (path, NULL, NULL, &nOptions);
+ if (!option)
+ {
+ xmlFreeTextWriter (writer);
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ while (nOptions--)
+ {
+ if (strcmp (option->name, path[2]) == 0)
+ {
+ restrictionType = option->type;
+ if (restrictionType == CompOptionTypeList)
+ {
+ restrictionType = option->value.list.type;
+ isList = TRUE;
+ }
+
+ metadataHandled = FALSE;
+ switch (restrictionType)
+ {
+ case CompOptionTypeInt:
+ if (isList)
+ strcpy (type, "ai");
+ else
+ strcpy (type, "i");
+
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_METADATA_MEMBER_NAME,
+ 6, "s", "out", "s", "out",
+ "b", "out", "s", "out",
+ "i", "out", "i", "out");
+ metadataHandled = TRUE;
+ break;
+ case CompOptionTypeFloat:
+ if (isList)
+ strcpy (type, "ad");
+ else
+ strcpy (type, "d");
+
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_METADATA_MEMBER_NAME,
+ 7, "s", "out", "s", "out",
+ "b", "out", "s", "out",
+ "d", "out", "d", "out",
+ "d", "out");
+ metadataHandled = TRUE;
+ break;
+ case CompOptionTypeString:
+ if (isList)
+ strcpy (type, "as");
+ else
+ strcpy (type, "s");
+
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_METADATA_MEMBER_NAME,
+ 5, "s", "out", "s", "out",
+ "b", "out", "s", "out",
+ "as", "out");
+ metadataHandled = TRUE;
+ break;
+ case CompOptionTypeBool:
+ case CompOptionTypeBell:
+ if (isList)
+ strcpy (type, "ab");
+ else
+ strcpy (type, "b");
+
+ break;
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeMatch:
+ if (isList)
+ strcpy (type, "as");
+ else
+ strcpy (type, "s");
+ break;
+ default:
+ continue;
+ }
+
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_MEMBER_NAME, 1,
+ type, "out");
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_SET_MEMBER_NAME, 1,
+ type, "in");
+ dbusIntrospectAddSignal (writer,
+ COMPIZ_DBUS_CHANGED_SIGNAL_NAME, 1,
+ type, "out");
+
+ if (!metadataHandled)
+ dbusIntrospectAddMethod (writer,
+ COMPIZ_DBUS_GET_METADATA_MEMBER_NAME,
+ 4, "s", "out", "s", "out",
+ "b", "out", "s", "out");
+ break;
+ }
+
+ option++;
+ }
+
+ dbusIntrospectEndInterface (writer);
+ dbusIntrospectEndRoot (writer);
+
+ xmlFreeTextWriter (writer);
+
+ DBusMessage *reply = dbus_message_new_method_return (message);
+ if (!reply)
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ DBusMessageIter args;
+ dbus_message_iter_init_append (reply, &args);
+
+ if (!dbus_message_iter_append_basic (&args, DBUS_TYPE_STRING,
+ &buf->content))
+ {
+ xmlBufferFree (buf);
+ return FALSE;
+ }
+
+ xmlBufferFree (buf);
+
+ if (!dbus_connection_send (connection, reply, NULL))
+ {
+ return FALSE;
+ }
+
+ dbus_connection_flush (connection);
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+
+/*
+ * Activate can be used to trigger any existing action. Arguments
+ * should be a pair of { string, bool|int32|double|string }.
+ *
+ * Example (rotate to face 1):
+ *
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/rotate/allscreens/rotate_to \
+ * org.freedesktop.compiz.activate \
+ * string:'root' \
+ * int32:`xwininfo -root | grep id: | awk '{ print $4 }'` \
+ * string:'face' int32:1
+ *
+ *
+ * You can also call the terminate function
+ *
+ * Example unfold and refold cube:
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/cube/allscreens/unfold \
+ * org.freedesktop.compiz.activate \
+ * string:'root' \
+ * int32:`xwininfo -root | grep id: | awk '{ print $4 }'`
+ *
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/cube/allscreens/unfold \
+ * org.freedesktop.compiz.deactivate \
+ * string:'root' \
+ * int32:`xwininfo -root | grep id: | awk '{ print $4 }'`
+ *
+ */
+static Bool
+dbusHandleActionMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path,
+ Bool activate)
+{
+ CompObject *object;
+ CompOption *option;
+ int nOption;
+
+ option = dbusGetOptionsFromPath (path, &object, NULL, &nOption);
+ if (!option)
+ return FALSE;
+
+ while (nOption--)
+ {
+ if (strcmp (option->name, path[2]) == 0)
+ {
+ CompOption *argument = NULL;
+ int i, nArgument = 0;
+ DBusMessageIter iter;
+
+ if (!isActionOption (option))
+ return FALSE;
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ if (activate)
+ {
+ if (!option->value.action.initiate)
+ return FALSE;
+ }
+ else
+ {
+ if (!option->value.action.terminate)
+ return FALSE;
+ }
+
+ if (dbus_message_iter_init (message, &iter))
+ {
+ CompOptionValue value;
+ CompOptionType type = 0;
+ char *name;
+ Bool hasValue;
+
+ do
+ {
+ name = NULL;
+ hasValue = FALSE;
+
+ while (!name)
+ {
+ switch (dbus_message_iter_get_arg_type (&iter)) {
+ case DBUS_TYPE_STRING:
+ dbus_message_iter_get_basic (&iter, &name);
+ default:
+ break;
+ }
+
+ if (!dbus_message_iter_next (&iter))
+ break;
+ }
+
+ while (!hasValue)
+ {
+ double tmp;
+
+ switch (dbus_message_iter_get_arg_type (&iter)) {
+ case DBUS_TYPE_BOOLEAN:
+ hasValue = TRUE;
+ type = CompOptionTypeBool;
+
+ dbus_message_iter_get_basic (&iter, &value.b);
+ break;
+ case DBUS_TYPE_INT32:
+ hasValue = TRUE;
+ type = CompOptionTypeInt;
+
+ dbus_message_iter_get_basic (&iter, &value.i);
+ break;
+ case DBUS_TYPE_DOUBLE:
+ hasValue = TRUE;
+ type = CompOptionTypeFloat;
+
+ dbus_message_iter_get_basic (&iter, &tmp);
+
+ value.f = tmp;
+ break;
+ case DBUS_TYPE_STRING:
+ hasValue = TRUE;
+
+ /* XXX: use match option type if name is "match" */
+ if (name && strcmp (name, "match") == 0)
+ {
+ char *s;
+
+ type = CompOptionTypeMatch;
+
+ dbus_message_iter_get_basic (&iter, &s);
+
+ matchInit (&value.match);
+ matchAddFromString (&value.match, s);
+ }
+ else
+ {
+ type = CompOptionTypeString;
+
+ dbus_message_iter_get_basic (&iter, &value.s);
+ }
+ default:
+ break;
+ }
+
+ if (!dbus_message_iter_next (&iter))
+ break;
+ }
+
+ if (name && hasValue)
+ {
+ CompOption *a;
+
+ a = realloc (argument,
+ sizeof (CompOption) * (nArgument + 1));
+ if (a)
+ {
+ argument = a;
+
+ argument[nArgument].name = name;
+ argument[nArgument].type = type;
+ argument[nArgument].value = value;
+
+ nArgument++;
+ }
+ }
+ } while (dbus_message_iter_has_next (&iter));
+ }
+
+ if (activate)
+ {
+ (*option->value.action.initiate) (GET_CORE_DISPLAY (object),
+ &option->value.action,
+ 0,
+ argument, nArgument);
+ }
+ else
+ {
+ (*option->value.action.terminate) (GET_CORE_DISPLAY (object),
+ &option->value.action,
+ 0,
+ argument, nArgument);
+ }
+
+ for (i = 0; i < nArgument; i++)
+ if (argument[i].type == CompOptionTypeMatch)
+ matchFini (&argument[i].value.match);
+
+ if (argument)
+ free (argument);
+
+ if (!dbus_message_get_no_reply (message))
+ {
+ DBusMessage *reply;
+
+ reply = dbus_message_new_method_return (message);
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+ }
+
+ return TRUE;
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+dbusTryGetValueWithType (DBusMessageIter *iter,
+ int type,
+ void *value)
+{
+ if (dbus_message_iter_get_arg_type (iter) == type)
+ {
+ dbus_message_iter_get_basic (iter, value);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+dbusGetOptionValue (CompObject *object,
+ DBusMessageIter *iter,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ double d;
+ char *s;
+
+ switch (type) {
+ case CompOptionTypeBool:
+ return dbusTryGetValueWithType (iter,
+ DBUS_TYPE_BOOLEAN,
+ &value->b);
+ break;
+ case CompOptionTypeInt:
+ return dbusTryGetValueWithType (iter,
+ DBUS_TYPE_INT32,
+ &value->i);
+ break;
+ case CompOptionTypeFloat:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_DOUBLE,
+ &d))
+ {
+ value->f = d;
+ return TRUE;
+ }
+ break;
+ case CompOptionTypeString:
+ return dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &value->s);
+ break;
+ case CompOptionTypeColor:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &s))
+ {
+ if (stringToColor (s, value->c))
+ return TRUE;
+ }
+ break;
+ case CompOptionTypeKey:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &s))
+ {
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToKeyAction (GET_CORE_DISPLAY (object), s, &value->action);
+ return TRUE;
+ }
+ break;
+ case CompOptionTypeButton:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &s))
+ {
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToButtonAction (GET_CORE_DISPLAY (object),
+ s, &value->action);
+ return TRUE;
+ }
+ break;
+ case CompOptionTypeEdge:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &s))
+ {
+ value->action.edgeMask = stringToEdgeMask (s);
+ return TRUE;
+ }
+ break;
+ case CompOptionTypeBell:
+ return dbusTryGetValueWithType (iter,
+ DBUS_TYPE_BOOLEAN,
+ &value->action.bell);
+ break;
+ case CompOptionTypeMatch:
+ if (dbusTryGetValueWithType (iter,
+ DBUS_TYPE_STRING,
+ &s))
+ {
+ matchAddFromString (&value->match, s);
+ return TRUE;
+ }
+
+ default:
+ break;
+ }
+
+ return FALSE;
+}
+
+/*
+ * 'Set' can be used to change any existing option. Argument
+ * should be the new value for the option.
+ *
+ * Example (will set command0 option to firefox):
+ *
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens/command0 \
+ * org.freedesktop.compiz.set \
+ * string:'firefox'
+ *
+ * List and action options can be changed using more than one
+ * argument.
+ *
+ * Example (will set active_plugins option to
+ * [dbus,decoration,place]):
+ *
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens/active_plugins \
+ * org.freedesktop.compiz.set \
+ * array:string:'dbus','decoration','place'
+ *
+ * Example (will set run_command0 option to trigger on key
+ * binding <Control><Alt>Return and not trigger on any button
+ * bindings, screen edges or bell notifications):
+ *
+ * dbus-send --type=method_call --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens/run_command0 \
+ * org.freedesktop.compiz.set \
+ * string:'<Control><Alt>Return' \
+ * string:'Disabled' \
+ * boolean:'false' \
+ * string:'' \
+ * int32:'0'
+ */
+static Bool
+dbusHandleSetOptionMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompObject *object;
+ CompOption *option;
+ int nOption;
+
+ option = dbusGetOptionsFromPath (path, &object, NULL, &nOption);
+ if (!option)
+ return FALSE;
+
+ while (nOption--)
+ {
+ if (strcmp (option->name, path[2]) == 0)
+ {
+ DBusMessageIter iter, aiter;
+ CompOptionValue value, tmpValue;
+ Bool status = FALSE;
+
+ memset (&value, 0, sizeof (value));
+
+ if (option->type == CompOptionTypeList)
+ {
+ if (dbus_message_iter_init (message, &iter) &&
+ dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY)
+ {
+ dbus_message_iter_recurse (&iter, &aiter);
+
+ do
+ {
+ memset (&tmpValue, 0, sizeof (tmpValue));
+
+ if (dbusGetOptionValue (object,
+ &aiter,
+ option->value.list.type,
+ &tmpValue))
+ {
+ CompOptionValue *v;
+
+ v = realloc (value.list.value,
+ sizeof (CompOptionValue) *
+ (value.list.nValue + 1));
+ if (v)
+ {
+ v[value.list.nValue++] = tmpValue;
+ value.list.value = v;
+ }
+ }
+ } while (dbus_message_iter_next (&aiter));
+
+ status = TRUE;
+ }
+ }
+ else if (dbus_message_iter_init (message, &iter))
+ {
+ status = dbusGetOptionValue (object, &iter, option->type,
+ &value);
+ }
+
+ if (status)
+ {
+ (*core.setOptionForPlugin) (object,
+ path[0],
+ option->name,
+ &value);
+
+ if (!dbus_message_get_no_reply (message))
+ {
+ DBusMessage *reply;
+
+ reply = dbus_message_new_method_return (message);
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+ }
+
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static void
+dbusAppendSimpleOptionValue (CompObject *object,
+ DBusMessage *message,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ double d;
+ char *s;
+
+ switch (type) {
+ case CompOptionTypeBool:
+ dbus_message_append_args (message,
+ DBUS_TYPE_BOOLEAN, &value->b,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeInt:
+ dbus_message_append_args (message,
+ DBUS_TYPE_INT32, &value->i,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeFloat:
+ d = value->f;
+
+ dbus_message_append_args (message,
+ DBUS_TYPE_DOUBLE, &d,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeString:
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &value->s,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeColor:
+ s = colorToString (value->c);
+ if (s)
+ {
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID);
+ free (s);
+ }
+ break;
+ case CompOptionTypeKey:
+ s = keyActionToString ((CompDisplay *) object, &value->action);
+ if (s)
+ {
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID);
+ free (s);
+ }
+ break;
+ case CompOptionTypeButton:
+ s = buttonActionToString ((CompDisplay *) object, &value->action);
+ if (s)
+ {
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID);
+ free (s);
+ }
+ break;
+ case CompOptionTypeEdge:
+ s = edgeMaskToString (value->action.edgeMask);
+ if (s)
+ {
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID);
+ free (s);
+ }
+ break;
+ case CompOptionTypeBell:
+ dbus_message_append_args (message,
+ DBUS_TYPE_BOOLEAN, &value->action.bell,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeMatch:
+ s = matchToString (&value->match);
+ if (s)
+ {
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID);
+ free (s);
+ }
+ default:
+ break;
+ }
+}
+
+static void
+dbusAppendListOptionValue (CompObject *object,
+ DBusMessage *message,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ DBusMessageIter iter;
+ DBusMessageIter listIter;
+ char sig[2];
+ char *s;
+ int i;
+
+ switch (value->list.type) {
+ case CompOptionTypeInt:
+ sig[0] = DBUS_TYPE_INT32;
+ break;
+ case CompOptionTypeFloat:
+ sig[0] = DBUS_TYPE_DOUBLE;
+ break;
+ case CompOptionTypeBool:
+ case CompOptionTypeBell:
+ sig[0] = DBUS_TYPE_BOOLEAN;
+ break;
+ default:
+ sig[0] = DBUS_TYPE_STRING;
+ break;
+ }
+ sig[1] = '\0';
+
+ dbus_message_iter_init_append (message, &iter);
+
+ if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY,
+ sig, &listIter))
+ return;
+
+ for (i = 0; i < value->list.nValue; i++)
+ {
+ switch (value->list.type) {
+ case CompOptionTypeInt:
+ dbus_message_iter_append_basic (&listIter,
+ sig[0],
+ &value->list.value[i].i);
+ break;
+ case CompOptionTypeFloat:
+ dbus_message_iter_append_basic (&listIter,
+ sig[0],
+ &value->list.value[i].f);
+ break;
+ case CompOptionTypeBool:
+ dbus_message_iter_append_basic (&listIter,
+ sig[0],
+ &value->list.value[i].b);
+ break;
+ case CompOptionTypeString:
+ dbus_message_iter_append_basic (&listIter,
+ sig[0],
+ &value->list.value[i].s);
+ break;
+ case CompOptionTypeKey:
+ s = keyActionToString ((CompDisplay *) object,
+ &value->list.value[i].action);
+ if (s)
+ {
+ dbus_message_iter_append_basic (&listIter, sig[0], &s);
+ free (s);
+ }
+ break;
+ case CompOptionTypeButton:
+ s = buttonActionToString ((CompDisplay *) object,
+ &value->list.value[i].action);
+ if (s)
+ {
+ dbus_message_iter_append_basic (&listIter, sig[0], &s);
+ free (s);
+ }
+ break;
+ case CompOptionTypeEdge:
+ s = edgeMaskToString (value->list.value[i].action.edgeMask);
+ if (s)
+ {
+ dbus_message_iter_append_basic (&listIter, sig[0], &s);
+ free (s);
+ }
+ break;
+ case CompOptionTypeBell:
+ dbus_message_iter_append_basic (&listIter,
+ sig[0],
+ &value->list.value[i].action.bell);
+ break;
+ case CompOptionTypeMatch:
+ s = matchToString (&value->list.value[i].match);
+ if (s)
+ {
+ dbus_message_iter_append_basic (&listIter, sig[0], &s);
+ free (s);
+ }
+ break;
+ case CompOptionTypeColor:
+ s = colorToString (value->list.value[i].c);
+ if (s)
+ {
+ dbus_message_iter_append_basic (&listIter, sig[0], &s);
+ free (s);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ dbus_message_iter_close_container (&iter, &listIter);
+}
+
+static void
+dbusAppendOptionValue (CompObject *object,
+ DBusMessage *message,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ if (type == CompOptionTypeList)
+ {
+ dbusAppendListOptionValue (object, message, type, value);
+ }
+ else
+ {
+ dbusAppendSimpleOptionValue (object, message, type, value);
+ }
+}
+
+/*
+ * 'Get' can be used to retrieve the value of any existing option.
+ *
+ * Example (will retrieve the current value of command0 option):
+ *
+ * dbus-send --print-reply --type=method_call \
+ * --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens/command0 \
+ * org.freedesktop.compiz.get
+ */
+static Bool
+dbusHandleGetOptionMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompObject *object;
+ CompOption *option;
+ int nOption = 0;
+ DBusMessage *reply = NULL;
+
+ option = dbusGetOptionsFromPath (path, &object, NULL, &nOption);
+
+ while (nOption--)
+ {
+ if (strcmp (option->name, path[2]) == 0)
+ {
+ reply = dbus_message_new_method_return (message);
+ dbusAppendOptionValue (object, reply, option->type,
+ &option->value);
+ break;
+ }
+
+ option++;
+ }
+
+ if (!reply)
+ reply = dbus_message_new_error (message,
+ DBUS_ERROR_FAILED,
+ "No such option");
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+/*
+ * 'List' can be used to retrieve a list of available options.
+ *
+ * Example:
+ *
+ * dbus-send --print-reply --type=method_call \
+ * --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens \
+ * org.freedesktop.compiz.list
+ */
+static Bool
+dbusHandleListMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompObject *object;
+ CompOption *option;
+ int nOption = 0;
+ DBusMessage *reply;
+
+ option = dbusGetOptionsFromPath (path, &object, NULL, &nOption);
+
+ reply = dbus_message_new_method_return (message);
+
+ while (nOption--)
+ {
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &option->name,
+ DBUS_TYPE_INVALID);
+ option++;
+ }
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+/*
+ * 'GetMetadata' can be used to retrieve metadata for an option.
+ *
+ * Example:
+ *
+ * dbus-send --print-reply --type=method_call \
+ * --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz/core/allscreens/run_command0 \
+ * org.freedesktop.compiz.getMetadata
+ */
+static Bool
+dbusHandleGetMetadataMessage (DBusConnection *connection,
+ DBusMessage *message,
+ char **path)
+{
+ CompObject *object;
+ CompOption *option;
+ int nOption = 0;
+ DBusMessage *reply = NULL;
+ CompMetadata *m;
+
+ option = dbusGetOptionsFromPath (path, &object, &m, &nOption);
+
+ while (nOption--)
+ {
+ if (strcmp (option->name, path[2]) == 0)
+ {
+ CompOptionType restrictionType = option->type;
+ const char *type;
+ char *shortDesc = NULL;
+ char *longDesc = NULL;
+ const char *blankStr = "";
+
+ reply = dbus_message_new_method_return (message);
+
+ type = optionTypeToString (option->type);
+
+ if (m)
+ {
+ if (object->type == COMP_OBJECT_TYPE_SCREEN)
+ {
+ shortDesc = compGetShortScreenOptionDescription (m, option);
+ longDesc = compGetLongScreenOptionDescription (m, option);
+ }
+ else
+ {
+ shortDesc =
+ compGetShortDisplayOptionDescription (m, option);
+ longDesc = compGetLongDisplayOptionDescription (m, option);
+ }
+ }
+
+ if (shortDesc)
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &shortDesc,
+ DBUS_TYPE_INVALID);
+ else
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &blankStr,
+ DBUS_TYPE_INVALID);
+
+ if (longDesc)
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &longDesc,
+ DBUS_TYPE_INVALID);
+ else
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &blankStr,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &type,
+ DBUS_TYPE_INVALID);
+
+ if (shortDesc)
+ free (shortDesc);
+ if (longDesc)
+ free (longDesc);
+
+ if (restrictionType == CompOptionTypeList)
+ {
+ type = optionTypeToString (option->value.list.type);
+ restrictionType = option->value.list.type;
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &type,
+ DBUS_TYPE_INVALID);
+ }
+
+ switch (restrictionType) {
+ case CompOptionTypeInt:
+ dbus_message_append_args (reply,
+ DBUS_TYPE_INT32, &option->rest.i.min,
+ DBUS_TYPE_INT32, &option->rest.i.max,
+ DBUS_TYPE_INVALID);
+ break;
+ case CompOptionTypeFloat: {
+ double min, max, precision;
+
+ min = option->rest.f.min;
+ max = option->rest.f.max;
+ precision = option->rest.f.precision;
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_DOUBLE, &min,
+ DBUS_TYPE_DOUBLE, &max,
+ DBUS_TYPE_DOUBLE, &precision,
+ DBUS_TYPE_INVALID);
+ } break;
+ default:
+ break;
+ }
+ break;
+ }
+
+ option++;
+ }
+
+ if (!reply)
+ reply = dbus_message_new_error (message,
+ DBUS_ERROR_FAILED,
+ "No such option");
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+/*
+ * 'GetPlugins' can be used to retrieve a list of available plugins. There's
+ * no guarantee that a plugin in this list can actually be loaded.
+ *
+ * Example:
+ *
+ * dbus-send --print-reply --type=method_call \
+ * --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz \
+ * org.freedesktop.compiz.getPlugins
+ */
+static Bool
+dbusHandleGetPluginsMessage (DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ char **plugins, **p;
+ int n;
+
+ reply = dbus_message_new_method_return (message);
+
+ plugins = availablePlugins (&n);
+ if (plugins)
+ {
+ p = plugins;
+
+ while (n--)
+ {
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, p,
+ DBUS_TYPE_INVALID);
+ free (*p);
+
+ p++;
+ }
+
+ free (plugins);
+ }
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+/*
+ * 'GetPluginMetadata' can be used to retrieve metadata for a plugin.
+ *
+ * Example:
+ *
+ * dbus-send --print-reply --type=method_call \
+ * --dest=org.freedesktop.compiz \
+ * /org/freedesktop/compiz \
+ * org.freedesktop.compiz.getPluginMetadata \
+ * string:'png'
+ */
+static Bool
+dbusHandleGetPluginMetadataMessage (DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ DBusMessageIter iter;
+ char *name;
+ CompPlugin *p, *loadedPlugin = NULL;
+
+ if (!dbus_message_iter_init (message, &iter))
+ return FALSE;
+
+ if (!dbusTryGetValueWithType (&iter,
+ DBUS_TYPE_STRING,
+ &name))
+ return FALSE;
+
+ p = findActivePlugin (name);
+ if (!p)
+ p = loadedPlugin = loadPlugin (name);
+
+ if (p)
+ {
+ Bool initializedPlugin = TRUE;
+ char *shortDesc = NULL;
+ char *longDesc = NULL;
+ const char *blankStr = "";
+
+ reply = dbus_message_new_method_return (message);
+
+ if (loadedPlugin)
+ {
+ if (!(*p->vTable->init) (p))
+ initializedPlugin = FALSE;
+ }
+
+ if (initializedPlugin && p->vTable->getMetadata)
+ {
+ CompMetadata *m;
+
+ m = (*p->vTable->getMetadata) (p);
+ if (m)
+ {
+ shortDesc = compGetShortPluginDescription (m);
+ longDesc = compGetLongPluginDescription (m);
+ }
+ }
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &p->vTable->name,
+ DBUS_TYPE_INVALID);
+
+ if (shortDesc)
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &shortDesc,
+ DBUS_TYPE_INVALID);
+ else
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &blankStr,
+ DBUS_TYPE_INVALID);
+
+ if (longDesc)
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &longDesc,
+ DBUS_TYPE_INVALID);
+ else
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &blankStr,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_BOOLEAN, &initializedPlugin,
+ DBUS_TYPE_INVALID);
+
+ if (shortDesc)
+ free (shortDesc);
+ if (longDesc)
+ free (longDesc);
+
+ if (loadedPlugin && initializedPlugin)
+ (*p->vTable->fini) (p);
+ }
+ else
+ {
+ char *str;
+
+ str = malloc (strlen (name) + 256);
+ if (!str)
+ return FALSE;
+
+ sprintf (str, "Plugin '%s' could not be loaded", name);
+
+ reply = dbus_message_new_error (message,
+ DBUS_ERROR_FAILED,
+ str);
+
+ free (str);
+ }
+
+ if (loadedPlugin)
+ unloadPlugin (loadedPlugin);
+
+ dbus_connection_send (connection, reply, NULL);
+ dbus_connection_flush (connection);
+
+ dbus_message_unref (reply);
+
+ return TRUE;
+}
+
+static DBusHandlerResult
+dbusHandleMessage (DBusConnection *connection,
+ DBusMessage *message,
+ void *userData)
+{
+ Bool status = FALSE;
+ char **path;
+
+ if (!dbus_message_get_path_decomposed (message, &path))
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ if (!path[0] || !path[1] || !path[2])
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+
+ /* root messages */
+ if (!path[3])
+ {
+ if (dbus_message_is_method_call (message,
+ DBUS_INTERFACE_INTROSPECTABLE,
+ "Introspect"))
+ {
+ if (dbusHandleRootIntrospectMessage (connection, message))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_GET_PLUGIN_METADATA_MEMBER_NAME))
+ {
+ if (dbusHandleGetPluginMetadataMessage (connection, message))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_GET_PLUGINS_MEMBER_NAME))
+ {
+ if (dbusHandleGetPluginsMessage (connection, message))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ /* plugin message */
+ else if (!path[4])
+ {
+ if (dbus_message_is_method_call (message,
+ DBUS_INTERFACE_INTROSPECTABLE,
+ "Introspect"))
+ {
+ if (dbusHandlePluginIntrospectMessage (connection, message,
+ &path[3]))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ /* screen message */
+ else if (!path[5])
+ {
+ if (dbus_message_is_method_call (message,
+ DBUS_INTERFACE_INTROSPECTABLE,
+ "Introspect"))
+ {
+ if (dbusHandleScreenIntrospectMessage (connection, message,
+ &path[3]))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_LIST_MEMBER_NAME))
+ {
+ if (dbusHandleListMessage (connection, message, &path[3]))
+ {
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ }
+
+ dbus_free_string_array (path);
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ /* option message */
+ if (dbus_message_is_method_call (message, DBUS_INTERFACE_INTROSPECTABLE,
+ "Introspect"))
+ {
+ status = dbusHandleOptionIntrospectMessage (connection, message,
+ &path[3]);
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_ACTIVATE_MEMBER_NAME))
+ {
+ status = dbusHandleActionMessage (connection, message, &path[3], TRUE);
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_DEACTIVATE_MEMBER_NAME))
+ {
+ status = dbusHandleActionMessage (connection, message, &path[3],
+ FALSE);
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_SET_MEMBER_NAME))
+ {
+ status = dbusHandleSetOptionMessage (connection, message, &path[3]);
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_GET_MEMBER_NAME))
+ {
+ status = dbusHandleGetOptionMessage (connection, message, &path[3]);
+ }
+ else if (dbus_message_is_method_call (message, COMPIZ_DBUS_INTERFACE,
+ COMPIZ_DBUS_GET_METADATA_MEMBER_NAME))
+ {
+ status = dbusHandleGetMetadataMessage (connection, message, &path[3]);
+ }
+
+ dbus_free_string_array (path);
+
+ if (status)
+ return DBUS_HANDLER_RESULT_HANDLED;
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+static Bool
+dbusProcessMessages (void *data)
+{
+ DBusDispatchStatus status;
+
+ DBUS_CORE (&core);
+
+ do
+ {
+ dbus_connection_read_write_dispatch (dc->connection, 0);
+ status = dbus_connection_get_dispatch_status (dc->connection);
+ }
+ while (status == DBUS_DISPATCH_DATA_REMAINS);
+
+ return TRUE;
+}
+
+static void
+dbusSendChangeSignalForOption (CompObject *object,
+ CompOption *o,
+ const char *plugin)
+{
+ DBusMessage *signal;
+ char *name, path[256];
+
+ DBUS_CORE (&core);
+
+ if (!o)
+ return;
+
+ name = compObjectName (object);
+ if (name)
+ {
+ sprintf (path, "%s/%s/%s%s/%s", COMPIZ_DBUS_ROOT_PATH,
+ plugin, compObjectTypeName (object->type), name, o->name);
+
+ free (name);
+ }
+ else
+ sprintf (path, "%s/%s/%s/%s", COMPIZ_DBUS_ROOT_PATH,
+ plugin, compObjectTypeName (object->type), o->name);
+
+ signal = dbus_message_new_signal (path,
+ COMPIZ_DBUS_SERVICE_NAME,
+ COMPIZ_DBUS_CHANGED_SIGNAL_NAME);
+
+ dbusAppendOptionValue (object, signal, o->type, &o->value);
+
+ dbus_connection_send (dc->connection, signal, NULL);
+ dbus_connection_flush (dc->connection);
+
+ dbus_message_unref (signal);
+}
+
+static Bool
+dbusGetPathDecomposed (char *data,
+ char ***path,
+ int *count)
+{
+ char **retval;
+ char *temp;
+ char *token;
+ int nComponents;
+ int i;
+
+ nComponents = 0;
+ if (strlen (data) > 1)
+ {
+ i = 0;
+ while (i < strlen (data))
+ {
+ if (data[i] == '/')
+ nComponents += 1;
+ ++i;
+ }
+ }
+
+ retval = malloc (sizeof (char*) * (nComponents + 1));
+
+ if (nComponents == 0)
+ {
+ retval[0] = malloc (sizeof (char));
+ retval[0][0] = '\0';
+ *path = retval;
+ *count = 1;
+
+ return TRUE;
+ }
+
+ temp = strdup (data);
+
+ i = 0;
+ token = strtok (temp, "/");
+ while (token != NULL)
+ {
+ retval[i] = strdup (token);
+ token = strtok (NULL, "/");
+ i++;
+ }
+ retval[i] = malloc (sizeof (char));
+ retval[i][0] = '\0';
+
+ free (temp);
+
+ *path = retval;
+ *count = i + 1;
+
+ return TRUE;
+}
+
+static void
+dbusFreePathDecomposed (char **path,
+ int count)
+{
+ int i;
+
+ for (i = 0; i < count; i++)
+ free (path[i]);
+
+ free (path);
+}
+
+/* dbus registration */
+
+static Bool
+dbusRegisterOptions (DBusConnection *connection,
+ char *screenPath)
+{
+ CompOption *option = NULL;
+ int nOptions;
+ char objectPath[256];
+ char **path;
+ int count;
+
+ dbusGetPathDecomposed (screenPath, &path, &count);
+
+ option = dbusGetOptionsFromPath (&path[3], NULL, NULL, &nOptions);
+
+ if (!option) {
+ dbusFreePathDecomposed (path, count);
+ return FALSE;
+ }
+
+ while (nOptions--)
+ {
+ snprintf (objectPath, 256, "%s/%s", screenPath, option->name);
+
+ dbus_connection_register_object_path (connection, objectPath,
+ &dbusMessagesVTable, 0);
+ option++;
+ }
+
+ dbusFreePathDecomposed (path, count);
+
+ return TRUE;
+}
+
+static Bool
+dbusUnregisterOptions (DBusConnection *connection,
+ char *screenPath)
+{
+ CompOption *option = NULL;
+ int nOptions;
+ char objectPath[256];
+ char **path;
+ int count;
+
+ dbusGetPathDecomposed (screenPath, &path, &count);
+
+ option = dbusGetOptionsFromPath (&path[3], NULL, NULL, &nOptions);
+
+ dbusFreePathDecomposed (path, count);
+
+ if (!option)
+ return FALSE;
+
+ while (nOptions--)
+ {
+ snprintf (objectPath, 256, "%s/%s", screenPath, option->name);
+
+ dbus_connection_unregister_object_path (connection, objectPath);
+ option++;
+ }
+
+ return TRUE;
+}
+
+static void
+dbusRegisterPluginForDisplay (DBusConnection *connection,
+ CompDisplay *d,
+ char *pluginName)
+{
+ char objectPath[256];
+
+ /* register plugin root path */
+ snprintf (objectPath, 256, "%s/%s", COMPIZ_DBUS_ROOT_PATH, pluginName);
+ dbus_connection_register_object_path (connection, objectPath,
+ &dbusMessagesVTable, d);
+
+ /* register plugin/screen path */
+ snprintf (objectPath, 256, "%s/%s/%s", COMPIZ_DBUS_ROOT_PATH,
+ pluginName, "allscreens");
+ dbus_connection_register_object_path (connection, objectPath,
+ &dbusMessagesVTable, d);
+}
+
+static void
+dbusRegisterPluginForScreen (DBusConnection *connection,
+ CompScreen *s,
+ char *pluginName)
+{
+ char objectPath[256];
+
+ /* register plugin/screen path */
+ snprintf (objectPath, 256, "%s/%s/screen%d", COMPIZ_DBUS_ROOT_PATH,
+ pluginName, s->screenNum);
+ dbus_connection_register_object_path (connection, objectPath,
+ &dbusMessagesVTable, s->display);
+}
+
+static void
+dbusRegisterPluginsForDisplay (DBusConnection *connection,
+ CompDisplay *d)
+{
+ unsigned int i;
+ char path[256];
+
+ DBUS_DISPLAY (d);
+
+ for (i = 0; i < dd->nPlugins; i++)
+ {
+ snprintf (path, 256, "%s/%s/allscreens",
+ COMPIZ_DBUS_ROOT_PATH, dd->pluginList[i]);
+
+ dbusRegisterPluginForDisplay (connection, d, dd->pluginList[i]);
+ dbusRegisterOptions (connection, path);
+ }
+}
+
+static void
+dbusRegisterPluginsForScreen (DBusConnection *connection,
+ CompScreen *s)
+{
+ unsigned int i;
+ char path[256];
+
+ DBUS_DISPLAY (s->display);
+
+ for (i = 0; i < dd->nPlugins; i++)
+ {
+ snprintf (path, 256, "%s/%s/screen%d",
+ COMPIZ_DBUS_ROOT_PATH, dd->pluginList[i], s->screenNum);
+ dbusRegisterPluginForScreen (connection, s, dd->pluginList[i]);
+ dbusRegisterOptions (connection, path);
+ }
+}
+
+static void
+dbusUnregisterPluginForDisplay (DBusConnection *connection,
+ CompDisplay *d,
+ char *pluginName)
+{
+ char objectPath[256];
+
+ snprintf (objectPath, 256, "%s/%s/%s", COMPIZ_DBUS_ROOT_PATH,
+ pluginName, "allscreens");
+
+ dbusUnregisterOptions (connection, objectPath);
+ dbus_connection_unregister_object_path (connection, objectPath);
+
+ snprintf (objectPath, 256, "%s/%s", COMPIZ_DBUS_ROOT_PATH, pluginName);
+ dbus_connection_unregister_object_path (connection, objectPath);
+}
+
+static void
+dbusUnregisterPluginsForDisplay (DBusConnection *connection,
+ CompDisplay *d)
+{
+ unsigned int i;
+
+ DBUS_DISPLAY (d);
+
+ for (i = 0; i < dd->nPlugins; i++)
+ dbusUnregisterPluginForDisplay (connection, d, dd->pluginList[i]);
+}
+
+static void
+dbusUnregisterPluginForScreen (DBusConnection *connection,
+ CompScreen *s,
+ char *pluginName)
+{
+ char objectPath[256];
+
+ snprintf (objectPath, 256, "%s/%s/screen%d", COMPIZ_DBUS_ROOT_PATH,
+ pluginName, s->screenNum);
+
+ dbusUnregisterOptions (connection, objectPath);
+ dbus_connection_unregister_object_path (connection, objectPath);
+}
+
+static void
+dbusUnregisterPluginsForScreen (DBusConnection *connection,
+ CompScreen *s)
+{
+ unsigned int i;
+
+ DBUS_DISPLAY (s->display);
+
+ for (i = 0; i < dd->nPlugins; i++)
+ dbusUnregisterPluginForScreen (connection, s, dd->pluginList[i]);
+}
+
+static CompBool
+dbusInitPluginForDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ char objectPath[256];
+
+ DBUS_CORE (&core);
+
+ snprintf (objectPath, 256, "%s/%s/%s", COMPIZ_DBUS_ROOT_PATH,
+ p->vTable->name, "allscreens");
+ dbusRegisterOptions (dc->connection, objectPath);
+
+ return TRUE;
+}
+
+static Bool
+dbusInitPluginForScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ char objectPath[256];
+
+ DBUS_CORE (&core);
+
+ snprintf (objectPath, 256, "%s/%s/screen%d", COMPIZ_DBUS_ROOT_PATH,
+ p->vTable->name, s->screenNum);
+ dbusRegisterOptions (dc->connection, objectPath);
+
+ return TRUE;
+}
+
+static CompBool
+dbusInitPluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+ CompBool status;
+
+ DBUS_CORE (&core);
+
+ UNWRAP (dc, &core, initPluginForObject);
+ status = (*core.initPluginForObject) (p, o);
+ WRAP (dc, &core, initPluginForObject, dbusInitPluginForObject);
+
+ if (status && p->vTable->getObjectOptions)
+ {
+ static InitPluginForObjectProc dispTab[] = {
+ (InitPluginForObjectProc) 0, /* InitPluginForCore */
+ (InitPluginForObjectProc) dbusInitPluginForDisplay,
+ (InitPluginForObjectProc) dbusInitPluginForScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+ }
+
+ return status;
+}
+
+static CompBool
+dbusSetOptionForPlugin (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ Bool status;
+
+ DBUS_CORE (&core);
+
+ UNWRAP (dc, &core, setOptionForPlugin);
+ status = (*core.setOptionForPlugin) (object, plugin, name, value);
+ WRAP (dc, &core, setOptionForPlugin, dbusSetOptionForPlugin);
+
+ if (status)
+ {
+ CompPlugin *p;
+
+ p = findActivePlugin (plugin);
+ if (p && p->vTable->getObjectOptions)
+ {
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ dbusSendChangeSignalForOption (object,
+ compFindOption (option,
+ nOption,
+ name, 0),
+ p->vTable->name);
+
+ if (object->type == COMP_OBJECT_TYPE_DISPLAY &&
+ strcmp (p->vTable->name, "core") == 0 &&
+ strcmp (name, "active_plugins") == 0)
+ {
+ CompScreen *s;
+
+ CORE_DISPLAY (object);
+
+ dbusUnregisterPluginsForDisplay (dc->connection, d);
+ for (s = d->screens; s; s = s->next)
+ dbusUnregisterPluginsForScreen (dc->connection, s);
+
+ dbusUpdatePluginList (d);
+
+ dbusRegisterPluginsForDisplay (dc->connection, d);
+ for (s = d->screens; s; s = s->next)
+ dbusRegisterPluginsForScreen (dc->connection, s);
+ }
+ }
+ }
+
+ return status;
+}
+
+static void
+dbusSendPluginsChangedSignal (const char *name,
+ void *closure)
+{
+ DBusMessage *signal;
+
+ DBUS_CORE (&core);
+
+ signal = dbus_message_new_signal (COMPIZ_DBUS_ROOT_PATH,
+ COMPIZ_DBUS_SERVICE_NAME,
+ COMPIZ_DBUS_PLUGINS_CHANGED_SIGNAL_NAME);
+
+ dbus_connection_send (dc->connection, signal, NULL);
+ dbus_connection_flush (dc->connection);
+
+ dbus_message_unref (signal);
+}
+
+static Bool
+dbusInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ DbusCore *dc;
+ DBusError error;
+ dbus_bool_t status;
+ int fd, ret, mask;
+ char *home, *plugindir;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ dc = malloc (sizeof (DbusCore));
+ if (!dc)
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ free (dc);
+ return FALSE;
+ }
+
+ dbus_error_init (&error);
+
+ dc->connection = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (dbus_error_is_set (&error))
+ {
+ compLogMessage ("dbus", CompLogLevelError,
+ "dbus_bus_get error: %s", error.message);
+
+ dbus_error_free (&error);
+ free (dc);
+
+ return FALSE;
+ }
+
+ ret = dbus_bus_request_name (dc->connection,
+ COMPIZ_DBUS_SERVICE_NAME,
+ DBUS_NAME_FLAG_REPLACE_EXISTING |
+ DBUS_NAME_FLAG_ALLOW_REPLACEMENT,
+ &error);
+
+ if (dbus_error_is_set (&error))
+ {
+ compLogMessage ("dbus", CompLogLevelError,
+ "dbus_bus_request_name error: %s", error.message);
+
+ /* dbus_connection_unref (dc->connection); */
+ dbus_error_free (&error);
+ free (dc);
+
+ return FALSE;
+ }
+
+ dbus_error_free (&error);
+
+ if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)
+ {
+ compLogMessage ("dbus", CompLogLevelError,
+ "dbus_bus_request_name reply is not primary owner");
+
+ /* dbus_connection_unref (dc->connection); */
+ free (dc);
+
+ return FALSE;
+ }
+
+ status = dbus_connection_get_unix_fd (dc->connection, &fd);
+ if (!status)
+ {
+ compLogMessage ("dbus", CompLogLevelError,
+ "dbus_connection_get_unix_fd failed");
+
+ /* dbus_connection_unref (dc->connection); */
+ free (dc);
+
+ return FALSE;
+ }
+
+ dc->watchFdHandle = compAddWatchFd (fd,
+ POLLIN | POLLPRI | POLLHUP | POLLERR,
+ dbusProcessMessages,
+ 0);
+
+ mask = NOTIFY_CREATE_MASK | NOTIFY_DELETE_MASK | NOTIFY_MOVE_MASK;
+
+ dc->fileWatch[DBUS_FILE_WATCH_CURRENT] =
+ addFileWatch (".",
+ mask,
+ dbusSendPluginsChangedSignal,
+ 0);
+ dc->fileWatch[DBUS_FILE_WATCH_PLUGIN] =
+ addFileWatch (PLUGINDIR,
+ mask,
+ dbusSendPluginsChangedSignal,
+ 0);
+ dc->fileWatch[DBUS_FILE_WATCH_HOME] = 0;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ plugindir = malloc (strlen (home) + strlen (HOME_PLUGINDIR) + 3);
+ if (plugindir)
+ {
+ sprintf (plugindir, "%s/%s", home, HOME_PLUGINDIR);
+
+ dc->fileWatch[DBUS_FILE_WATCH_HOME] =
+ addFileWatch (plugindir,
+ mask,
+ dbusSendPluginsChangedSignal,
+ 0);
+
+ free (plugindir);
+ }
+ }
+
+ WRAP (dc, c, initPluginForObject, dbusInitPluginForObject);
+ WRAP (dc, c, setOptionForPlugin, dbusSetOptionForPlugin);
+
+ c->base.privates[corePrivateIndex].ptr = dc;
+
+ /* register the objects */
+ dbus_connection_register_object_path (dc->connection,
+ COMPIZ_DBUS_ROOT_PATH,
+ &dbusMessagesVTable, 0);
+
+ return TRUE;
+}
+
+static void
+dbusFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ int i;
+
+ DBUS_CORE (c);
+
+ for (i = 0; i < DBUS_FILE_WATCH_NUM; i++)
+ removeFileWatch (dc->fileWatch[i]);
+
+ freeDisplayPrivateIndex (displayPrivateIndex);
+
+ compRemoveWatchFd (dc->watchFdHandle);
+
+ dbus_bus_release_name (dc->connection, COMPIZ_DBUS_SERVICE_NAME, NULL);
+
+ /*
+ can't unref the connection returned by dbus_bus_get as it's
+ shared and we can't know if it's closed or not.
+
+ dbus_connection_unref (dc->connection);
+ */
+
+ UNWRAP (dc, c, initPluginForObject);
+ UNWRAP (dc, c, setOptionForPlugin);
+
+ free (dc);
+}
+
+static Bool
+dbusInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ DbusDisplay *dd;
+
+ DBUS_CORE (&core);
+
+ dd = malloc (sizeof (DbusDisplay));
+ if (!dd)
+ return FALSE;
+
+ dd->pluginList = NULL;
+ dd->nPlugins = 0;
+
+ d->base.privates[displayPrivateIndex].ptr = dd;
+
+ dbusUpdatePluginList (d);
+ dbusRegisterPluginsForDisplay (dc->connection, d);
+
+ return TRUE;
+}
+
+static void
+dbusFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ DBUS_CORE (&core);
+ DBUS_DISPLAY (d);
+
+ dbusUnregisterPluginsForDisplay (dc->connection, d);
+
+ if (dd->pluginList)
+ {
+ unsigned int i;
+
+ for (i = 0; i < dd->nPlugins; i++)
+ free (dd->pluginList[i]);
+ free (dd->pluginList);
+ }
+
+ free (dd);
+}
+
+static Bool
+dbusInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ DBUS_CORE (&core);
+
+ dbusRegisterPluginsForScreen (dc->connection, s);
+
+ return TRUE;
+}
+
+static void
+dbusFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ DBUS_CORE (&core);
+
+ dbusUnregisterPluginsForScreen (dc->connection, s);
+}
+
+static CompBool
+dbusInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) dbusInitCore,
+ (InitPluginObjectProc) dbusInitDisplay,
+ (InitPluginObjectProc) dbusInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+dbusFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) dbusFiniCore,
+ (FiniPluginObjectProc) dbusFiniDisplay,
+ (FiniPluginObjectProc) dbusFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+dbusInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&dbusMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&dbusMetadata);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+dbusFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&dbusMetadata);
+}
+
+static CompMetadata *
+dbusGetMetadata (CompPlugin *plugin)
+{
+ return &dbusMetadata;
+}
+
+CompPluginVTable dbusVTable = {
+ "dbus",
+ dbusGetMetadata,
+ dbusInit,
+ dbusFini,
+ dbusInitObject,
+ dbusFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &dbusVTable;
+}
diff --git a/plugins/decoration.c b/plugins/decoration.c
new file mode 100644
index 0000000..1776ab9
--- /dev/null
+++ b/plugins/decoration.c
@@ -0,0 +1,1759 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <unistd.h>
+
+#include <compiz-core.h>
+#include <decoration.h>
+
+#include <X11/Xatom.h>
+#include <X11/extensions/shape.h>
+
+static CompMetadata decorMetadata;
+
+typedef struct _Vector {
+ int dx;
+ int dy;
+ int x0;
+ int y0;
+} Vector;
+
+#define DECOR_BARE 0
+#define DECOR_NORMAL 1
+#define DECOR_ACTIVE 2
+#define DECOR_NUM 3
+
+typedef struct _DecorTexture {
+ struct _DecorTexture *next;
+ int refCount;
+ Pixmap pixmap;
+ Damage damage;
+ CompTexture texture;
+} DecorTexture;
+
+typedef struct _Decoration {
+ int refCount;
+ DecorTexture *texture;
+ CompWindowExtents output;
+ CompWindowExtents input;
+ CompWindowExtents maxInput;
+ int minWidth;
+ int minHeight;
+ decor_quad_t *quad;
+ int nQuad;
+} Decoration;
+
+typedef struct _ScaledQuad {
+ CompMatrix matrix;
+ BoxRec box;
+ float sx;
+ float sy;
+} ScaledQuad;
+
+typedef struct _WindowDecoration {
+ Decoration *decor;
+ ScaledQuad *quad;
+ int nQuad;
+} WindowDecoration;
+
+static int corePrivateIndex;
+
+typedef struct _DecorCore {
+ ObjectAddProc objectAdd;
+ ObjectRemoveProc objectRemove;
+} DecorCore;
+
+#define DECOR_DISPLAY_OPTION_SHADOW_RADIUS 0
+#define DECOR_DISPLAY_OPTION_SHADOW_OPACITY 1
+#define DECOR_DISPLAY_OPTION_SHADOW_COLOR 2
+#define DECOR_DISPLAY_OPTION_SHADOW_OFFSET_X 3
+#define DECOR_DISPLAY_OPTION_SHADOW_OFFSET_Y 4
+#define DECOR_DISPLAY_OPTION_COMMAND 5
+#define DECOR_DISPLAY_OPTION_MIPMAP 6
+#define DECOR_DISPLAY_OPTION_DECOR_MATCH 7
+#define DECOR_DISPLAY_OPTION_SHADOW_MATCH 8
+#define DECOR_DISPLAY_OPTION_NUM 9
+
+static int displayPrivateIndex;
+
+typedef struct _DecorDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ MatchPropertyChangedProc matchPropertyChanged;
+ DecorTexture *textures;
+ Atom supportingDmCheckAtom;
+ Atom winDecorAtom;
+ Atom decorAtom[DECOR_NUM];
+
+ CompOption opt[DECOR_DISPLAY_OPTION_NUM];
+} DecorDisplay;
+
+typedef struct _DecorScreen {
+ int windowPrivateIndex;
+
+ Window dmWin;
+
+ Decoration *decor[DECOR_NUM];
+
+ DrawWindowProc drawWindow;
+ DamageWindowRectProc damageWindowRect;
+ GetOutputExtentsForWindowProc getOutputExtentsForWindow;
+
+ WindowMoveNotifyProc windowMoveNotify;
+ WindowResizeNotifyProc windowResizeNotify;
+
+ WindowStateChangeNotifyProc windowStateChangeNotify;
+
+ CompTimeoutHandle decoratorStartHandle;
+} DecorScreen;
+
+typedef struct _DecorWindow {
+ WindowDecoration *wd;
+ Decoration *decor;
+
+ CompTimeoutHandle resizeUpdateHandle;
+} DecorWindow;
+
+#define GET_DECOR_CORE(c) \
+ ((DecorCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define DECOR_CORE(c) \
+ DecorCore *dc = GET_DECOR_CORE (c)
+
+#define GET_DECOR_DISPLAY(d) \
+ ((DecorDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define DECOR_DISPLAY(d) \
+ DecorDisplay *dd = GET_DECOR_DISPLAY (d)
+
+#define GET_DECOR_SCREEN(s, dd) \
+ ((DecorScreen *) (s)->base.privates[(dd)->screenPrivateIndex].ptr)
+
+#define DECOR_SCREEN(s) \
+ DecorScreen *ds = GET_DECOR_SCREEN (s, GET_DECOR_DISPLAY (s->display))
+
+#define GET_DECOR_WINDOW(w, ds) \
+ ((DecorWindow *) (w)->base.privates[(ds)->windowPrivateIndex].ptr)
+
+#define DECOR_WINDOW(w) \
+ DecorWindow *dw = GET_DECOR_WINDOW (w, \
+ GET_DECOR_SCREEN (w->screen, \
+ GET_DECOR_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static Bool
+decorDrawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *attrib,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ UNWRAP (ds, w->screen, drawWindow);
+ status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
+ WRAP (ds, w->screen, drawWindow, decorDrawWindow);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ region = &infiniteRegion;
+
+ if (dw->wd && region->numRects)
+ {
+ WindowDecoration *wd = dw->wd;
+ REGION box;
+ int i;
+
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ box.rects = &box.extents;
+ box.numRects = 1;
+
+ w->vCount = w->indexCount = 0;
+
+ for (i = 0; i < wd->nQuad; i++)
+ {
+ box.extents = wd->quad[i].box;
+
+ if (box.extents.x1 < box.extents.x2 &&
+ box.extents.y1 < box.extents.y2)
+ {
+ (*w->screen->addWindowGeometry) (w,
+ &wd->quad[i].matrix, 1,
+ &box,
+ region);
+ }
+ }
+
+ if (w->vCount)
+ (*w->screen->drawWindowTexture) (w,
+ &wd->decor->texture->texture,
+ attrib, mask);
+ }
+
+ return status;
+}
+
+static DecorTexture *
+decorGetTexture (CompScreen *screen,
+ Pixmap pixmap)
+{
+ DecorTexture *texture;
+ unsigned int width, height, depth, ui;
+ Window root;
+ int i;
+
+ DECOR_DISPLAY (screen->display);
+
+ for (texture = dd->textures; texture; texture = texture->next)
+ {
+ if (texture->pixmap == pixmap)
+ {
+ texture->refCount++;
+ return texture;
+ }
+ }
+
+ texture = malloc (sizeof (DecorTexture));
+ if (!texture)
+ return NULL;
+
+ initTexture (screen, &texture->texture);
+
+ if (!XGetGeometry (screen->display->display, pixmap, &root,
+ &i, &i, &width, &height, &ui, &depth))
+ {
+ finiTexture (screen, &texture->texture);
+ free (texture);
+ return NULL;
+ }
+
+ if (!bindPixmapToTexture (screen, &texture->texture, pixmap,
+ width, height, depth))
+ {
+ finiTexture (screen, &texture->texture);
+ free (texture);
+ return NULL;
+ }
+
+ if (!dd->opt[DECOR_DISPLAY_OPTION_MIPMAP].value.b)
+ texture->texture.mipmap = FALSE;
+
+ texture->damage = XDamageCreate (screen->display->display, pixmap,
+ XDamageReportRawRectangles);
+
+ texture->refCount = 1;
+ texture->pixmap = pixmap;
+ texture->next = dd->textures;
+
+ dd->textures = texture;
+
+ return texture;
+}
+
+static void
+decorReleaseTexture (CompScreen *screen,
+ DecorTexture *texture)
+{
+ DECOR_DISPLAY (screen->display);
+
+ texture->refCount--;
+ if (texture->refCount)
+ return;
+
+ if (texture == dd->textures)
+ {
+ dd->textures = texture->next;
+ }
+ else
+ {
+ DecorTexture *t;
+
+ for (t = dd->textures; t; t = t->next)
+ {
+ if (t->next == texture)
+ {
+ t->next = texture->next;
+ break;
+ }
+ }
+ }
+
+ finiTexture (screen, &texture->texture);
+ free (texture);
+}
+
+static void
+computeQuadBox (decor_quad_t *q,
+ int width,
+ int height,
+ int *return_x1,
+ int *return_y1,
+ int *return_x2,
+ int *return_y2,
+ float *return_sx,
+ float *return_sy)
+{
+ int x1, y1, x2, y2;
+ float sx = 1.0f;
+ float sy = 1.0f;
+
+ decor_apply_gravity (q->p1.gravity, q->p1.x, q->p1.y, width, height,
+ &x1, &y1);
+ decor_apply_gravity (q->p2.gravity, q->p2.x, q->p2.y, width, height,
+ &x2, &y2);
+
+ if (q->clamp & CLAMP_HORZ)
+ {
+ if (x1 < 0)
+ x1 = 0;
+ if (x2 > width)
+ x2 = width;
+ }
+
+ if (q->clamp & CLAMP_VERT)
+ {
+ if (y1 < 0)
+ y1 = 0;
+ if (y2 > height)
+ y2 = height;
+ }
+
+ if (q->stretch & STRETCH_X)
+ {
+ sx = (float)q->max_width / ((float)(x2 - x1));
+ }
+ else if (q->max_width < x2 - x1)
+ {
+ if (q->align & ALIGN_RIGHT)
+ x1 = x2 - q->max_width;
+ else
+ x2 = x1 + q->max_width;
+ }
+
+ if (q->stretch & STRETCH_Y)
+ {
+ sy = (float)q->max_height / ((float)(y2 - y1));
+ }
+ else if (q->max_height < y2 - y1)
+ {
+ if (q->align & ALIGN_BOTTOM)
+ y1 = y2 - q->max_height;
+ else
+ y2 = y1 + q->max_height;
+ }
+
+ *return_x1 = x1;
+ *return_y1 = y1;
+ *return_x2 = x2;
+ *return_y2 = y2;
+
+ if (return_sx)
+ *return_sx = sx;
+ if (return_sy)
+ *return_sy = sy;
+}
+
+static Decoration *
+decorCreateDecoration (CompScreen *screen,
+ Window id,
+ Atom decorAtom)
+{
+ Decoration *decoration;
+ Atom actual;
+ int result, format;
+ unsigned long n, nleft;
+ unsigned char *data;
+ long *prop;
+ Pixmap pixmap;
+ decor_extents_t input;
+ decor_extents_t maxInput;
+ decor_quad_t *quad;
+ int nQuad;
+ int minWidth;
+ int minHeight;
+ int left, right, top, bottom;
+ int x1, y1, x2, y2;
+
+ result = XGetWindowProperty (screen->display->display, id,
+ decorAtom, 0L, 1024L, FALSE,
+ XA_INTEGER, &actual, &format,
+ &n, &nleft, &data);
+
+ if (result != Success || !data)
+ return NULL;
+
+ if (!n)
+ {
+ XFree (data);
+ return NULL;
+ }
+
+ prop = (long *) data;
+
+ if (decor_property_get_version (prop) != decor_version ())
+ {
+ compLogMessage ("decoration", CompLogLevelWarn,
+ "Property ignored because "
+ "version is %d and decoration plugin version is %d\n",
+ decor_property_get_version (prop), decor_version ());
+
+ XFree (data);
+ return NULL;
+ }
+
+ nQuad = (n - BASE_PROP_SIZE) / QUAD_PROP_SIZE;
+
+ quad = malloc (sizeof (decor_quad_t) * nQuad);
+ if (!quad)
+ {
+ XFree (data);
+ return NULL;
+ }
+
+ nQuad = decor_property_to_quads (prop,
+ n,
+ &pixmap,
+ &input,
+ &maxInput,
+ &minWidth,
+ &minHeight,
+ quad);
+
+ XFree (data);
+
+ if (!nQuad)
+ {
+ free (quad);
+ return NULL;
+ }
+
+ decoration = malloc (sizeof (Decoration));
+ if (!decoration)
+ {
+ free (quad);
+ return NULL;
+ }
+
+ decoration->texture = decorGetTexture (screen, pixmap);
+ if (!decoration->texture)
+ {
+ free (decoration);
+ free (quad);
+ return NULL;
+ }
+
+ decoration->minWidth = minWidth;
+ decoration->minHeight = minHeight;
+ decoration->quad = quad;
+ decoration->nQuad = nQuad;
+
+ left = 0;
+ right = minWidth;
+ top = 0;
+ bottom = minHeight;
+
+ while (nQuad--)
+ {
+ computeQuadBox (quad, minWidth, minHeight, &x1, &y1, &x2, &y2,
+ NULL, NULL);
+
+ if (x1 < left)
+ left = x1;
+ if (y1 < top)
+ top = y1;
+ if (x2 > right)
+ right = x2;
+ if (y2 > bottom)
+ bottom = y2;
+
+ quad++;
+ }
+
+ decoration->output.left = -left;
+ decoration->output.right = right - minWidth;
+ decoration->output.top = -top;
+ decoration->output.bottom = bottom - minHeight;
+
+ decoration->input.left = input.left;
+ decoration->input.right = input.right;
+ decoration->input.top = input.top;
+ decoration->input.bottom = input.bottom;
+
+ decoration->maxInput.left = maxInput.left;
+ decoration->maxInput.right = maxInput.right;
+ decoration->maxInput.top = maxInput.top;
+ decoration->maxInput.bottom = maxInput.bottom;
+
+ decoration->refCount = 1;
+
+ return decoration;
+}
+
+static void
+decorReleaseDecoration (CompScreen *screen,
+ Decoration *decoration)
+{
+ decoration->refCount--;
+ if (decoration->refCount)
+ return;
+
+ decorReleaseTexture (screen, decoration->texture);
+
+ free (decoration->quad);
+ free (decoration);
+}
+
+static void
+decorWindowUpdateDecoration (CompWindow *w)
+{
+ Decoration *decoration;
+
+ DECOR_DISPLAY (w->screen->display);
+ DECOR_WINDOW (w);
+
+ decoration = decorCreateDecoration (w->screen, w->id, dd->winDecorAtom);
+
+ if (dw->decor)
+ decorReleaseDecoration (w->screen, dw->decor);
+
+ dw->decor = decoration;
+}
+
+static WindowDecoration *
+createWindowDecoration (Decoration *d)
+{
+ WindowDecoration *wd;
+
+ wd = malloc (sizeof (WindowDecoration) +
+ sizeof (ScaledQuad) * d->nQuad);
+ if (!wd)
+ return NULL;
+
+ d->refCount++;
+
+ wd->decor = d;
+ wd->quad = (ScaledQuad *) (wd + 1);
+ wd->nQuad = d->nQuad;
+
+ return wd;
+}
+
+static void
+destroyWindowDecoration (CompScreen *screen,
+ WindowDecoration *wd)
+{
+ decorReleaseDecoration (screen, wd->decor);
+ free (wd);
+}
+
+static void
+setDecorationMatrices (CompWindow *w)
+{
+ WindowDecoration *wd;
+ int i;
+ float x0, y0;
+ decor_matrix_t a;
+ CompMatrix b;
+
+
+ DECOR_WINDOW (w);
+
+ wd = dw->wd;
+ if (!wd)
+ return;
+
+ for (i = 0; i < wd->nQuad; i++)
+ {
+ wd->quad[i].matrix = wd->decor->texture->texture.matrix;
+
+ x0 = wd->decor->quad[i].m.x0;
+ y0 = wd->decor->quad[i].m.y0;
+
+ a = wd->decor->quad[i].m;
+ b = wd->quad[i].matrix;
+
+ wd->quad[i].matrix.xx = a.xx * b.xx + a.yx * b.xy;
+ wd->quad[i].matrix.yx = a.xx * b.yx + a.yx * b.yy;
+ wd->quad[i].matrix.xy = a.xy * b.xx + a.yy * b.xy;
+ wd->quad[i].matrix.yy = a.xy * b.yx + a.yy * b.yy;
+ wd->quad[i].matrix.x0 = x0 * b.xx + y0 * b.xy + b.x0;
+ wd->quad[i].matrix.y0 = x0 * b.yx + y0 * b.yy + b.y0;
+
+ wd->quad[i].matrix.xx *= wd->quad[i].sx;
+ wd->quad[i].matrix.yx *= wd->quad[i].sx;
+ wd->quad[i].matrix.xy *= wd->quad[i].sy;
+ wd->quad[i].matrix.yy *= wd->quad[i].sy;
+
+ if (wd->decor->quad[i].align & ALIGN_RIGHT)
+ x0 = wd->quad[i].box.x2 - wd->quad[i].box.x1;
+ else
+ x0 = 0.0f;
+
+ if (wd->decor->quad[i].align & ALIGN_BOTTOM)
+ y0 = wd->quad[i].box.y2 - wd->quad[i].box.y1;
+ else
+ y0 = 0.0f;
+
+ wd->quad[i].matrix.x0 -=
+ x0 * wd->quad[i].matrix.xx +
+ y0 * wd->quad[i].matrix.xy;
+
+ wd->quad[i].matrix.y0 -=
+ y0 * wd->quad[i].matrix.yy +
+ x0 * wd->quad[i].matrix.yx;
+
+ wd->quad[i].matrix.x0 -=
+ wd->quad[i].box.x1 * wd->quad[i].matrix.xx +
+ wd->quad[i].box.y1 * wd->quad[i].matrix.xy;
+
+ wd->quad[i].matrix.y0 -=
+ wd->quad[i].box.y1 * wd->quad[i].matrix.yy +
+ wd->quad[i].box.x1 * wd->quad[i].matrix.yx;
+ }
+}
+
+static void
+updateWindowDecorationScale (CompWindow *w)
+{
+ WindowDecoration *wd;
+ int x1, y1, x2, y2;
+ float sx, sy;
+ int i;
+
+ DECOR_WINDOW (w);
+
+ wd = dw->wd;
+ if (!wd)
+ return;
+
+ for (i = 0; i < wd->nQuad; i++)
+ {
+ computeQuadBox (&wd->decor->quad[i], w->width, w->height,
+ &x1, &y1, &x2, &y2, &sx, &sy);
+
+ wd->quad[i].box.x1 = x1 + w->attrib.x;
+ wd->quad[i].box.y1 = y1 + w->attrib.y;
+ wd->quad[i].box.x2 = x2 + w->attrib.x;
+ wd->quad[i].box.y2 = y2 + w->attrib.y;
+ wd->quad[i].sx = sx;
+ wd->quad[i].sy = sy;
+ }
+
+ setDecorationMatrices (w);
+}
+
+static Bool
+decorCheckSize (CompWindow *w,
+ Decoration *decor)
+{
+ return (decor->minWidth <= w->width && decor->minHeight <= w->height);
+}
+
+static int
+decorWindowShiftX (CompWindow *w)
+{
+ switch (w->sizeHints.win_gravity) {
+ case WestGravity:
+ case NorthWestGravity:
+ case SouthWestGravity:
+ return w->input.left;
+ case EastGravity:
+ case NorthEastGravity:
+ case SouthEastGravity:
+ return -w->input.right;
+ }
+
+ return 0;
+}
+
+static int
+decorWindowShiftY (CompWindow *w)
+{
+ switch (w->sizeHints.win_gravity) {
+ case NorthGravity:
+ case NorthWestGravity:
+ case NorthEastGravity:
+ return w->input.top;
+ case SouthGravity:
+ case SouthWestGravity:
+ case SouthEastGravity:
+ return -w->input.bottom;
+ }
+
+ return 0;
+}
+
+static Bool
+decorWindowUpdate (CompWindow *w,
+ Bool allowDecoration)
+{
+ WindowDecoration *wd;
+ Decoration *old, *decor = NULL;
+ Bool decorate = FALSE;
+ CompMatch *match;
+ int moveDx, moveDy;
+ int oldShiftX = 0;
+ int oldShiftY = 0;
+
+ DECOR_DISPLAY (w->screen->display);
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ wd = dw->wd;
+ old = (wd) ? wd->decor : NULL;
+
+ switch (w->type) {
+ case CompWindowTypeDialogMask:
+ case CompWindowTypeModalDialogMask:
+ case CompWindowTypeUtilMask:
+ case CompWindowTypeMenuMask:
+ case CompWindowTypeNormalMask:
+ if (w->mwmDecor & (MwmDecorAll | MwmDecorTitle))
+ decorate = TRUE;
+ default:
+ break;
+ }
+
+ if (w->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))
+ decorate = FALSE;
+
+ if (w->attrib.override_redirect)
+ decorate = FALSE;
+
+ if (decorate)
+ {
+ match = &dd->opt[DECOR_DISPLAY_OPTION_DECOR_MATCH].value.match;
+ if (!matchEval (match, w))
+ decorate = FALSE;
+ }
+
+ if (decorate)
+ {
+ if (dw->decor && decorCheckSize (w, dw->decor))
+ {
+ decor = dw->decor;
+ }
+ else
+ {
+ if (w->id == w->screen->display->activeWindow)
+ decor = ds->decor[DECOR_ACTIVE];
+ else
+ decor = ds->decor[DECOR_NORMAL];
+ }
+ }
+ else
+ {
+ match = &dd->opt[DECOR_DISPLAY_OPTION_SHADOW_MATCH].value.match;
+ if (matchEval (match, w))
+ {
+ if (w->region->numRects == 1)
+ decor = ds->decor[DECOR_BARE];
+
+ if (decor)
+ {
+ if (!decorCheckSize (w, decor))
+ decor = NULL;
+ }
+ }
+ }
+
+ if (!ds->dmWin || !allowDecoration)
+ decor = NULL;
+
+ if (decor == old)
+ return FALSE;
+
+ damageWindowOutputExtents (w);
+
+ if (old)
+ {
+ oldShiftX = decorWindowShiftX (w);
+ oldShiftY = decorWindowShiftY (w);
+
+ destroyWindowDecoration (w->screen, wd);
+ }
+
+ if (decor)
+ {
+ dw->wd = createWindowDecoration (decor);
+ if (!dw->wd)
+ return FALSE;
+
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ setWindowFrameExtents (w, &decor->maxInput);
+ else
+ setWindowFrameExtents (w, &decor->input);
+
+ moveDx = decorWindowShiftX (w) - oldShiftX;
+ moveDy = decorWindowShiftY (w) - oldShiftY;
+
+ updateWindowOutputExtents (w);
+ damageWindowOutputExtents (w);
+ updateWindowDecorationScale (w);
+ }
+ else
+ {
+ CompWindowExtents emptyInput;
+
+ memset (&emptyInput, 0, sizeof (emptyInput));
+ setWindowFrameExtents (w, &emptyInput);
+
+ dw->wd = NULL;
+
+ moveDx = -oldShiftX;
+ moveDy = -oldShiftY;
+ }
+
+ if (w->placed && !w->attrib.override_redirect && (moveDx || moveDy))
+ {
+ XWindowChanges xwc;
+ unsigned int mask = CWX | CWY;
+
+ xwc.x = w->serverX + moveDx;
+ xwc.y = w->serverY + moveDy;
+
+ if (w->state & CompWindowStateFullscreenMask)
+ mask &= ~(CWX | CWY);
+
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ mask &= ~CWX;
+
+ if (w->state & CompWindowStateMaximizedVertMask)
+ mask &= ~CWY;
+
+ if (w->saveMask & CWX)
+ w->saveWc.x += moveDx;
+
+ if (w->saveMask & CWY)
+ w->saveWc.y += moveDy;
+
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+ }
+
+ return TRUE;
+}
+
+static void
+decorCheckForDmOnScreen (CompScreen *s,
+ Bool updateWindows)
+{
+ CompDisplay *d = s->display;
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ Window dmWin = None;
+
+ DECOR_DISPLAY (s->display);
+ DECOR_SCREEN (s);
+
+ result = XGetWindowProperty (d->display, s->root,
+ dd->supportingDmCheckAtom, 0L, 1L, FALSE,
+ XA_WINDOW, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ {
+ XWindowAttributes attr;
+
+ memcpy (&dmWin, data, sizeof (Window));
+
+ compCheckForError (d->display);
+
+ XGetWindowAttributes (d->display, dmWin, &attr);
+
+ if (compCheckForError (d->display))
+ dmWin = None;
+ }
+
+ XFree (data);
+ }
+
+ if (dmWin != ds->dmWin)
+ {
+ CompWindow *w;
+ int i;
+
+ if (dmWin)
+ {
+ for (i = 0; i < DECOR_NUM; i++)
+ ds->decor[i] =
+ decorCreateDecoration (s, s->root, dd->decorAtom[i]);
+ }
+ else
+ {
+ for (i = 0; i < DECOR_NUM; i++)
+ {
+ if (ds->decor[i])
+ {
+ decorReleaseDecoration (s, ds->decor[i]);
+ ds->decor[i] = 0;
+ }
+ }
+
+ for (w = s->windows; w; w = w->next)
+ {
+ DECOR_WINDOW (w);
+
+ if (dw->decor)
+ {
+ decorReleaseDecoration (s, dw->decor);
+ dw->decor = 0;
+ }
+ }
+ }
+
+ ds->dmWin = dmWin;
+
+ if (updateWindows)
+ {
+ for (w = s->windows; w; w = w->next)
+ decorWindowUpdate (w, TRUE);
+ }
+ }
+}
+
+static void
+decorHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ Window activeWindow = d->activeWindow;
+ CompWindow *w;
+
+ DECOR_DISPLAY (d);
+
+ switch (event->type) {
+ case DestroyNotify:
+ w = findWindowAtDisplay (d, event->xdestroywindow.window);
+ if (w)
+ {
+ DECOR_SCREEN (w->screen);
+
+ if (w->id == ds->dmWin)
+ decorCheckForDmOnScreen (w->screen, TRUE);
+ }
+ break;
+ case MapRequest:
+ w = findWindowAtDisplay (d, event->xmaprequest.window);
+ if (w)
+ decorWindowUpdate (w, TRUE);
+ break;
+ default:
+ if (event->type == d->damageEvent + XDamageNotify)
+ {
+ XDamageNotifyEvent *de = (XDamageNotifyEvent *) event;
+ DecorTexture *t;
+
+ for (t = dd->textures; t; t = t->next)
+ {
+ if (t->pixmap == de->drawable)
+ {
+ DecorWindow *dw;
+ DecorScreen *ds;
+ CompScreen *s;
+
+ t->texture.oldMipmaps = TRUE;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ds = GET_DECOR_SCREEN (s, dd);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->shaded || w->mapNum)
+ {
+ dw = GET_DECOR_WINDOW (w, ds);
+
+ if (dw->wd && dw->wd->decor->texture == t)
+ damageWindowOutputExtents (w);
+ }
+ }
+ }
+ return;
+ }
+ }
+ }
+ break;
+ }
+
+ UNWRAP (dd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (dd, d, handleEvent, decorHandleEvent);
+
+ if (d->activeWindow != activeWindow)
+ {
+ w = findWindowAtDisplay (d, activeWindow);
+ if (w)
+ decorWindowUpdate (w, TRUE);
+
+ w = findWindowAtDisplay (d, d->activeWindow);
+ if (w)
+ decorWindowUpdate (w, TRUE);
+ }
+
+ switch (event->type) {
+ case PropertyNotify:
+ if (event->xproperty.atom == dd->winDecorAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ decorWindowUpdateDecoration (w);
+ decorWindowUpdate (w, TRUE);
+ }
+ }
+ else if (event->xproperty.atom == d->mwmHintsAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ decorWindowUpdate (w, TRUE);
+ }
+ else
+ {
+ CompScreen *s;
+
+ s = findScreenAtDisplay (d, event->xproperty.window);
+ if (s)
+ {
+ if (event->xproperty.atom == dd->supportingDmCheckAtom)
+ {
+ decorCheckForDmOnScreen (s, TRUE);
+ }
+ else
+ {
+ int i;
+
+ for (i = 0; i < DECOR_NUM; i++)
+ {
+ if (event->xproperty.atom == dd->decorAtom[i])
+ {
+ DECOR_SCREEN (s);
+
+ if (ds->decor[i])
+ decorReleaseDecoration (s, ds->decor[i]);
+
+ ds->decor[i] =
+ decorCreateDecoration (s, s->root,
+ dd->decorAtom[i]);
+
+ for (w = s->windows; w; w = w->next)
+ decorWindowUpdate (w, TRUE);
+ }
+ }
+ }
+ }
+ }
+ break;
+ default:
+ if (d->shapeExtension && event->type == d->shapeEvent + ShapeNotify)
+ {
+ w = findWindowAtDisplay (d, ((XShapeEvent *) event)->window);
+ if (w)
+ decorWindowUpdate (w, TRUE);
+ }
+ break;
+ }
+}
+
+static Bool
+decorDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status;
+
+ DECOR_SCREEN (w->screen);
+
+ if (initial)
+ decorWindowUpdate (w, TRUE);
+
+ UNWRAP (ds, w->screen, damageWindowRect);
+ status = (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (ds, w->screen, damageWindowRect, decorDamageWindowRect);
+
+ return status;
+}
+
+static void
+decorGetOutputExtentsForWindow (CompWindow *w,
+ CompWindowExtents *output)
+{
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ UNWRAP (ds, w->screen, getOutputExtentsForWindow);
+ (*w->screen->getOutputExtentsForWindow) (w, output);
+ WRAP (ds, w->screen, getOutputExtentsForWindow,
+ decorGetOutputExtentsForWindow);
+
+ if (dw->wd)
+ {
+ CompWindowExtents *e = &dw->wd->decor->output;
+
+ if (e->left > output->left)
+ output->left = e->left;
+ if (e->right > output->right)
+ output->right = e->right;
+ if (e->top > output->top)
+ output->top = e->top;
+ if (e->bottom > output->bottom)
+ output->bottom = e->bottom;
+ }
+}
+
+static CompBool
+decorStartDecorator (void *closure)
+{
+ CompScreen *s = (CompScreen *) closure;
+
+ DECOR_DISPLAY (s->display);
+ DECOR_SCREEN (s);
+
+ ds->decoratorStartHandle = 0;
+
+ if (!ds->dmWin)
+ runCommand (s, dd->opt[DECOR_DISPLAY_OPTION_COMMAND].value.s);
+
+ return FALSE;
+}
+
+static CompOption *
+decorGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ DECOR_DISPLAY (display);
+
+ *count = NUM_OPTIONS (dd);
+ return dd->opt;
+}
+
+static Bool
+decorSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ DECOR_DISPLAY (display);
+
+ o = compFindOption (dd->opt, NUM_OPTIONS (dd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case DECOR_DISPLAY_OPTION_COMMAND:
+ if (compSetStringOption (o, value))
+ {
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ {
+ DECOR_SCREEN (s);
+
+ if (!ds->dmWin)
+ runCommand (s, o->value.s);
+ }
+
+ return TRUE;
+ }
+ break;
+ case DECOR_DISPLAY_OPTION_SHADOW_MATCH:
+ {
+ char *matchString;
+
+ /*
+ Make sure RGBA matching is always present and disable shadows
+ for RGBA windows by default if the user didn't specify an
+ RGBA match.
+ Reasoning for that is that shadows are desired for some RGBA
+ windows (e.g. rectangular windows that just happen to have an
+ RGBA colormap), while it's absolutely undesired for others
+ (especially shaped ones) ... by enforcing no shadows for RGBA
+ windows by default, we are flexible to user desires while still
+ making sure we don't show ugliness by default
+ */
+
+ matchString = matchToString (&value->match);
+ if (matchString)
+ {
+ if (!strstr (matchString, "rgba="))
+ {
+ CompMatch rgbaMatch;
+
+ matchInit (&rgbaMatch);
+ matchAddFromString (&rgbaMatch, "rgba=0");
+ matchAddGroup (&value->match, MATCH_OP_AND_MASK,
+ &rgbaMatch);
+ matchFini (&rgbaMatch);
+ }
+ free (matchString);
+ }
+ }
+ /* fall-through intended */
+ case DECOR_DISPLAY_OPTION_DECOR_MATCH:
+ if (compSetMatchOption (o, value))
+ {
+ CompScreen *s;
+ CompWindow *w;
+
+ for (s = display->screens; s; s = s->next)
+ for (w = s->windows; w; w = w->next)
+ decorWindowUpdate (w, TRUE);
+ }
+ break;
+ default:
+ if (compSetOption (o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+decorWindowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ if (dw->wd)
+ {
+ WindowDecoration *wd = dw->wd;
+ int i;
+
+ for (i = 0; i < wd->nQuad; i++)
+ {
+ wd->quad[i].box.x1 += dx;
+ wd->quad[i].box.y1 += dy;
+ wd->quad[i].box.x2 += dx;
+ wd->quad[i].box.y2 += dy;
+ }
+
+ setDecorationMatrices (w);
+ }
+
+ UNWRAP (ds, w->screen, windowMoveNotify);
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+ WRAP (ds, w->screen, windowMoveNotify, decorWindowMoveNotify);
+}
+
+static Bool
+decorResizeUpdateTimeout (void *closure)
+{
+ CompWindow *w = (CompWindow *) closure;
+
+ DECOR_WINDOW (w);
+
+ decorWindowUpdate (w, TRUE);
+
+ dw->resizeUpdateHandle = 0;
+
+ return FALSE;
+}
+
+static void
+decorWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ /* FIXME: we should not need a timer for calling decorWindowUpdate,
+ and only call updateWindowDecorationScale if decorWindowUpdate
+ returns FALSE. Unfortunately, decorWindowUpdate may call
+ updateWindowOutputExtents, which may call WindowResizeNotify. As
+ we never should call a wrapped function that's currently
+ processed, we need the timer for the moment. updateWindowOutputExtents
+ should be fixed so that it does not emit a resize notification. */
+ dw->resizeUpdateHandle = compAddTimeout (0, 0, decorResizeUpdateTimeout, w);
+ updateWindowDecorationScale (w);
+
+ UNWRAP (ds, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (ds, w->screen, windowResizeNotify, decorWindowResizeNotify);
+}
+
+static void
+decorWindowStateChangeNotify (CompWindow *w,
+ unsigned int lastState)
+{
+ DECOR_SCREEN (w->screen);
+ DECOR_WINDOW (w);
+
+ if (!decorWindowUpdate (w, TRUE))
+ {
+ if (dw->wd && dw->wd->decor)
+ {
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ setWindowFrameExtents (w, &dw->wd->decor->maxInput);
+ else
+ setWindowFrameExtents (w, &dw->wd->decor->input);
+ }
+ }
+
+ UNWRAP (ds, w->screen, windowStateChangeNotify);
+ (*w->screen->windowStateChangeNotify) (w, lastState);
+ WRAP (ds, w->screen, windowStateChangeNotify, decorWindowStateChangeNotify);
+}
+
+static void
+decorMatchPropertyChanged (CompDisplay *d,
+ CompWindow *w)
+{
+ DECOR_DISPLAY (d);
+
+ decorWindowUpdate (w, TRUE);
+
+ UNWRAP (dd, d, matchPropertyChanged);
+ (*d->matchPropertyChanged) (d, w);
+ WRAP (dd, d, matchPropertyChanged, decorMatchPropertyChanged);
+}
+
+static void
+decorWindowAdd (CompScreen *s,
+ CompWindow *w)
+{
+ if (w->shaded || w->attrib.map_state == IsViewable)
+ decorWindowUpdate (w, TRUE);
+}
+
+static void
+decorWindowRemove (CompScreen *s,
+ CompWindow *w)
+{
+ if (!w->destroyed)
+ decorWindowUpdate (w, FALSE);
+}
+
+static void
+decorObjectAdd (CompObject *parent,
+ CompObject *object)
+{
+ static ObjectAddProc dispTab[] = {
+ (ObjectAddProc) 0, /* CoreAdd */
+ (ObjectAddProc) 0, /* DisplayAdd */
+ (ObjectAddProc) 0, /* ScreenAdd */
+ (ObjectAddProc) decorWindowAdd
+ };
+
+ DECOR_CORE (&core);
+
+ UNWRAP (dc, &core, objectAdd);
+ (*core.objectAdd) (parent, object);
+ WRAP (dc, &core, objectAdd, decorObjectAdd);
+
+ DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), (parent, object));
+}
+
+static void
+decorObjectRemove (CompObject *parent,
+ CompObject *object)
+{
+ static ObjectRemoveProc dispTab[] = {
+ (ObjectRemoveProc) 0, /* CoreRemove */
+ (ObjectRemoveProc) 0, /* DisplayRemove */
+ (ObjectRemoveProc) 0, /* ScreenRemove */
+ (ObjectRemoveProc) decorWindowRemove
+ };
+
+ DECOR_CORE (&core);
+
+ DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), (parent, object));
+
+ UNWRAP (dc, &core, objectRemove);
+ (*core.objectRemove) (parent, object);
+ WRAP (dc, &core, objectRemove, decorObjectRemove);
+}
+
+static Bool
+decorInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ DecorCore *dc;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ dc = malloc (sizeof (DecorCore));
+ if (!dc)
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ free (dc);
+ return FALSE;
+ }
+
+ WRAP (dc, c, objectAdd, decorObjectAdd);
+ WRAP (dc, c, objectRemove, decorObjectRemove);
+
+ c->base.privates[corePrivateIndex].ptr = dc;
+
+ return TRUE;
+}
+
+static void
+decorFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ DECOR_CORE (c);
+
+ freeDisplayPrivateIndex (displayPrivateIndex);
+
+ UNWRAP (dc, c, objectAdd);
+ UNWRAP (dc, c, objectRemove);
+
+ free (dc);
+}
+
+static const CompMetadataOptionInfo decorDisplayOptionInfo[] = {
+ { "shadow_radius", "float", "<min>0.0</min><max>48.0</max>", 0, 0 },
+ { "shadow_opacity", "float", "<min>0.0</min>", 0, 0 },
+ { "shadow_color", "color", 0, 0, 0 },
+ { "shadow_x_offset", "int", "<min>-16</min><max>16</max>", 0, 0 },
+ { "shadow_y_offset", "int", "<min>-16</min><max>16</max>", 0, 0 },
+ { "command", "string", 0, 0, 0 },
+ { "mipmap", "bool", 0, 0, 0 },
+ { "decoration_match", "match", 0, 0, 0 },
+ { "shadow_match", "match", 0, 0, 0 }
+};
+
+static Bool
+decorInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ DecorDisplay *dd;
+
+ dd = malloc (sizeof (DecorDisplay));
+ if (!dd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &decorMetadata,
+ decorDisplayOptionInfo,
+ dd->opt,
+ DECOR_DISPLAY_OPTION_NUM))
+ {
+ free (dd);
+ return FALSE;
+ }
+
+ dd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (dd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, dd->opt, DECOR_DISPLAY_OPTION_NUM);
+ free (dd);
+ return FALSE;
+ }
+
+ dd->textures = 0;
+
+ dd->supportingDmCheckAtom =
+ XInternAtom (d->display, DECOR_SUPPORTING_DM_CHECK_ATOM_NAME, 0);
+ dd->winDecorAtom =
+ XInternAtom (d->display, DECOR_WINDOW_ATOM_NAME, 0);
+ dd->decorAtom[DECOR_BARE] =
+ XInternAtom (d->display, DECOR_BARE_ATOM_NAME, 0);
+ dd->decorAtom[DECOR_NORMAL] =
+ XInternAtom (d->display, DECOR_NORMAL_ATOM_NAME, 0);
+ dd->decorAtom[DECOR_ACTIVE] =
+ XInternAtom (d->display, DECOR_ACTIVE_ATOM_NAME, 0);
+
+ WRAP (dd, d, handleEvent, decorHandleEvent);
+ WRAP (dd, d, matchPropertyChanged, decorMatchPropertyChanged);
+
+ d->base.privates[displayPrivateIndex].ptr = dd;
+
+ return TRUE;
+}
+
+static void
+decorFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ DECOR_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, dd->screenPrivateIndex);
+
+ UNWRAP (dd, d, handleEvent);
+ UNWRAP (dd, d, matchPropertyChanged);
+
+ compFiniDisplayOptions (d, dd->opt, DECOR_DISPLAY_OPTION_NUM);
+
+ free (dd);
+}
+
+static Bool
+decorInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ DecorScreen *ds;
+
+ DECOR_DISPLAY (s->display);
+
+ ds = malloc (sizeof (DecorScreen));
+ if (!ds)
+ return FALSE;
+
+ ds->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (ds->windowPrivateIndex < 0)
+ {
+ free (ds);
+ return FALSE;
+ }
+
+ memset (ds->decor, 0, sizeof (ds->decor));
+
+ ds->dmWin = None;
+ ds->decoratorStartHandle = 0;
+
+ WRAP (ds, s, drawWindow, decorDrawWindow);
+ WRAP (ds, s, damageWindowRect, decorDamageWindowRect);
+ WRAP (ds, s, getOutputExtentsForWindow, decorGetOutputExtentsForWindow);
+ WRAP (ds, s, windowMoveNotify, decorWindowMoveNotify);
+ WRAP (ds, s, windowResizeNotify, decorWindowResizeNotify);
+ WRAP (ds, s, windowStateChangeNotify, decorWindowStateChangeNotify);
+
+ s->base.privates[dd->screenPrivateIndex].ptr = ds;
+
+ decorCheckForDmOnScreen (s, FALSE);
+
+ if (!ds->dmWin)
+ ds->decoratorStartHandle = compAddTimeout (0, -1,
+ decorStartDecorator, s);
+
+ return TRUE;
+}
+
+static void
+decorFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ int i;
+
+ DECOR_SCREEN (s);
+
+ for (i = 0; i < DECOR_NUM; i++)
+ if (ds->decor[i])
+ decorReleaseDecoration (s, ds->decor[i]);
+
+ if (ds->decoratorStartHandle)
+ compRemoveTimeout (ds->decoratorStartHandle);
+
+ freeWindowPrivateIndex (s, ds->windowPrivateIndex);
+
+ UNWRAP (ds, s, drawWindow);
+ UNWRAP (ds, s, damageWindowRect);
+ UNWRAP (ds, s, getOutputExtentsForWindow);
+ UNWRAP (ds, s, windowMoveNotify);
+ UNWRAP (ds, s, windowResizeNotify);
+ UNWRAP (ds, s, windowStateChangeNotify);
+
+ free (ds);
+}
+
+static Bool
+decorInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ DecorWindow *dw;
+
+ DECOR_SCREEN (w->screen);
+
+ dw = malloc (sizeof (DecorWindow));
+ if (!dw)
+ return FALSE;
+
+ dw->wd = NULL;
+ dw->decor = NULL;
+
+ dw->resizeUpdateHandle = 0;
+
+ w->base.privates[ds->windowPrivateIndex].ptr = dw;
+
+ if (!w->attrib.override_redirect)
+ decorWindowUpdateDecoration (w);
+
+ if (w->base.parent)
+ decorWindowAdd (w->screen, w);
+
+ return TRUE;
+}
+
+static void
+decorFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ DECOR_WINDOW (w);
+
+ if (dw->resizeUpdateHandle)
+ compRemoveTimeout (dw->resizeUpdateHandle);
+
+ if (w->base.parent)
+ decorWindowRemove (w->screen, w);
+
+ if (dw->wd)
+ destroyWindowDecoration (w->screen, dw->wd);
+
+ if (dw->decor)
+ decorReleaseDecoration (w->screen, dw->decor);
+
+ free (dw);
+}
+
+static CompBool
+decorInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) decorInitCore,
+ (InitPluginObjectProc) decorInitDisplay,
+ (InitPluginObjectProc) decorInitScreen,
+ (InitPluginObjectProc) decorInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+decorFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) decorFiniCore,
+ (FiniPluginObjectProc) decorFiniDisplay,
+ (FiniPluginObjectProc) decorFiniScreen,
+ (FiniPluginObjectProc) decorFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+decorGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) decorGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+decorSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) decorSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+decorInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&decorMetadata,
+ p->vTable->name,
+ decorDisplayOptionInfo,
+ DECOR_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&decorMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&decorMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+decorFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&decorMetadata);
+}
+
+static CompMetadata *
+decorGetMetadata (CompPlugin *plugin)
+{
+ return &decorMetadata;
+}
+
+static CompPluginVTable decorVTable = {
+ "decoration",
+ decorGetMetadata,
+ decorInit,
+ decorFini,
+ decorInitObject,
+ decorFiniObject,
+ decorGetObjectOptions,
+ decorSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &decorVTable;
+}
diff --git a/plugins/fade.c b/plugins/fade.c
new file mode 100644
index 0000000..f8cbdfc
--- /dev/null
+++ b/plugins/fade.c
@@ -0,0 +1,1049 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <compiz-core.h>
+
+static CompMetadata fadeMetadata;
+
+static int displayPrivateIndex;
+
+typedef struct _FadeDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ MatchExpHandlerChangedProc matchExpHandlerChanged;
+ int displayModals;
+ Bool suppressMinimizeOpenClose;
+ CompMatch alwaysFadeWindowMatch;
+} FadeDisplay;
+
+#define FADE_SCREEN_OPTION_FADE_MODE 0
+#define FADE_SCREEN_OPTION_FADE_SPEED 1
+#define FADE_SCREEN_OPTION_FADE_TIME 2
+#define FADE_SCREEN_OPTION_WINDOW_MATCH 3
+#define FADE_SCREEN_OPTION_VISUAL_BELL 4
+#define FADE_SCREEN_OPTION_FULLSCREEN_VISUAL_BELL 5
+#define FADE_SCREEN_OPTION_MINIMIZE_OPEN_CLOSE 6
+#define FADE_SCREEN_OPTION_DIM_UNRESPONSIVE 7
+#define FADE_SCREEN_OPTION_UNRESPONSIVE_BRIGHTNESS 8
+#define FADE_SCREEN_OPTION_UNRESPONSIVE_SATURATION 9
+#define FADE_SCREEN_OPTION_NUM 10
+
+#define FADE_MODE_CONSTANTSPEED 0
+#define FADE_MODE_CONSTANTTIME 1
+#define FADE_MODE_MAX FADE_MODE_CONSTANTTIME
+
+typedef struct _FadeScreen {
+ int windowPrivateIndex;
+ int fadeTime;
+
+ CompOption opt[FADE_SCREEN_OPTION_NUM];
+
+ PreparePaintScreenProc preparePaintScreen;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+ FocusWindowProc focusWindow;
+ WindowResizeNotifyProc windowResizeNotify;
+
+ CompMatch match;
+} FadeScreen;
+
+typedef struct _FadeWindow {
+ GLushort opacity;
+ GLushort brightness;
+ GLushort saturation;
+
+ int dModal;
+
+ int destroyCnt;
+ int unmapCnt;
+
+ Bool shaded;
+ Bool alive;
+ Bool fadeOut;
+
+ int steps;
+
+ int fadeTime;
+
+ int opacityDiff;
+ int brightnessDiff;
+ int saturationDiff;
+
+ GLushort targetOpacity;
+ GLushort targetBrightness;
+ GLushort targetSaturation;
+} FadeWindow;
+
+#define GET_FADE_DISPLAY(d) \
+ ((FadeDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define FADE_DISPLAY(d) \
+ FadeDisplay *fd = GET_FADE_DISPLAY (d)
+
+#define GET_FADE_SCREEN(s, fd) \
+ ((FadeScreen *) (s)->base.privates[(fd)->screenPrivateIndex].ptr)
+
+#define FADE_SCREEN(s) \
+ FadeScreen *fs = GET_FADE_SCREEN (s, GET_FADE_DISPLAY (s->display))
+
+#define GET_FADE_WINDOW(w, fs) \
+ ((FadeWindow *) (w)->base.privates[(fs)->windowPrivateIndex].ptr)
+
+#define FADE_WINDOW(w) \
+ FadeWindow *fw = GET_FADE_WINDOW (w, \
+ GET_FADE_SCREEN (w->screen, \
+ GET_FADE_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static void
+fadeUpdateWindowFadeMatch (CompDisplay *display,
+ CompOptionValue *value,
+ CompMatch *match)
+{
+ matchFini (match);
+ matchInit (match);
+ matchAddFromString (match, "!type=desktop");
+ matchAddGroup (match, MATCH_OP_AND_MASK, &value->match);
+ matchUpdate (display, match);
+}
+
+static CompOption *
+fadeGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ FADE_SCREEN (screen);
+
+ *count = NUM_OPTIONS (fs);
+ return fs->opt;
+}
+
+static Bool
+fadeSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ FADE_SCREEN (screen);
+
+ o = compFindOption (fs->opt, NUM_OPTIONS (fs), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case FADE_SCREEN_OPTION_FADE_SPEED:
+ if (compSetFloatOption (o, value))
+ {
+ fs->fadeTime = 1000.0f / o->value.f;
+ return TRUE;
+ }
+ break;
+ case FADE_SCREEN_OPTION_WINDOW_MATCH:
+ if (compSetMatchOption (o, value))
+ {
+ fadeUpdateWindowFadeMatch (screen->display, &o->value, &fs->match);
+ return TRUE;
+ }
+ break;
+ default:
+ if (compSetOption (o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+fadePreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ CompWindow *w;
+ int steps;
+
+ FADE_SCREEN (s);
+
+ switch (fs->opt[FADE_SCREEN_OPTION_FADE_MODE].value.i) {
+ case FADE_MODE_CONSTANTSPEED:
+ steps = (msSinceLastPaint * OPAQUE) / fs->fadeTime;
+ if (steps < 12)
+ steps = 12;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ FadeWindow *fw = GET_FADE_WINDOW (w, fs);
+ fw->steps = steps;
+ fw->fadeTime = 0;
+ }
+
+ break;
+ case FADE_MODE_CONSTANTTIME:
+ for (w = s->windows; w; w = w->next)
+ {
+ FadeWindow *fw = GET_FADE_WINDOW (w, fs);
+
+ if (fw->fadeTime)
+ {
+ fw->steps = 1;
+ fw->fadeTime -= msSinceLastPaint;
+ if (fw->fadeTime < 0)
+ fw->fadeTime = 0;
+ }
+ else
+ {
+ fw->steps = 0;
+ }
+ }
+
+ break;
+ }
+
+
+ UNWRAP (fs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (fs, s, preparePaintScreen, fadePreparePaintScreen);
+}
+
+static void
+fadeWindowStop (CompWindow *w)
+{
+ FADE_WINDOW (w);
+
+ while (fw->unmapCnt)
+ {
+ unmapWindow (w);
+ fw->unmapCnt--;
+ }
+
+ while (fw->destroyCnt)
+ {
+ destroyWindow (w);
+ fw->destroyCnt--;
+ }
+}
+
+static Bool
+fadePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ FADE_DISPLAY (s->display);
+ FADE_SCREEN (s);
+ FADE_WINDOW (w);
+
+ if (!w->screen->canDoSlightlySaturated)
+ fw->saturation = attrib->saturation;
+
+ if (!w->alive ||
+ fw->destroyCnt ||
+ fw->unmapCnt ||
+ fw->opacity != attrib->opacity ||
+ fw->brightness != attrib->brightness ||
+ fw->saturation != attrib->saturation ||
+ fd->displayModals)
+ {
+ WindowPaintAttrib fAttrib = *attrib;
+ int mode = fs->opt[FADE_SCREEN_OPTION_FADE_MODE].value.i;
+
+ if (!w->alive && fs->opt[FADE_SCREEN_OPTION_DIM_UNRESPONSIVE].value.b)
+ {
+ GLuint value;
+
+ value = fs->opt[FADE_SCREEN_OPTION_UNRESPONSIVE_BRIGHTNESS].value.i;
+ if (value != 100)
+ fAttrib.brightness = fAttrib.brightness * value / 100;
+
+ value = fs->opt[FADE_SCREEN_OPTION_UNRESPONSIVE_SATURATION].value.i;
+ if (value != 100 && s->canDoSlightlySaturated)
+ fAttrib.saturation = fAttrib.saturation * value / 100;
+ }
+ else if (fd->displayModals && !fw->dModal)
+ {
+ fAttrib.brightness = 0xa8a8;
+ fAttrib.saturation = 0;
+ }
+
+ if (fw->fadeOut)
+ fAttrib.opacity = 0;
+
+ if (mode == FADE_MODE_CONSTANTTIME)
+ {
+ if (fAttrib.opacity != fw->targetOpacity ||
+ fAttrib.brightness != fw->targetBrightness ||
+ fAttrib.saturation != fw->targetSaturation)
+ {
+ fw->fadeTime = fs->opt[FADE_SCREEN_OPTION_FADE_TIME].value.i;
+ fw->steps = 1;
+
+ fw->opacityDiff = fAttrib.opacity - fw->opacity;
+ fw->brightnessDiff = fAttrib.brightness - fw->brightness;
+ fw->saturationDiff = fAttrib.saturation - fw->saturation;
+
+ fw->targetOpacity = fAttrib.opacity;
+ fw->targetBrightness = fAttrib.brightness;
+ fw->targetSaturation = fAttrib.saturation;
+ }
+ }
+
+ if (fw->steps)
+ {
+ GLint opacity = OPAQUE;
+ GLint brightness = BRIGHT;
+ GLint saturation = COLOR;
+
+ if (mode == FADE_MODE_CONSTANTSPEED)
+ {
+ opacity = fw->opacity;
+ if (fAttrib.opacity > fw->opacity)
+ {
+ opacity = fw->opacity + fw->steps;
+ if (opacity > fAttrib.opacity)
+ opacity = fAttrib.opacity;
+ }
+ else if (fAttrib.opacity < fw->opacity)
+ {
+ opacity = fw->opacity - fw->steps;
+ if (opacity < fAttrib.opacity)
+ opacity = fAttrib.opacity;
+ }
+
+ brightness = fw->brightness;
+ if (fAttrib.brightness > fw->brightness)
+ {
+ brightness = fw->brightness + (fw->steps / 12);
+ if (brightness > fAttrib.brightness)
+ brightness = fAttrib.brightness;
+ }
+ else if (fAttrib.brightness < fw->brightness)
+ {
+ brightness = fw->brightness - (fw->steps / 12);
+ if (brightness < fAttrib.brightness)
+ brightness = fAttrib.brightness;
+ }
+
+ saturation = fw->saturation;
+ if (fAttrib.saturation > fw->saturation)
+ {
+ saturation = fw->saturation + (fw->steps / 6);
+ if (saturation > fAttrib.saturation)
+ saturation = fAttrib.saturation;
+ }
+ else if (fAttrib.saturation < fw->saturation)
+ {
+ saturation = fw->saturation - (fw->steps / 6);
+ if (saturation < fAttrib.saturation)
+ saturation = fAttrib.saturation;
+ }
+ }
+ else if (mode == FADE_MODE_CONSTANTTIME)
+ {
+ int fadeTime = fs->opt[FADE_SCREEN_OPTION_FADE_TIME].value.i;
+
+ opacity = fAttrib.opacity -
+ (fw->opacityDiff * fw->fadeTime / fadeTime);
+ brightness = fAttrib.brightness -
+ (fw->brightnessDiff * fw->fadeTime / fadeTime);
+ saturation = fAttrib.saturation -
+ (fw->saturationDiff * fw->fadeTime / fadeTime);
+ }
+
+ fw->steps = 0;
+
+ if (opacity > 0)
+ {
+ fw->opacity = opacity;
+ fw->brightness = brightness;
+ fw->saturation = saturation;
+
+ if (opacity != fAttrib.opacity ||
+ brightness != fAttrib.brightness ||
+ saturation != fAttrib.saturation)
+ addWindowDamage (w);
+ }
+ else
+ {
+ fw->opacity = 0;
+
+ fadeWindowStop (w);
+ }
+ }
+
+ fAttrib.opacity = fw->opacity;
+ fAttrib.brightness = fw->brightness;
+ fAttrib.saturation = fw->saturation;
+
+ UNWRAP (fs, s, paintWindow);
+ status = (*s->paintWindow) (w, &fAttrib, transform, region, mask);
+ WRAP (fs, s, paintWindow, fadePaintWindow);
+ }
+ else
+ {
+ UNWRAP (fs, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (fs, s, paintWindow, fadePaintWindow);
+ }
+
+ return status;
+}
+
+static void
+fadeAddDisplayModal (CompDisplay *d,
+ CompWindow *w)
+{
+ FADE_DISPLAY (d);
+ FADE_WINDOW (w);
+
+ if (!(w->state & CompWindowStateDisplayModalMask))
+ return;
+
+ if (fw->dModal)
+ return;
+
+ fw->dModal = 1;
+
+ fd->displayModals++;
+ if (fd->displayModals == 1)
+ {
+ CompScreen *s;
+ for (s = d->screens; s; s = s->next)
+ damageScreen (s);
+ }
+}
+
+static void
+fadeRemoveDisplayModal (CompDisplay *d,
+ CompWindow *w)
+{
+ FADE_DISPLAY (d);
+ FADE_WINDOW (w);
+
+ if (!fw->dModal)
+ return;
+
+ fw->dModal = 0;
+
+ fd->displayModals--;
+ if (fd->displayModals == 0)
+ {
+ CompScreen *s;
+ for (s = d->screens; s; s = s->next)
+ damageScreen (s);
+ }
+}
+
+/* Returns whether this window should be faded
+ * on open and close events. */
+static Bool
+isFadeWinForOpenClose (CompWindow *w)
+{
+ FADE_DISPLAY (w->screen->display);
+ FADE_SCREEN (w->screen);
+
+ if (fs->opt[FADE_SCREEN_OPTION_MINIMIZE_OPEN_CLOSE].value.b &&
+ !fd->suppressMinimizeOpenClose)
+ {
+ return TRUE;
+ }
+ return matchEval (&fd->alwaysFadeWindowMatch, w);
+}
+
+static void
+fadeHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompWindow *w;
+
+ FADE_DISPLAY (d);
+
+ switch (event->type) {
+ case DestroyNotify:
+ w = findWindowAtDisplay (d, event->xdestroywindow.window);
+ if (w)
+ {
+ FADE_SCREEN (w->screen);
+
+ if (w->texture->pixmap && isFadeWinForOpenClose (w) &&
+ matchEval (&fs->match, w))
+ {
+ FADE_WINDOW (w);
+
+ if (fw->opacity == 0xffff)
+ fw->opacity = 0xfffe;
+
+ fw->destroyCnt++;
+ w->destroyRefCnt++;
+
+ fw->fadeOut = TRUE;
+
+ addWindowDamage (w);
+ }
+
+ fadeRemoveDisplayModal (d, w);
+ }
+ break;
+ case UnmapNotify:
+ w = findWindowAtDisplay (d, event->xunmap.window);
+ if (w)
+ {
+ FADE_SCREEN (w->screen);
+ FADE_WINDOW (w);
+
+ fw->shaded = w->shaded;
+
+ if (fs->opt[FADE_SCREEN_OPTION_MINIMIZE_OPEN_CLOSE].value.b &&
+ !fd->suppressMinimizeOpenClose &&
+ !fw->shaded && w->texture->pixmap &&
+ matchEval (&fs->match, w))
+ {
+ if (fw->opacity == 0xffff)
+ fw->opacity = 0xfffe;
+
+ fw->unmapCnt++;
+ w->unmapRefCnt++;
+
+ fw->fadeOut = TRUE;
+
+ addWindowDamage (w);
+ }
+
+ fadeRemoveDisplayModal (d, w);
+ }
+ break;
+ case MapNotify:
+ w = findWindowAtDisplay (d, event->xmap.window);
+ if (w)
+ {
+ FADE_SCREEN (w->screen);
+
+ if (fs->opt[FADE_SCREEN_OPTION_MINIMIZE_OPEN_CLOSE].value.b &&
+ !fd->suppressMinimizeOpenClose)
+ {
+ fadeWindowStop (w);
+ }
+ if (w->state & CompWindowStateDisplayModalMask)
+ fadeAddDisplayModal (d, w);
+ }
+ break;
+ default:
+ if (event->type == d->xkbEvent)
+ {
+ XkbAnyEvent *xkbEvent = (XkbAnyEvent *) event;
+
+ if (xkbEvent->xkb_type == XkbBellNotify)
+ {
+ XkbBellNotifyEvent *xkbBellEvent = (XkbBellNotifyEvent *)
+ xkbEvent;
+
+ w = findWindowAtDisplay (d, xkbBellEvent->window);
+ if (!w)
+ w = findWindowAtDisplay (d, d->activeWindow);
+
+ if (w)
+ {
+ CompScreen *s = w->screen;
+
+ FADE_SCREEN (s);
+
+ if (fs->opt[FADE_SCREEN_OPTION_VISUAL_BELL].value.b)
+ {
+ int option;
+
+ option = FADE_SCREEN_OPTION_FULLSCREEN_VISUAL_BELL;
+ if (fs->opt[option].value.b)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->destroyed)
+ continue;
+
+ if (w->attrib.map_state != IsViewable)
+ continue;
+
+ if (w->damaged)
+ {
+ FADE_WINDOW (w);
+
+ fw->brightness = w->paint.brightness / 2;
+ }
+ }
+
+ damageScreen (s);
+ }
+ else
+ {
+ FADE_WINDOW (w);
+
+ fw->brightness = w->paint.brightness / 2;
+
+ addWindowDamage (w);
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+
+ UNWRAP (fd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (fd, d, handleEvent, fadeHandleEvent);
+
+ switch (event->type) {
+ case PropertyNotify:
+ if (event->xproperty.atom == d->winStateAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w && w->attrib.map_state == IsViewable)
+ {
+ if (w->state & CompWindowStateDisplayModalMask)
+ fadeAddDisplayModal (d, w);
+ else
+ fadeRemoveDisplayModal (d, w);
+ }
+ }
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->wmProtocolsAtom &&
+ event->xclient.data.l[0] == d->wmPingAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.data.l[2]);
+ if (w)
+ {
+ FADE_WINDOW (w);
+
+ if (w->alive != fw->alive)
+ {
+ addWindowDamage (w);
+ fw->alive = w->alive;
+ }
+ }
+ }
+ }
+}
+
+static Bool
+fadeDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status;
+
+ FADE_SCREEN (w->screen);
+
+ if (initial)
+ {
+ FADE_WINDOW (w);
+
+ fw->fadeOut = FALSE;
+
+ if (fw->shaded)
+ {
+ fw->shaded = w->shaded;
+ }
+ else if (matchEval (&fs->match, w))
+ {
+ if (isFadeWinForOpenClose (w))
+ {
+ fw->opacity = 0;
+ fw->targetOpacity = 0;
+ }
+ }
+ }
+
+ UNWRAP (fs, w->screen, damageWindowRect);
+ status = (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (fs, w->screen, damageWindowRect, fadeDamageWindowRect);
+
+ return status;
+}
+
+static Bool
+fadeFocusWindow (CompWindow *w)
+{
+ Bool status;
+
+ FADE_SCREEN (w->screen);
+ FADE_WINDOW (w);
+
+ if (fw->destroyCnt || fw->unmapCnt)
+ return FALSE;
+
+ UNWRAP (fs, w->screen, focusWindow);
+ status = (*w->screen->focusWindow) (w);
+ WRAP (fs, w->screen, focusWindow, fadeFocusWindow);
+
+ return status;
+}
+
+static void
+fadeWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ FADE_SCREEN (w->screen);
+
+ if (!w->mapNum)
+ fadeWindowStop (w);
+
+ UNWRAP (fs, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (fs, w->screen, windowResizeNotify, fadeWindowResizeNotify);
+}
+
+static void
+fadeMatchExpHandlerChanged (CompDisplay *d)
+{
+ CompScreen *s;
+
+ FADE_DISPLAY (d);
+
+ for (s = d->screens; s; s = s->next)
+ matchUpdate (d, &GET_FADE_SCREEN (s,fd)->match);
+
+ UNWRAP (fd, d, matchExpHandlerChanged);
+ (*d->matchExpHandlerChanged) (d);
+ WRAP (fd, d, matchExpHandlerChanged, fadeMatchExpHandlerChanged);
+}
+
+static Bool
+fadeInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ FadeDisplay *fd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ fd = malloc (sizeof (FadeDisplay));
+ if (!fd)
+ return FALSE;
+
+ fd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (fd->screenPrivateIndex < 0)
+ {
+ free (fd);
+ return FALSE;
+ }
+
+ fd->displayModals = 0;
+
+ fd->suppressMinimizeOpenClose = (findActivePlugin ("animation") != NULL);
+
+ /* Always fade opening and closing of screen-dimming layer of
+ logout window and gksu. */
+ matchInit (&fd->alwaysFadeWindowMatch);
+ matchAddExp (&fd->alwaysFadeWindowMatch, 0, "title=gksu");
+ matchAddExp (&fd->alwaysFadeWindowMatch, 0, "title=x-session-manager");
+ matchAddExp (&fd->alwaysFadeWindowMatch, 0, "title=gnome-session");
+ matchUpdate (d, &fd->alwaysFadeWindowMatch);
+
+ WRAP (fd, d, handleEvent, fadeHandleEvent);
+ WRAP (fd, d, matchExpHandlerChanged, fadeMatchExpHandlerChanged);
+
+ d->base.privates[displayPrivateIndex].ptr = fd;
+
+ return TRUE;
+}
+
+static void
+fadeFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ FADE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, fd->screenPrivateIndex);
+
+ matchFini (&fd->alwaysFadeWindowMatch);
+
+ UNWRAP (fd, d, handleEvent);
+ UNWRAP (fd, d, matchExpHandlerChanged);
+
+ free (fd);
+}
+
+static const CompMetadataOptionInfo fadeScreenOptionInfo[] = {
+ { "fade_mode", "int", RESTOSTRING (0, FADE_MODE_MAX), 0, 0 },
+ { "fade_speed", "float", "<min>0.1</min>", 0, 0 },
+ { "fade_time", "int", "<min>1</min>", 0, 0 },
+ { "window_match", "match", "<helper>true</helper>", 0, 0 },
+ { "visual_bell", "bool", 0, 0, 0 },
+ { "fullscreen_visual_bell", "bool", 0, 0, 0 },
+ { "minimize_open_close", "bool", 0, 0, 0 },
+ { "dim_unresponsive", "bool", 0, 0, 0 },
+ { "unresponsive_brightness", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "unresponsive_saturation", "int", "<min>0</min><max>100</max>", 0, 0 }
+};
+
+static Bool
+fadeInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ FadeScreen *fs;
+
+ FADE_DISPLAY (s->display);
+
+ fs = malloc (sizeof (FadeScreen));
+ if (!fs)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &fadeMetadata,
+ fadeScreenOptionInfo,
+ fs->opt,
+ FADE_SCREEN_OPTION_NUM))
+ {
+ free (fs);
+ return FALSE;
+ }
+
+ fs->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (fs->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, fs->opt, FADE_SCREEN_OPTION_NUM);
+ free (fs);
+ return FALSE;
+ }
+
+ fs->fadeTime = 1000.0f / fs->opt[FADE_SCREEN_OPTION_FADE_SPEED].value.f;
+
+ matchInit (&fs->match);
+
+ fadeUpdateWindowFadeMatch (s->display,
+ &fs->opt[FADE_SCREEN_OPTION_WINDOW_MATCH].value,
+ &fs->match);
+
+ WRAP (fs, s, preparePaintScreen, fadePreparePaintScreen);
+ WRAP (fs, s, paintWindow, fadePaintWindow);
+ WRAP (fs, s, damageWindowRect, fadeDamageWindowRect);
+ WRAP (fs, s, focusWindow, fadeFocusWindow);
+ WRAP (fs, s, windowResizeNotify, fadeWindowResizeNotify);
+
+ s->base.privates[fd->screenPrivateIndex].ptr = fs;
+
+ return TRUE;
+}
+
+static void
+fadeFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ FADE_SCREEN (s);
+
+ matchFini (&fs->match);
+
+ freeWindowPrivateIndex (s, fs->windowPrivateIndex);
+
+ UNWRAP (fs, s, preparePaintScreen);
+ UNWRAP (fs, s, paintWindow);
+ UNWRAP (fs, s, damageWindowRect);
+ UNWRAP (fs, s, focusWindow);
+ UNWRAP (fs, s, windowResizeNotify);
+
+ compFiniScreenOptions (s, fs->opt, FADE_SCREEN_OPTION_NUM);
+
+ free (fs);
+}
+
+static Bool
+fadeInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ FadeWindow *fw;
+
+ FADE_SCREEN (w->screen);
+
+ fw = malloc (sizeof (FadeWindow));
+ if (!fw)
+ return FALSE;
+
+ fw->opacity = w->paint.opacity;
+ fw->brightness = w->paint.brightness;
+ fw->saturation = w->paint.saturation;
+
+ fw->targetOpacity = fw->opacity;
+ fw->targetBrightness = fw->brightness;
+ fw->targetSaturation = fw->saturation;
+
+ fw->opacityDiff = 0;
+ fw->brightnessDiff = 0;
+ fw->saturationDiff = 0;
+
+ fw->dModal = 0;
+
+ fw->destroyCnt = 0;
+ fw->unmapCnt = 0;
+ fw->shaded = w->shaded;
+ fw->fadeOut = FALSE;
+ fw->alive = w->alive;
+
+ fw->steps = 0;
+ fw->fadeTime = 0;
+
+ w->base.privates[fs->windowPrivateIndex].ptr = fw;
+
+ if (w->attrib.map_state == IsViewable)
+ {
+ if (w->state & CompWindowStateDisplayModalMask)
+ fadeAddDisplayModal (w->screen->display, w);
+ }
+
+ return TRUE;
+}
+
+static void
+fadeFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ FADE_WINDOW (w);
+
+ fadeRemoveDisplayModal (w->screen->display, w);
+ fadeWindowStop (w);
+
+ free (fw);
+}
+
+static CompBool
+fadeInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) fadeInitDisplay,
+ (InitPluginObjectProc) fadeInitScreen,
+ (InitPluginObjectProc) fadeInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+fadeFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) fadeFiniDisplay,
+ (FiniPluginObjectProc) fadeFiniScreen,
+ (FiniPluginObjectProc) fadeFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+fadeGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) 0, /* GetDisplayOptions */
+ (GetPluginObjectOptionsProc) fadeGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+fadeSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) 0, /* SetDisplayOption */
+ (SetPluginObjectOptionProc) fadeSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+fadeInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&fadeMetadata, p->vTable->name, 0, 0,
+ fadeScreenOptionInfo,
+ FADE_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&fadeMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&fadeMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+fadeFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&fadeMetadata);
+}
+
+static CompMetadata *
+fadeGetMetadata (CompPlugin *plugin)
+{
+ return &fadeMetadata;
+}
+
+static CompPluginVTable fadeVTable = {
+ "fade",
+ fadeGetMetadata,
+ fadeInit,
+ fadeFini,
+ fadeInitObject,
+ fadeFiniObject,
+ fadeGetObjectOptions,
+ fadeSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &fadeVTable;
+}
diff --git a/plugins/fuse.c b/plugins/fuse.c
new file mode 100644
index 0000000..9c6c1d3
--- /dev/null
+++ b/plugins/fuse.c
@@ -0,0 +1,1442 @@
+/*
+ * Copyright © 2007 David Reveman
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * David Reveman not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * David Reveman makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DAVID REVEMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DAVID REVEMAN BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <poll.h>
+#include <signal.h>
+#include <sys/mount.h>
+#include <fuse.h>
+#include <fuse_lowlevel.h>
+
+#include <compiz-core.h>
+
+static CompMetadata fuseMetadata;
+
+#define FUSE_INODE_TYPE_ROOT (1 << 0)
+#define FUSE_INODE_TYPE_PLUGIN (1 << 1)
+#define FUSE_INODE_TYPE_SCREEN (1 << 2)
+#define FUSE_INODE_TYPE_DISPLAY (1 << 3)
+#define FUSE_INODE_TYPE_OPTION (1 << 4)
+#define FUSE_INODE_TYPE_TYPE (1 << 5)
+#define FUSE_INODE_TYPE_VALUE (1 << 6)
+#define FUSE_INODE_TYPE_ITEM_COUNT (1 << 7)
+#define FUSE_INODE_TYPE_ITEM_TYPE (1 << 8)
+#define FUSE_INODE_TYPE_ITEMS (1 << 9)
+#define FUSE_INODE_TYPE_ITEM_VALUE (1 << 10)
+#define FUSE_INODE_TYPE_MIN (1 << 11)
+#define FUSE_INODE_TYPE_MAX (1 << 12)
+#define FUSE_INODE_TYPE_PRECISION (1 << 13)
+
+#define DIR_MASK (FUSE_INODE_TYPE_ROOT | \
+ FUSE_INODE_TYPE_PLUGIN | \
+ FUSE_INODE_TYPE_SCREEN | \
+ FUSE_INODE_TYPE_DISPLAY | \
+ FUSE_INODE_TYPE_OPTION | \
+ FUSE_INODE_TYPE_ITEMS)
+
+#define CONST_DIR_MASK (FUSE_INODE_TYPE_PLUGIN | \
+ FUSE_INODE_TYPE_SCREEN | \
+ FUSE_INODE_TYPE_DISPLAY | \
+ FUSE_INODE_TYPE_OPTION)
+
+#define WRITE_MASK (FUSE_INODE_TYPE_VALUE | \
+ FUSE_INODE_TYPE_ITEM_VALUE)
+
+#define FUSE_INODE_FLAG_TRUNC (1 << 0)
+
+typedef struct _FuseInode {
+ struct _FuseInode *parent;
+ struct _FuseInode *child;
+ struct _FuseInode *sibling;
+
+ int type;
+ int flags;
+ fuse_ino_t ino;
+ char *name;
+} FuseInode;
+
+typedef struct _FuseWriteBuffer {
+ char *data;
+ int size;
+ Bool dirty;
+} FuseWriteBuffer;
+
+static int displayPrivateIndex;
+
+#define FUSE_DISPLAY_OPTION_MOUNT_POINT 0
+#define FUSE_DISPLAY_OPTION_NUM 1
+
+typedef struct _FuseDisplay {
+ CompOption opt[FUSE_DISPLAY_OPTION_NUM];
+
+ struct fuse_session *session;
+ struct fuse_chan *channel;
+ char *mountPoint;
+ CompWatchFdHandle watchFdHandle;
+ char *buffer;
+} FuseDisplay;
+
+#define GET_FUSE_DISPLAY(d) \
+ ((FuseDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define FUSE_DISPLAY(d) \
+ FuseDisplay *fd = GET_FUSE_DISPLAY (d)
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static fuse_ino_t nextIno = 1;
+static FuseInode *inodes = NULL;
+
+static FuseInode *
+fuseAddInode (FuseInode *parent,
+ int type,
+ const char *name)
+{
+ FuseInode *inode;
+
+ inode = malloc (sizeof (FuseInode));
+ if (!inode)
+ return NULL;
+
+ inode->parent = parent;
+ inode->sibling = NULL;
+ inode->child = NULL;
+ inode->type = type;
+ inode->flags = 0;
+ inode->ino = nextIno++;
+ inode->name = strdup (name);
+
+ if (parent)
+ {
+ if (parent->child)
+ inode->sibling = parent->child;
+
+ parent->child = inode;
+ }
+
+ return inode;
+}
+
+static void
+fuseRemoveInode (FuseInode *parent,
+ FuseInode *inode)
+{
+ while (inode->child)
+ fuseRemoveInode (inode, inode->child);
+
+ if (parent)
+ {
+ FuseInode *s, *prev = NULL;
+
+ for (s = parent->child; s; s = s->sibling)
+ {
+ if (s == inode)
+ break;
+
+ prev = s;
+ }
+
+ if (prev)
+ prev->sibling = inode->sibling;
+ else
+ parent->child = NULL;
+ }
+
+ if (inode->name)
+ free (inode->name);
+
+ free (inode);
+}
+
+static FuseInode *
+fuseFindInode (FuseInode *inode,
+ fuse_ino_t ino,
+ int mask)
+{
+ if (inode->ino != ino)
+ {
+ FuseInode *c = inode->child;
+
+ inode = NULL;
+ while (c)
+ {
+ inode = fuseFindInode (c, ino, ~0);
+ if (inode)
+ break;
+
+ c = c->sibling;
+ }
+ }
+
+ if (inode && (inode->type & mask))
+ return inode;
+
+ return NULL;
+}
+
+static FuseInode *
+fuseLookupChild (FuseInode *inode,
+ const char *name)
+{
+ FuseInode *c;
+
+ for (c = inode->child; c; c = c->sibling)
+ if (strcmp (c->name, name) == 0)
+ return c;
+
+ return NULL;
+}
+
+/* MULTIDPYERROR: only works with one or less displays present */
+/* OBJECTOPTION: only display and screen options are supported */
+static CompObject *
+fuseGetObjectFromInode (FuseInode *inode)
+{
+ CompObject *object;
+
+ object = compObjectFind (&core.base, COMP_OBJECT_TYPE_DISPLAY, NULL);
+ if (!object)
+ return NULL;
+
+ if (inode->type & FUSE_INODE_TYPE_SCREEN)
+ {
+ return compObjectFind (object, COMP_OBJECT_TYPE_SCREEN,
+ inode->name + 6);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_DISPLAY)
+ {
+ return object;
+ }
+
+ return NULL;
+}
+
+static CompOption *
+fuseGetOptionsFromInode (CompObject *object,
+ FuseInode *inode,
+ int *nOption)
+{
+ CompOption *option = NULL;
+
+ if (inode->type & FUSE_INODE_TYPE_PLUGIN)
+ {
+ CompPlugin *p;
+
+ p = findActivePlugin (inode->name);
+ if (p && p->vTable->getObjectOptions)
+ option = (*p->vTable->getObjectOptions) (p, object, nOption);
+ }
+
+ return option;
+}
+
+static CompOption *
+fuseGetOptionFromInode (FuseInode *inode)
+{
+ if (inode->type & (FUSE_INODE_TYPE_OPTION |
+ FUSE_INODE_TYPE_ITEMS))
+ {
+ CompObject *object;
+ CompOption *option;
+ int nOption;
+
+ if (inode->type & FUSE_INODE_TYPE_ITEMS)
+ inode = inode->parent;
+
+ object = fuseGetObjectFromInode (inode);
+ if (!object)
+ return NULL;
+
+ option = fuseGetOptionsFromInode (object, inode->parent, &nOption);
+ if (option)
+ {
+ while (nOption--)
+ {
+ if (strcmp (inode->name, option->name) == 0)
+ return option;
+
+ option++;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/* MULTIDPYERROR: only works with one or less displays present */
+static char *
+fuseGetStringFromInode (FuseInode *inode)
+{
+ CompOption *option;
+ char str[256];
+
+ if (!inode->parent)
+ return NULL;
+
+ option = fuseGetOptionFromInode (inode->parent);
+ if (!option)
+ return NULL;
+
+ if (inode->flags & FUSE_INODE_FLAG_TRUNC)
+ return strdup ("");
+
+ if (inode->type & FUSE_INODE_TYPE_TYPE)
+ {
+ return strdup (optionTypeToString (option->type));
+ }
+ else if (inode->type & (FUSE_INODE_TYPE_VALUE | FUSE_INODE_TYPE_ITEM_VALUE))
+ {
+ CompOptionValue *value = NULL;
+ CompOptionType type;
+
+ if (inode->type & FUSE_INODE_TYPE_ITEM_VALUE)
+ {
+ int i;
+
+ if (sscanf (inode->name, "value%d", &i))
+ {
+ if (i < option->value.list.nValue)
+ {
+ value = &option->value.list.value[i];
+ type = option->value.list.type;
+ }
+ }
+ }
+ else
+ {
+ value = &option->value;
+ type = option->type;
+ }
+
+ if (value)
+ {
+ switch (type) {
+ case CompOptionTypeBool:
+ return strdup (value->b ? "true" : "false");
+ case CompOptionTypeInt:
+ snprintf (str, 256, "%d", value->i);
+ return strdup (str);
+ case CompOptionTypeFloat:
+ snprintf (str, 256, "%f", value->f);
+ return strdup (str);
+ case CompOptionTypeString:
+ return strdup (value->s);
+ case CompOptionTypeColor:
+ return colorToString (value->c);
+ case CompOptionTypeKey:
+ if (core.displays)
+ return keyActionToString (core.displays, &value->action);
+ case CompOptionTypeButton:
+ if (core.displays)
+ return buttonActionToString (core.displays,
+ &value->action);
+ case CompOptionTypeEdge:
+ return edgeMaskToString (value->action.edgeMask);
+ case CompOptionTypeBell:
+ return strdup (value->action.bell ? "true" : "false");
+ case CompOptionTypeMatch:
+ return matchToString (&value->match);
+ default:
+ break;
+ }
+ }
+ }
+ else if (inode->type & FUSE_INODE_TYPE_MIN)
+ {
+ if (option->type == CompOptionTypeInt)
+ snprintf (str, 256, "%d", option->rest.i.min);
+ else
+ snprintf (str, 256, "%f", option->rest.f.min);
+
+ return strdup (str);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_MAX)
+ {
+ if (option->type == CompOptionTypeInt)
+ snprintf (str, 256, "%d", option->rest.i.max);
+ else
+ snprintf (str, 256, "%f", option->rest.f.max);
+
+ return strdup (str);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_PRECISION)
+ {
+ snprintf (str, 256, "%f", option->rest.f.precision);
+ return strdup (str);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_ITEM_COUNT)
+ {
+ snprintf (str, 256, "%d", option->value.list.nValue);
+ return strdup (str);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_ITEM_TYPE)
+ {
+ return strdup (optionTypeToString (option->value.list.type));
+ }
+
+ return NULL;
+}
+
+static void
+fuseUpdateInode (CompDisplay *d,
+ FuseInode *inode)
+{
+ CompScreen *s;
+ CompPlugin *p;
+ CompOption *option;
+ char str[256];
+
+ if (inode->type & FUSE_INODE_TYPE_ROOT)
+ {
+ FuseInode *c;
+
+ for (c = inode->child; c; c = c->sibling)
+ {
+ if (!findActivePlugin (c->name))
+ fuseRemoveInode (inode, c);
+ }
+
+ for (p = getPlugins (); p; p = p->next)
+ if (!fuseLookupChild (inode, p->vTable->name))
+ fuseAddInode (inode, FUSE_INODE_TYPE_PLUGIN,
+ p->vTable->name);
+ }
+ else if (inode->type & FUSE_INODE_TYPE_PLUGIN)
+ {
+ int n;
+
+ if (fuseGetOptionsFromInode (&d->base, inode, &n))
+ fuseAddInode (inode, FUSE_INODE_TYPE_DISPLAY, "allscreens");
+
+ for (s = d->screens; s; s = s->next)
+ {
+ if (fuseGetOptionsFromInode (&s->base, inode, &n))
+ {
+ sprintf (str, "screen%d", s->screenNum);
+ fuseAddInode (inode, FUSE_INODE_TYPE_SCREEN, str);
+ }
+ }
+ }
+ else if (inode->type & (FUSE_INODE_TYPE_DISPLAY | FUSE_INODE_TYPE_SCREEN))
+ {
+ CompObject *object;
+
+ object = fuseGetObjectFromInode (inode);
+ if (object)
+ {
+ int nOption;
+
+ option = fuseGetOptionsFromInode (object, inode->parent, &nOption);
+ if (option)
+ {
+ while (nOption--)
+ {
+ fuseAddInode (inode, FUSE_INODE_TYPE_OPTION, option->name);
+
+ option++;
+ }
+ }
+ }
+ }
+ else if (inode->type & FUSE_INODE_TYPE_OPTION)
+ {
+ option = fuseGetOptionFromInode (inode);
+ if (option)
+ {
+ fuseAddInode (inode, FUSE_INODE_TYPE_TYPE, "type");
+
+ switch (option->type) {
+ case CompOptionTypeFloat:
+ fuseAddInode (inode, FUSE_INODE_TYPE_PRECISION, "precision");
+ /* fall-through */
+ case CompOptionTypeInt:
+ fuseAddInode (inode, FUSE_INODE_TYPE_MIN, "min");
+ fuseAddInode (inode, FUSE_INODE_TYPE_MAX, "max");
+ /* fall-through */
+ case CompOptionTypeBool:
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ case CompOptionTypeMatch:
+ fuseAddInode (inode, FUSE_INODE_TYPE_VALUE, "value");
+ break;
+ case CompOptionTypeList:
+ fuseAddInode (inode, FUSE_INODE_TYPE_ITEMS, "items");
+ fuseAddInode (inode, FUSE_INODE_TYPE_ITEM_COUNT,
+ "number_of_items");
+ fuseAddInode (inode, FUSE_INODE_TYPE_ITEM_TYPE, "item_type");
+ default:
+ break;
+ }
+ }
+ }
+ else if (inode->type & FUSE_INODE_TYPE_ITEMS)
+ {
+ option = fuseGetOptionFromInode (inode->parent);
+ if (option && option->type == CompOptionTypeList)
+ {
+ FuseInode *c, *next;
+ int i, nValue = option->value.list.nValue;
+
+ for (i = 0; i < option->value.list.nValue; i++)
+ {
+ sprintf (str, "value%d", i);
+ if (!fuseLookupChild (inode, str))
+ fuseAddInode (inode, FUSE_INODE_TYPE_ITEM_VALUE, str);
+ }
+
+ for (c = inode->child; c; c = next)
+ {
+ next = c->sibling;
+
+ if (sscanf (c->name, "value%d", &i) == 0 || i >= nValue)
+ fuseRemoveInode (inode, c);
+ }
+ }
+ }
+}
+
+static void
+fuseInodeStat (CompDisplay *d,
+ FuseInode *inode,
+ struct stat *stbuf)
+{
+ stbuf->st_ino = inode->ino;
+
+ if (inode->type & DIR_MASK)
+ {
+ stbuf->st_mode = S_IFDIR | 0755;
+ stbuf->st_nlink = 2;
+ }
+ else
+ {
+ char *str;
+
+ if (inode->type & WRITE_MASK)
+ stbuf->st_mode = S_IFREG | 0666;
+ else
+ stbuf->st_mode = S_IFREG | 0444;
+
+ stbuf->st_nlink = 1;
+ stbuf->st_size = 0;
+
+ str = fuseGetStringFromInode (inode);
+ if (str)
+ {
+ stbuf->st_size = strlen (str);
+ free (str);
+ }
+ }
+}
+
+static Bool
+fuseInitValue (CompOptionValue *value,
+ CompOptionType type,
+ CompOptionValue *src)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ value->b = src->b;
+ break;
+ case CompOptionTypeInt:
+ value->i = src->i;
+ break;
+ case CompOptionTypeFloat:
+ value->f = src->f;
+ break;
+ case CompOptionTypeString:
+ value->s = strdup (src->s);
+ break;
+ case CompOptionTypeColor:
+ memcpy (value->c, src->c, sizeof (*src->c));
+ break;
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ value->action = src->action;
+ break;
+ case CompOptionTypeMatch:
+ matchInit (&value->match);
+ matchCopy (&value->match, &src->match);
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+fuseInitValueFromString (CompObject *object,
+ CompOptionValue *value,
+ CompOptionType type,
+ char *str)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ value->b = strcmp (str, "true") ? FALSE : TRUE;
+ break;
+ case CompOptionTypeInt:
+ value->i = atoi (str);
+ break;
+ case CompOptionTypeFloat:
+ value->f = strtod (str, NULL);
+ break;
+ case CompOptionTypeString:
+ value->s = strdup (str);
+ break;
+ case CompOptionTypeColor:
+ if (!stringToColor (str, value->c))
+ return FALSE;
+ break;
+ case CompOptionTypeKey:
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToKeyAction (GET_CORE_DISPLAY (object), str, &value->action);
+ break;
+ case CompOptionTypeButton:
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToButtonAction (GET_CORE_DISPLAY (object), str, &value->action);
+ break;
+ case CompOptionTypeEdge:
+ value->action.edgeMask = stringToEdgeMask (str);
+ break;
+ case CompOptionTypeBell:
+ value->action.bell = strcmp (str, "true") ? FALSE : TRUE;
+ break;
+ case CompOptionTypeMatch:
+ matchInit (&value->match);
+ matchAddFromString (&value->match, str);
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+fuseSetInodeOptionUsingString (FuseInode *inode,
+ char *str)
+{
+ CompOption *option;
+
+ option = fuseGetOptionFromInode (inode->parent);
+ if (option)
+ {
+ CompOptionValue value;
+ CompObject *object;
+ const char *pluginName;
+
+ if (inode->type & FUSE_INODE_TYPE_VALUE)
+ {
+ object = fuseGetObjectFromInode (inode->parent->parent);
+ if (!object)
+ return;
+
+ if (!fuseInitValueFromString (object, &value, option->type, str))
+ return;
+
+ pluginName = inode->parent->parent->parent->name;
+ }
+ else if (inode->type & FUSE_INODE_TYPE_ITEM_VALUE)
+ {
+ int i, item, nValue = option->value.list.nValue;
+
+ if (!sscanf (inode->name, "value%d", &item))
+ return;
+
+ if (item >= nValue)
+ return;
+
+ object = fuseGetObjectFromInode (inode->parent->parent->parent);
+ if (!object)
+ return;
+
+ value.list.value = malloc (sizeof (CompOptionValue) * nValue);
+ if (!value.list.value)
+ return;
+
+ value.list.type = option->value.list.type;
+ value.list.nValue = 0;
+
+ for (i = 0; i < nValue; i++)
+ {
+ if (i == item)
+ {
+ if (!fuseInitValueFromString (object,
+ &value.list.value[i],
+ value.list.type,
+ str))
+ break;
+ }
+ else
+ {
+ if (!fuseInitValue (&value.list.value[i],
+ value.list.type,
+ &option->value.list.value[i]))
+ break;
+ }
+
+ value.list.nValue++;
+ }
+
+ /* failed */
+ if (value.list.nValue < nValue)
+ {
+ compFiniOptionValue (&value, option->type);
+ return;
+ }
+
+ pluginName = inode->parent->parent->parent->parent->name;
+ }
+ else
+ {
+ return;
+ }
+
+ (*core.setOptionForPlugin) (object, pluginName, option->name, &value);
+
+ compFiniOptionValue (&value, option->type);
+ }
+}
+
+static void
+compiz_getattr (fuse_req_t req,
+ fuse_ino_t ino,
+ struct fuse_file_info *fi)
+{
+ CompDisplay *d = (CompDisplay *) fuse_req_userdata (req);
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, ~0);
+ if (inode)
+ {
+ struct stat stbuf;
+
+ memset (&stbuf, 0, sizeof (stbuf));
+
+ fuseInodeStat (d, inode, &stbuf);
+
+ fuse_reply_attr (req, &stbuf, 1.0);
+ }
+ else
+ {
+ fuse_reply_err (req, ENOENT);
+ }
+}
+
+static void
+compiz_setattr (fuse_req_t req,
+ fuse_ino_t ino,
+ struct stat *attr,
+ int to_set,
+ struct fuse_file_info *fi)
+{
+ CompDisplay *d = (CompDisplay *) fuse_req_userdata (req);
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, WRITE_MASK);
+ if (inode)
+ {
+ struct stat stbuf;
+
+ if ((to_set & FUSE_SET_ATTR_SIZE) != FUSE_SET_ATTR_SIZE)
+ {
+ fuse_reply_err (req, EACCES);
+ return;
+ }
+
+ if (attr->st_size != 0)
+ {
+ fuse_reply_err (req, EACCES);
+ return;
+ }
+
+ inode->flags |= FUSE_INODE_FLAG_TRUNC;
+
+ memset (&stbuf, 0, sizeof (stbuf));
+
+ fuseInodeStat (d, inode, &stbuf);
+
+ fuse_reply_attr (req, &stbuf, 1.0);
+ }
+ else
+ {
+ fuse_reply_err (req, ENOENT);
+ }
+}
+
+static void
+compiz_lookup (fuse_req_t req,
+ fuse_ino_t parent,
+ const char *name)
+{
+ CompDisplay *d = (CompDisplay *) fuse_req_userdata (req);
+ FuseInode *inode;
+ struct fuse_entry_param e;
+
+ inode = fuseFindInode (inodes, parent, DIR_MASK);
+ if (!inode)
+ {
+ fuse_reply_err (req, ENOENT);
+ return;
+ }
+
+ if (!inode->child || !(inode->type & CONST_DIR_MASK))
+ fuseUpdateInode (d, inode);
+
+ inode = fuseLookupChild (inode, name);
+ if (!inode)
+ {
+ fuse_reply_err (req, ENOENT);
+ return;
+ }
+
+ memset (&e, 0, sizeof (e));
+
+ e.attr_timeout = 1.0;
+ e.entry_timeout = 1.0;
+ e.ino = inode->ino;
+
+ fuseInodeStat (d, inode, &e.attr);
+
+ fuse_reply_entry (req, &e);
+}
+
+struct dirbuf {
+ char *p;
+ size_t size;
+};
+
+static void
+dirbuf_add (fuse_req_t req,
+ struct dirbuf *b,
+ const char *name,
+ fuse_ino_t ino)
+{
+ struct stat stbuf;
+ size_t oldSize = b->size;
+
+ b->size += fuse_add_direntry (req, NULL, 0, name, NULL, 0);
+ b->p = (char *) realloc (b->p, b->size);
+
+ memset (&stbuf, 0, sizeof (stbuf));
+
+ stbuf.st_ino = ino;
+
+ fuse_add_direntry (req, b->p + oldSize, b->size - oldSize, name, &stbuf,
+ b->size);
+}
+
+static int
+reply_buf_limited (fuse_req_t req,
+ const char *buf,
+ size_t bufsize,
+ off_t off,
+ size_t maxsize)
+{
+ if (off < bufsize)
+ return fuse_reply_buf (req, buf + off, MIN (bufsize - off, maxsize));
+ else
+ return fuse_reply_buf (req, NULL, 0);
+}
+
+static void
+compiz_readdir (fuse_req_t req,
+ fuse_ino_t ino,
+ size_t size,
+ off_t off,
+ struct fuse_file_info *fi)
+{
+ CompDisplay *d = (CompDisplay *) fuse_req_userdata (req);
+ FuseInode *inode, *c;
+ struct dirbuf b;
+
+ inode = fuseFindInode (inodes, ino, DIR_MASK);
+ if (!inode)
+ {
+ fuse_reply_err (req, ENOTDIR);
+ return;
+ }
+
+ memset (&b, 0, sizeof (b));
+
+ dirbuf_add (req, &b, ".", ino);
+ dirbuf_add (req, &b, "..", inode->parent ? inode->parent->ino : ino);
+
+ if (!inode->child || !(inode->type & CONST_DIR_MASK))
+ fuseUpdateInode (d, inode);
+
+ for (c = inode->child; c; c = c->sibling)
+ dirbuf_add (req, &b, c->name, c->ino);
+
+ reply_buf_limited (req, b.p, b.size, off, size);
+
+ free (b.p);
+}
+
+static void
+compiz_open (fuse_req_t req,
+ fuse_ino_t ino,
+ struct fuse_file_info *fi)
+{
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, ~0);
+ if (!inode)
+ {
+ fuse_reply_err (req, ENOENT);
+ return;
+ }
+
+ fi->fh = 0;
+
+ if (inode->type & DIR_MASK)
+ {
+ fuse_reply_err (req, EISDIR);
+ }
+ else if (inode->type & WRITE_MASK)
+ {
+ if ((fi->flags & 3) != O_RDONLY)
+ {
+ char *data;
+
+ if (fi->flags & O_TRUNC)
+ data = strdup ("");
+ else
+ data = fuseGetStringFromInode (inode);
+
+ if (data)
+ {
+ FuseWriteBuffer *wb;
+
+ wb = malloc (sizeof (FuseWriteBuffer));
+ if (wb)
+ {
+ wb->data = data;
+ wb->size = strlen (wb->data);
+ wb->dirty = TRUE;
+
+ fi->fh = (unsigned long) wb;
+ }
+ else
+ {
+ free (data);
+ }
+ }
+ }
+
+ fuse_reply_open (req, fi);
+ }
+ else if ((fi->flags & 3) != O_RDONLY)
+ {
+ fuse_reply_err (req, EACCES);
+ }
+ else
+ {
+ fuse_reply_open (req, fi);
+ }
+}
+
+static void
+compiz_read (fuse_req_t req,
+ fuse_ino_t ino,
+ size_t size,
+ off_t off,
+ struct fuse_file_info *fi)
+{
+ FuseInode *inode;
+ char *str = NULL;
+
+ inode = fuseFindInode (inodes, ino, ~0);
+ if (inode)
+ str = fuseGetStringFromInode (inode);
+
+ if (str)
+ {
+ reply_buf_limited (req, str, strlen (str), off, size);
+ free (str);
+ }
+ else
+ {
+ reply_buf_limited (req, NULL, 0, off, size);
+ }
+}
+
+static void
+compiz_write (fuse_req_t req,
+ fuse_ino_t ino,
+ const char *buf,
+ size_t size,
+ off_t off,
+ struct fuse_file_info *fi)
+{
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, WRITE_MASK);
+ if (inode && fi->fh)
+ {
+ FuseWriteBuffer *wb = (FuseWriteBuffer *) (uintptr_t) fi->fh;
+
+ if (off + size > wb->size)
+ {
+ char *data;
+
+ data = realloc (wb->data, off + size + 1);
+ if (!data)
+ {
+ fuse_reply_err (req, ENOBUFS);
+ return;
+ }
+
+ data[off + size] = '\0';
+
+ wb->data = data;
+ wb->size = off + size;
+ }
+
+ memcpy (wb->data + off, buf, size);
+
+ wb->dirty = TRUE;
+
+ fuse_reply_write (req, size);
+ }
+ else
+ {
+ fuse_reply_err (req, ENOENT);
+ }
+}
+
+static void
+compiz_release (fuse_req_t req,
+ fuse_ino_t ino,
+ struct fuse_file_info *fi)
+{
+ if (fi->fh)
+ {
+ FuseWriteBuffer *wb = (FuseWriteBuffer *) (uintptr_t) fi->fh;
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, WRITE_MASK);
+ if (inode && wb->dirty)
+ {
+ fuseSetInodeOptionUsingString (inode, wb->data);
+
+ inode->flags &= ~FUSE_INODE_FLAG_TRUNC;
+ }
+
+ free (wb->data);
+ free (wb);
+ }
+
+ fuse_reply_err (req, 0);
+}
+
+static void
+compiz_fsync (fuse_req_t req,
+ fuse_ino_t ino,
+ int datasync,
+ struct fuse_file_info *fi)
+{
+ if (fi->fh)
+ {
+ FuseWriteBuffer *wb = (FuseWriteBuffer *) (uintptr_t) fi->fh;
+ FuseInode *inode;
+
+ inode = fuseFindInode (inodes, ino, WRITE_MASK);
+ if (inode && wb->dirty)
+ {
+ fuseSetInodeOptionUsingString (inode, wb->data);
+
+ inode->flags &= ~FUSE_INODE_FLAG_TRUNC;
+
+ wb->dirty = FALSE;
+ }
+ }
+
+ fuse_reply_err (req, 0);
+}
+
+static struct fuse_lowlevel_ops compiz_ll_oper = {
+ .lookup = compiz_lookup,
+ .getattr = compiz_getattr,
+ .setattr = compiz_setattr,
+ .readdir = compiz_readdir,
+ .open = compiz_open,
+ .read = compiz_read,
+ .write = compiz_write,
+ .release = compiz_release,
+ .fsync = compiz_fsync
+};
+
+static void
+fuseUnmount (CompDisplay *d)
+{
+ FUSE_DISPLAY (d);
+
+ if (fd->watchFdHandle)
+ {
+ compRemoveWatchFd (fd->watchFdHandle);
+ fd->watchFdHandle = 0;
+ }
+
+ if (fd->mountPoint)
+ {
+ /* unmount will destroy the channel */
+ fuse_unmount (fd->mountPoint, fd->channel);
+ free (fd->mountPoint);
+ fd->mountPoint = NULL;
+ fd->channel = NULL;
+ }
+
+ if (fd->buffer)
+ {
+ free (fd->buffer);
+ fd->buffer = NULL;
+ }
+}
+
+static Bool
+fuseProcessMessages (void *data)
+{
+ CompDisplay *d = (CompDisplay *) data;
+ struct fuse_chan *channel;
+ size_t bufferSize;
+ int res = 0;
+
+ FUSE_DISPLAY (d);
+
+ channel = fuse_session_next_chan (fd->session, NULL);
+ bufferSize = fuse_chan_bufsize (channel);
+
+ if (fuse_session_exited (fd->session))
+ return FALSE;
+
+ for (;;)
+ {
+ struct fuse_chan *tmpch = channel;
+
+ res = fuse_chan_recv (&tmpch, fd->buffer, bufferSize);
+ if (res == -EINTR)
+ continue;
+
+ if (res > 0)
+ fuse_session_process (fd->session, fd->buffer, res, tmpch);
+
+ break;
+ }
+
+ return TRUE;
+}
+
+static void
+fuseMount (CompDisplay *d)
+{
+ char *mountPoint;
+ struct fuse_args args = FUSE_ARGS_INIT (0, NULL);
+
+ FUSE_DISPLAY (d);
+
+ mountPoint = strdup (fd->opt[FUSE_DISPLAY_OPTION_MOUNT_POINT].value.s);
+ if (!mountPoint)
+ return;
+
+ fuse_opt_add_arg (&args, "");
+ fuse_opt_add_arg (&args, "-o");
+ fuse_opt_add_arg (&args, "allow_root");
+
+ fd->channel = fuse_mount (mountPoint, &args);
+ if (!fd->channel)
+ {
+ fuse_opt_free_args (&args);
+ free (mountPoint);
+ return;
+ }
+
+ fuse_opt_free_args (&args);
+
+ fd->buffer = malloc (fuse_chan_bufsize (fd->channel));
+ if (!fd->buffer)
+ {
+ fuse_unmount (mountPoint, fd->channel);
+ free (mountPoint);
+ fd->channel = NULL;
+ return;
+ }
+
+ fd->mountPoint = mountPoint;
+
+ fuse_session_add_chan (fd->session, fd->channel);
+
+ fd->watchFdHandle = compAddWatchFd (fuse_chan_fd (fd->channel),
+ POLLIN | POLLPRI | POLLHUP | POLLERR,
+ fuseProcessMessages,
+ d);
+}
+
+static CompOption *
+fuseGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ FUSE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (fd);
+ return fd->opt;
+}
+
+static Bool
+fuseSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ FUSE_DISPLAY (display);
+
+ o = compFindOption (fd->opt, NUM_OPTIONS (fd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case FUSE_DISPLAY_OPTION_MOUNT_POINT:
+ if (compSetStringOption (o, value))
+ {
+ fuseUnmount (display);
+ fuseMount (display);
+ return TRUE;
+ }
+ default:
+ break;
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo fuseDisplayOptionInfo[] = {
+ { "mount_point", "string", 0, 0, 0 }
+};
+
+static Bool
+fuseInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ FuseDisplay *fd;
+ struct sigaction sa;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ memset (&sa, 0, sizeof (struct sigaction));
+
+ sa.sa_handler = SIG_IGN;
+ sigemptyset (&sa.sa_mask);
+ sa.sa_flags = 0;
+
+ if (sigaction (SIGPIPE, &sa, NULL) == -1)
+ return FALSE;
+
+ fd = malloc (sizeof (FuseDisplay));
+ if (!fd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &fuseMetadata,
+ fuseDisplayOptionInfo,
+ fd->opt,
+ FUSE_DISPLAY_OPTION_NUM))
+ {
+ free (fd);
+ return FALSE;
+ }
+
+ fd->session = fuse_lowlevel_new (NULL,
+ &compiz_ll_oper, sizeof (compiz_ll_oper),
+ (void *) d);
+ if (!fd->session)
+ {
+ compFiniDisplayOptions (d, fd->opt, FUSE_DISPLAY_OPTION_NUM);
+ free (fd);
+ return FALSE;
+ }
+
+ fd->watchFdHandle = 0;
+ fd->channel = NULL;
+ fd->buffer = NULL;
+ fd->mountPoint = NULL;
+
+ d->base.privates[displayPrivateIndex].ptr = fd;
+
+ fuseMount (d);
+
+ return TRUE;
+}
+
+static void
+fuseFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ FUSE_DISPLAY (d);
+
+ fuseUnmount (d);
+
+ fuse_session_destroy (fd->session);
+
+ compFiniDisplayOptions (d, fd->opt, FUSE_DISPLAY_OPTION_NUM);
+
+ free (fd);
+}
+
+static Bool
+fuseInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&fuseMetadata,
+ p->vTable->name,
+ fuseDisplayOptionInfo,
+ FUSE_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ inodes = fuseAddInode (NULL, FUSE_INODE_TYPE_ROOT, ".");
+ if (!inodes)
+ {
+ compFiniMetadata (&fuseMetadata);
+ return FALSE;
+ }
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ fuseRemoveInode (NULL, inodes);
+ compFiniMetadata (&fuseMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&fuseMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static CompBool
+fuseInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) fuseInitDisplay
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+fuseFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) fuseFiniDisplay
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+fuseGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) fuseGetDisplayOptions
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) (*count = 0), (plugin, object, count));
+}
+
+static CompBool
+fuseSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) fuseSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static void
+fuseFini (CompPlugin *p)
+{
+ fuseRemoveInode (NULL, inodes);
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&fuseMetadata);
+}
+
+static CompMetadata *
+fuseGetMetadata (CompPlugin *plugin)
+{
+ return &fuseMetadata;
+}
+
+CompPluginVTable fuseVTable = {
+ "fs",
+ fuseGetMetadata,
+ fuseInit,
+ fuseFini,
+ fuseInitObject,
+ fuseFiniObject,
+ fuseGetObjectOptions,
+ fuseSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &fuseVTable;
+}
diff --git a/plugins/gconf.c b/plugins/gconf.c
new file mode 100644
index 0000000..b34b10a
--- /dev/null
+++ b/plugins/gconf.c
@@ -0,0 +1,849 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#define _GNU_SOURCE
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <gconf/gconf-client.h>
+
+#include <compiz-core.h>
+
+static CompMetadata gconfMetadata;
+
+#define APP_NAME "compiz"
+
+/* From gconf-internal.h. Bleah. */
+int gconf_value_compare (const GConfValue *value_a,
+ const GConfValue *value_b);
+
+static int corePrivateIndex;
+
+typedef struct _GConfCore {
+ GConfClient *client;
+ guint cnxn;
+
+ CompTimeoutHandle reloadHandle;
+
+ InitPluginForObjectProc initPluginForObject;
+ SetOptionForPluginProc setOptionForPlugin;
+} GConfCore;
+
+#define GET_GCONF_CORE(c) \
+ ((GConfCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define GCONF_CORE(c) \
+ GConfCore *gc = GET_GCONF_CORE (c)
+
+
+static gchar *
+gconfGetKey (CompObject *object,
+ const gchar *plugin,
+ const gchar *option)
+{
+ const gchar *type;
+ gchar *key, *name, *objectName;
+
+ type = compObjectTypeName (object->type);
+ if (strcmp (type, "display") == 0)
+ type = "allscreens";
+
+ name = compObjectName (object);
+ if (name)
+ {
+ objectName = g_strdup_printf ("%s%s", type, name);
+ free (name);
+ }
+ else
+ objectName = g_strdup (type);
+
+ if (strcmp (plugin, "core") == 0)
+ key = g_strjoin ("/", "/apps", APP_NAME, "general", objectName,
+ "options", option, NULL);
+ else
+ key = g_strjoin ("/", "/apps", APP_NAME, "plugins", plugin, objectName,
+ "options", option, NULL);
+
+ g_free (objectName);
+
+ return key;
+}
+
+static GConfValueType
+gconfTypeFromCompType (CompOptionType type)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ case CompOptionTypeBell:
+ return GCONF_VALUE_BOOL;
+ case CompOptionTypeInt:
+ return GCONF_VALUE_INT;
+ case CompOptionTypeFloat:
+ return GCONF_VALUE_FLOAT;
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeMatch:
+ return GCONF_VALUE_STRING;
+ case CompOptionTypeList:
+ return GCONF_VALUE_LIST;
+ default:
+ break;
+ }
+
+ return GCONF_VALUE_INVALID;
+}
+
+static void
+gconfSetValue (CompObject *object,
+ CompOptionValue *value,
+ CompOptionType type,
+ GConfValue *gvalue)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ gconf_value_set_bool (gvalue, value->b);
+ break;
+ case CompOptionTypeInt:
+ gconf_value_set_int (gvalue, value->i);
+ break;
+ case CompOptionTypeFloat:
+ gconf_value_set_float (gvalue, value->f);
+ break;
+ case CompOptionTypeString:
+ gconf_value_set_string (gvalue, value->s);
+ break;
+ case CompOptionTypeColor: {
+ gchar *color;
+
+ color = colorToString (value->c);
+ gconf_value_set_string (gvalue, color);
+
+ free (color);
+ } break;
+ case CompOptionTypeKey: {
+ gchar *action;
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return;
+
+ action = keyActionToString (GET_CORE_DISPLAY (object), &value->action);
+ gconf_value_set_string (gvalue, action);
+
+ free (action);
+ } break;
+ case CompOptionTypeButton: {
+ gchar *action;
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return;
+
+ action = buttonActionToString (GET_CORE_DISPLAY (object),
+ &value->action);
+ gconf_value_set_string (gvalue, action);
+
+ free (action);
+ } break;
+ case CompOptionTypeEdge: {
+ gchar *edge;
+
+ edge = edgeMaskToString (value->action.edgeMask);
+ gconf_value_set_string (gvalue, edge);
+
+ free (edge);
+ } break;
+ case CompOptionTypeBell:
+ gconf_value_set_bool (gvalue, value->action.bell);
+ break;
+ case CompOptionTypeMatch: {
+ gchar *match;
+
+ match = matchToString (&value->match);
+ gconf_value_set_string (gvalue, match);
+
+ free (match);
+ } break;
+ default:
+ break;
+ }
+}
+
+static void
+gconfSetOption (CompObject *object,
+ CompOption *o,
+ const gchar *plugin)
+{
+ GConfValueType type = gconfTypeFromCompType (o->type);
+ GConfValue *gvalue, *existingValue = NULL;
+ gchar *key;
+
+ GCONF_CORE (&core);
+
+ if (type == GCONF_VALUE_INVALID)
+ return;
+
+ key = gconfGetKey (object, plugin, o->name);
+
+ existingValue = gconf_client_get (gc->client, key, NULL);
+ gvalue = gconf_value_new (type);
+
+ if (o->type == CompOptionTypeList)
+ {
+ GSList *node, *list = NULL;
+ GConfValue *gv;
+ int i;
+
+ type = gconfTypeFromCompType (o->value.list.type);
+
+ for (i = 0; i < o->value.list.nValue; i++)
+ {
+ gv = gconf_value_new (type);
+ gconfSetValue (object, &o->value.list.value[i],
+ o->value.list.type, gv);
+ list = g_slist_append (list, gv);
+ }
+
+ gconf_value_set_list_type (gvalue, type);
+ gconf_value_set_list (gvalue, list);
+
+ if (!existingValue || gconf_value_compare (existingValue, gvalue))
+ gconf_client_set (gc->client, key, gvalue, NULL);
+
+ for (node = list; node; node = node->next)
+ gconf_value_free ((GConfValue *) node->data);
+
+ g_slist_free (list);
+ }
+ else
+ {
+ gconfSetValue (object, &o->value, o->type, gvalue);
+
+ if (!existingValue || gconf_value_compare (existingValue, gvalue))
+ gconf_client_set (gc->client, key, gvalue, NULL);
+ }
+
+ gconf_value_free (gvalue);
+
+ if (existingValue)
+ gconf_value_free (existingValue);
+
+ g_free (key);
+}
+
+static Bool
+gconfGetValue (CompObject *object,
+ CompOptionValue *value,
+ CompOptionType type,
+ GConfValue *gvalue)
+
+{
+ if (type == CompOptionTypeBool &&
+ gvalue->type == GCONF_VALUE_BOOL)
+ {
+ value->b = gconf_value_get_bool (gvalue);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeInt &&
+ gvalue->type == GCONF_VALUE_INT)
+ {
+ value->i = gconf_value_get_int (gvalue);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeFloat &&
+ gvalue->type == GCONF_VALUE_FLOAT)
+ {
+ value->f = gconf_value_get_float (gvalue);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeString &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const char *str;
+
+ str = gconf_value_get_string (gvalue);
+ if (str)
+ {
+ value->s = strdup (str);
+ if (value->s)
+ return TRUE;
+ }
+ }
+ else if (type == CompOptionTypeColor &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const gchar *color;
+
+ color = gconf_value_get_string (gvalue);
+
+ if (stringToColor (color, value->c))
+ return TRUE;
+ }
+ else if (type == CompOptionTypeKey &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const gchar *action;
+
+ action = gconf_value_get_string (gvalue);
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToKeyAction (GET_CORE_DISPLAY (object), action, &value->action);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeButton &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const gchar *action;
+
+ action = gconf_value_get_string (gvalue);
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToButtonAction (GET_CORE_DISPLAY (object), action,
+ &value->action);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeEdge &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const gchar *edge;
+
+ edge = gconf_value_get_string (gvalue);
+
+ value->action.edgeMask = stringToEdgeMask (edge);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeBell &&
+ gvalue->type == GCONF_VALUE_BOOL)
+ {
+ value->action.bell = gconf_value_get_bool (gvalue);
+ return TRUE;
+ }
+ else if (type == CompOptionTypeMatch &&
+ gvalue->type == GCONF_VALUE_STRING)
+ {
+ const gchar *match;
+
+ match = gconf_value_get_string (gvalue);
+
+ matchInit (&value->match);
+ matchAddFromString (&value->match, match);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+gconfReadOptionValue (CompObject *object,
+ GConfEntry *entry,
+ CompOption *o,
+ CompOptionValue *value)
+{
+ GConfValue *gvalue;
+
+ gvalue = gconf_entry_get_value (entry);
+ if (!gvalue)
+ return FALSE;
+
+ compInitOptionValue (value);
+
+ if (o->type == CompOptionTypeList &&
+ gvalue->type == GCONF_VALUE_LIST)
+ {
+ GConfValueType type;
+ GSList *list;
+ int i, n;
+
+ type = gconf_value_get_list_type (gvalue);
+ if (gconfTypeFromCompType (o->value.list.type) != type)
+ return FALSE;
+
+ list = gconf_value_get_list (gvalue);
+ n = g_slist_length (list);
+
+ value->list.value = NULL;
+ value->list.nValue = 0;
+ value->list.type = o->value.list.type;
+
+ if (n)
+ {
+ value->list.value = malloc (sizeof (CompOptionValue) * n);
+ if (value->list.value)
+ {
+ for (i = 0; i < n; i++)
+ {
+ if (!gconfGetValue (object,
+ &value->list.value[i],
+ o->value.list.type,
+ (GConfValue *) list->data))
+ break;
+
+ value->list.nValue++;
+
+ list = g_slist_next (list);
+ }
+
+ if (value->list.nValue != n)
+ {
+ compFiniOptionValue (value, o->type);
+ return FALSE;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (!gconfGetValue (object, value, o->type, gvalue))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+gconfGetOption (CompObject *object,
+ CompOption *o,
+ const char *plugin)
+{
+ GConfEntry *entry;
+ gchar *key;
+
+ GCONF_CORE (&core);
+
+ key = gconfGetKey (object, plugin, o->name);
+
+ entry = gconf_client_get_entry (gc->client, key, NULL, TRUE, NULL);
+ if (entry)
+ {
+ CompOptionValue value;
+
+ if (gconfReadOptionValue (object, entry, o, &value))
+ {
+ (*core.setOptionForPlugin) (object, plugin, o->name, &value);
+ compFiniOptionValue (&value, o->type);
+ }
+ else
+ {
+ gconfSetOption (object, o, plugin);
+ }
+
+ gconf_entry_free (entry);
+ }
+
+ g_free (key);
+}
+
+static CompBool
+gconfReloadObjectTree (CompObject *object,
+ void *closure);
+
+static CompBool
+gconfReloadObjectsWithType (CompObjectType type,
+ CompObject *parent,
+ void *closure)
+{
+ compObjectForEach (parent, type, gconfReloadObjectTree, closure);
+
+ return TRUE;
+}
+
+static CompBool
+gconfReloadObjectTree (CompObject *object,
+ void *closure)
+{
+ CompPlugin *p = (CompPlugin *) closure;
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ while (nOption--)
+ gconfGetOption (object, option++, p->vTable->name);
+
+ compObjectForEachType (object, gconfReloadObjectsWithType, closure);
+
+ return TRUE;
+}
+
+static Bool
+gconfReload (void *closure)
+{
+ CompPlugin *p;
+
+ GCONF_CORE (&core);
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ gconfReloadObjectTree (&core.base, (void *) p);
+ }
+
+ gc->reloadHandle = 0;
+
+ return FALSE;
+}
+
+static Bool
+gconfSetOptionForPlugin (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompBool status;
+
+ GCONF_CORE (&core);
+
+ UNWRAP (gc, &core, setOptionForPlugin);
+ status = (*core.setOptionForPlugin) (object, plugin, name, value);
+ WRAP (gc, &core, setOptionForPlugin, gconfSetOptionForPlugin);
+
+ if (status && !gc->reloadHandle)
+ {
+ CompPlugin *p;
+
+ p = findActivePlugin (plugin);
+ if (p && p->vTable->getObjectOptions)
+ {
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ option = compFindOption (option, nOption, name, 0);
+ if (option)
+ gconfSetOption (object, option, p->vTable->name);
+ }
+ }
+
+ return status;
+}
+
+static CompBool
+gconfInitPluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+ CompBool status;
+
+ GCONF_CORE (&core);
+
+ UNWRAP (gc, &core, initPluginForObject);
+ status = (*core.initPluginForObject) (p, o);
+ WRAP (gc, &core, initPluginForObject, gconfInitPluginForObject);
+
+ if (status && p->vTable->getObjectOptions)
+ {
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, o, &nOption);
+ while (nOption--)
+ gconfGetOption (o, option++, p->vTable->name);
+ }
+
+ return status;
+}
+
+/* MULTIDPYERROR: only works with one or less displays present */
+static void
+gconfKeyChanged (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ CompPlugin *plugin;
+ CompObject *object;
+ CompOption *option = NULL;
+ int nOption = 0;
+ gchar **token;
+ int objectIndex = 4;
+
+ token = g_strsplit (entry->key, "/", 8);
+
+ if (g_strv_length (token) < 7)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ if (strcmp (token[0], "") != 0 ||
+ strcmp (token[1], "apps") != 0 ||
+ strcmp (token[2], APP_NAME) != 0)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ if (strcmp (token[3], "general") == 0)
+ {
+ plugin = findActivePlugin ("core");
+ }
+ else
+ {
+ if (strcmp (token[3], "plugins") != 0 || g_strv_length (token) < 8)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ objectIndex = 5;
+ plugin = findActivePlugin (token[4]);
+ }
+
+ if (!plugin)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ object = compObjectFind (&core.base, COMP_OBJECT_TYPE_DISPLAY, NULL);
+ if (!object)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ if (strncmp (token[objectIndex], "screen", 6) == 0)
+ {
+ object = compObjectFind (object, COMP_OBJECT_TYPE_SCREEN,
+ token[objectIndex] + 6);
+ if (!object)
+ {
+ g_strfreev (token);
+ return;
+ }
+ }
+ else if (strcmp (token[objectIndex], "allscreens") != 0)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ if (strcmp (token[objectIndex + 1], "options") != 0)
+ {
+ g_strfreev (token);
+ return;
+ }
+
+ if (plugin->vTable->getObjectOptions)
+ option = (*plugin->vTable->getObjectOptions) (plugin, object,
+ &nOption);
+
+ option = compFindOption (option, nOption, token[objectIndex + 2], 0);
+ if (option)
+ {
+ CompOptionValue value;
+
+ if (gconfReadOptionValue (object, entry, option, &value))
+ {
+ (*core.setOptionForPlugin) (object,
+ plugin->vTable->name,
+ option->name,
+ &value);
+
+ compFiniOptionValue (&value, option->type);
+ }
+ }
+
+ g_strfreev (token);
+}
+
+static void
+gconfSendGLibNotify (CompScreen *s)
+{
+ Display *dpy = s->display->display;
+ XEvent xev;
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = dpy;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = XInternAtom (dpy, "_COMPIZ_GLIB_NOTIFY", 0);
+ xev.xclient.window = s->root;
+
+ memset (xev.xclient.data.l, 0, sizeof (xev.xclient.data.l));
+
+ XSendEvent (dpy,
+ s->root,
+ FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &xev);
+}
+
+static Bool
+gconfInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ GConfCore *gc;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ gc = malloc (sizeof (GConfCore));
+ if (!gc)
+ return FALSE;
+
+ g_type_init ();
+
+ gc->client = gconf_client_get_default ();
+
+ gconf_client_add_dir (gc->client, "/apps/" APP_NAME,
+ GCONF_CLIENT_PRELOAD_NONE, NULL);
+
+ gc->reloadHandle = compAddTimeout (0, 0, gconfReload, 0);
+
+ gc->cnxn = gconf_client_notify_add (gc->client, "/apps/" APP_NAME,
+ gconfKeyChanged, c, NULL, NULL);
+
+ WRAP (gc, c, initPluginForObject, gconfInitPluginForObject);
+ WRAP (gc, c, setOptionForPlugin, gconfSetOptionForPlugin);
+
+ c->base.privates[corePrivateIndex].ptr = gc;
+
+ return TRUE;
+}
+
+static void
+gconfFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ GCONF_CORE (c);
+
+ UNWRAP (gc, c, initPluginForObject);
+ UNWRAP (gc, c, setOptionForPlugin);
+
+ if (gc->reloadHandle)
+ compRemoveTimeout (gc->reloadHandle);
+
+ if (gc->cnxn)
+ gconf_client_notify_remove (gc->client, gc->cnxn);
+
+ gconf_client_remove_dir (gc->client, "/apps/" APP_NAME, NULL);
+ gconf_client_clear_cache (gc->client);
+
+ free (gc);
+}
+
+static Bool
+gconfInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ gconfSendGLibNotify (s);
+
+ return TRUE;
+}
+
+static CompBool
+gconfInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) gconfInitCore,
+ (InitPluginObjectProc) 0, /* InitDisplay */
+ (InitPluginObjectProc) gconfInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+gconfFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) gconfFiniCore
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+gconfInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&gconfMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&gconfMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&gconfMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+gconfFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&gconfMetadata);
+}
+
+static CompMetadata *
+gconfGetMetadata (CompPlugin *plugin)
+{
+ return &gconfMetadata;
+}
+
+CompPluginVTable gconfVTable = {
+ "gconf",
+ gconfGetMetadata,
+ gconfInit,
+ gconfFini,
+ gconfInitObject,
+ gconfFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &gconfVTable;
+}
diff --git a/plugins/glib.c b/plugins/glib.c
new file mode 100644
index 0000000..2ac0069
--- /dev/null
+++ b/plugins/glib.c
@@ -0,0 +1,306 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <glib.h>
+
+#include <compiz-core.h>
+
+static CompMetadata glibMetadata;
+
+static int displayPrivateIndex;
+
+typedef struct _GLibWatch {
+ CompWatchFdHandle handle;
+ int index;
+ CompDisplay *display;
+} GLibWatch;
+
+typedef struct _GConfDisplay {
+ HandleEventProc handleEvent;
+ CompTimeoutHandle timeoutHandle;
+ gint maxPriority;
+ GPollFD *fds;
+ gint fdsSize;
+ gint nFds;
+ GLibWatch *watch;
+ Atom notifyAtom;
+} GLibDisplay;
+
+#define GET_GLIB_DISPLAY(d) \
+ ((GLibDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define GLIB_DISPLAY(d) \
+ GLibDisplay *gd = GET_GLIB_DISPLAY (d)
+
+static void
+glibDispatch (CompDisplay *display,
+ GMainContext *context)
+{
+ int i;
+
+ GLIB_DISPLAY (display);
+
+ g_main_context_check (context, gd->maxPriority, gd->fds, gd->nFds);
+ g_main_context_dispatch (context);
+
+ for (i = 0; i < gd->nFds; i++)
+ compRemoveWatchFd (gd->watch[i].handle);
+}
+
+static void
+glibPrepare (CompDisplay *display,
+ GMainContext *context);
+
+static Bool
+glibDispatchAndPrepare (void *closure)
+{
+ CompDisplay *display = (CompDisplay *) closure;
+ GMainContext *context = g_main_context_default ();
+
+ glibDispatch (display, context);
+ glibPrepare (display, context);
+
+ return FALSE;
+}
+
+static void
+glibWakeup (CompDisplay *display)
+{
+ GLIB_DISPLAY (display);
+
+ if (gd->timeoutHandle)
+ {
+ compRemoveTimeout (gd->timeoutHandle);
+ compAddTimeout (0, 0, glibDispatchAndPrepare, (void *) display);
+
+ gd->timeoutHandle = 0;
+ }
+}
+
+static Bool
+glibCollectEvents (void *closure)
+{
+ GLibWatch *watch = (GLibWatch *) closure;
+ CompDisplay *display = watch->display;
+
+ GLIB_DISPLAY (display);
+
+ gd->fds[watch->index].revents |= compWatchFdEvents (watch->handle);
+
+ glibWakeup (display);
+
+ return TRUE;
+}
+
+static void
+glibPrepare (CompDisplay *display,
+ GMainContext *context)
+{
+ int nFds = 0;
+ int timeout = -1;
+ int i;
+
+ GLIB_DISPLAY (display);
+
+ g_main_context_prepare (context, &gd->maxPriority);
+
+ do
+ {
+ if (nFds > gd->fdsSize)
+ {
+ if (gd->fds)
+ free (gd->fds);
+
+ gd->fds = malloc ((sizeof (GPollFD) + sizeof (GLibWatch)) * nFds);
+ if (!gd->fds)
+ {
+ nFds = 0;
+ break;
+ }
+
+ gd->watch = (GLibWatch *) (gd->fds + nFds);
+ gd->fdsSize = nFds;
+ }
+
+ nFds = g_main_context_query (context,
+ gd->maxPriority,
+ &timeout,
+ gd->fds,
+ gd->fdsSize);
+ } while (nFds > gd->fdsSize);
+
+ if (timeout < 0)
+ timeout = INT_MAX;
+
+ for (i = 0; i < nFds; i++)
+ {
+ gd->watch[i].display = display;
+ gd->watch[i].index = i;
+ gd->watch[i].handle = compAddWatchFd (gd->fds[i].fd,
+ gd->fds[i].events,
+ glibCollectEvents,
+ &gd->watch[i]);
+ }
+
+ gd->nFds = nFds;
+ gd->timeoutHandle =
+ compAddTimeout (timeout, timeout, glibDispatchAndPrepare, display);
+}
+
+static void
+glibHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ GLIB_DISPLAY (d);
+
+ if (event->type == ClientMessage)
+ {
+ if (event->xclient.message_type == gd->notifyAtom)
+ glibWakeup (d);
+ }
+
+ UNWRAP (gd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (gd, d, handleEvent, glibHandleEvent);
+}
+
+static Bool
+glibInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ GLibDisplay *gd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ gd = malloc (sizeof (GLibDisplay));
+ if (!gd)
+ return FALSE;
+
+ gd->fds = NULL;
+ gd->fdsSize = 0;
+ gd->timeoutHandle = 0;
+ gd->notifyAtom = XInternAtom (d->display, "_COMPIZ_GLIB_NOTIFY", 0);
+
+ WRAP (gd, d, handleEvent, glibHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = gd;
+
+ glibPrepare (d, g_main_context_default ());
+
+ return TRUE;
+}
+
+static void
+glibFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ GLIB_DISPLAY (d);
+
+ if (gd->timeoutHandle)
+ compRemoveTimeout (gd->timeoutHandle);
+
+ glibDispatch (d, g_main_context_default ());
+
+ UNWRAP (gd, d, handleEvent);
+
+ if (gd->fds)
+ free (gd->fds);
+
+ free (gd);
+}
+
+static CompBool
+glibInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) glibInitDisplay
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+glibFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) glibFiniDisplay
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+glibInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&glibMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&glibMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&glibMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+glibFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&glibMetadata);
+}
+
+static CompMetadata *
+glibGetMetadata (CompPlugin *plugin)
+{
+ return &glibMetadata;
+}
+
+CompPluginVTable glibVTable = {
+ "glib",
+ glibGetMetadata,
+ glibInit,
+ glibFini,
+ glibInitObject,
+ glibFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &glibVTable;
+}
diff --git a/plugins/gnomecompat.c b/plugins/gnomecompat.c
new file mode 100644
index 0000000..5f4b8c2
--- /dev/null
+++ b/plugins/gnomecompat.c
@@ -0,0 +1,344 @@
+/*
+ * Copyright © 2009 Danny Baumann
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Danny Baumann not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Danny Baumann makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DANNY BAUMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Danny Baumann <dannybaumann@web.de>
+ */
+
+#include <compiz-core.h>
+
+static CompMetadata gnomeMetadata;
+
+static int displayPrivateIndex;
+
+#define GNOME_DISPLAY_OPTION_MAIN_MENU_KEY 0
+#define GNOME_DISPLAY_OPTION_RUN_DIALOG_KEY 1
+#define GNOME_DISPLAY_OPTION_SCREENSHOT_CMD 2
+#define GNOME_DISPLAY_OPTION_RUN_SCREENSHOT_KEY 3
+#define GNOME_DISPLAY_OPTION_WINDOW_SCREENSHOT_CMD 4
+#define GNOME_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT_KEY 5
+#define GNOME_DISPLAY_OPTION_TERMINAL_CMD 6
+#define GNOME_DISPLAY_OPTION_RUN_TERMINAL_KEY 7
+#define GNOME_DISPLAY_OPTION_NUM 8
+
+typedef struct _GnomeDisplay {
+ CompOption opt[GNOME_DISPLAY_OPTION_NUM];
+
+ Atom panelActionAtom;
+ Atom panelMainMenuAtom;
+ Atom panelRunDialogAtom;
+} GnomeDisplay;
+
+#define GET_GNOME_DISPLAY(d) \
+ ((GnomeDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+#define GNOME_DISPLAY(d) \
+ GnomeDisplay *gd = GET_GNOME_DISPLAY (d)
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static Bool
+runDispatch (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+ s = findScreenAtDisplay (d, xid);
+
+ if (s)
+ {
+ GNOME_DISPLAY (d);
+
+ runCommand (s, gd->opt[action->priv.val].value.s);
+ }
+
+ return TRUE;
+}
+
+static void
+panelAction (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ Atom actionAtom)
+{
+ Window xid;
+ CompScreen *s;
+ XEvent event;
+ Time time;
+
+ GNOME_DISPLAY (d);
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+ s = findScreenAtDisplay (d, xid);
+
+ if (!s)
+ return;
+
+ time = getIntOptionNamed (option, nOption, "time", CurrentTime);
+
+ /* we need to ungrab the keyboard here, otherwise the panel main
+ menu won't popup as it wants to grab the keyboard itself */
+ XUngrabKeyboard (d->display, time);
+
+ event.type = ClientMessage;
+ event.xclient.window = s->root;
+ event.xclient.message_type = gd->panelActionAtom;
+ event.xclient.format = 32;
+ event.xclient.data.l[0] = actionAtom;
+ event.xclient.data.l[1] = time;
+ event.xclient.data.l[2] = 0;
+ event.xclient.data.l[3] = 0;
+ event.xclient.data.l[4] = 0;
+
+ XSendEvent (d->display, s->root, FALSE, StructureNotifyMask, &event);
+}
+
+static Bool
+showMainMenu (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ GNOME_DISPLAY (d);
+
+ panelAction (d, option, nOption, gd->panelMainMenuAtom);
+
+ return TRUE;
+}
+
+static Bool
+showRunDialog (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ GNOME_DISPLAY (d);
+
+ panelAction (d, option, nOption, gd->panelRunDialogAtom);
+
+ return TRUE;
+}
+static const CompMetadataOptionInfo gnomeDisplayOptionInfo[] = {
+ { "main_menu_key", "key", 0, showMainMenu, 0 },
+ { "run_key", "key", 0, showRunDialog, 0 },
+ { "command_screenshot", "string", 0, 0, 0 },
+ { "run_command_screenshot_key", "key", 0, runDispatch, 0 },
+ { "command_window_screenshot", "string", 0, 0, 0 },
+ { "run_command_window_screenshot_key", "key", 0, runDispatch, 0 },
+ { "command_terminal", "string", 0, 0, 0 },
+ { "run_command_terminal_key", "key", 0, runDispatch, 0 }
+};
+
+static CompBool
+gnomeInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ GnomeDisplay *gd;
+ int opt, index;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ gd = malloc (sizeof (GnomeDisplay));
+ if (!gd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &gnomeMetadata,
+ gnomeDisplayOptionInfo,
+ gd->opt,
+ GNOME_DISPLAY_OPTION_NUM))
+ {
+ free (gd);
+ return FALSE;
+ }
+
+ opt = GNOME_DISPLAY_OPTION_RUN_SCREENSHOT_KEY;
+ gd->opt[opt].value.action.priv.val = GNOME_DISPLAY_OPTION_SCREENSHOT_CMD;
+
+ opt = GNOME_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT_KEY;
+ index = GNOME_DISPLAY_OPTION_WINDOW_SCREENSHOT_CMD;
+ gd->opt[opt].value.action.priv.val = index;
+
+ opt = GNOME_DISPLAY_OPTION_RUN_TERMINAL_KEY;
+ gd->opt[opt].value.action.priv.val = GNOME_DISPLAY_OPTION_TERMINAL_CMD;
+
+ gd->panelActionAtom =
+ XInternAtom (d->display, "_GNOME_PANEL_ACTION", FALSE);
+ gd->panelMainMenuAtom =
+ XInternAtom (d->display, "_GNOME_PANEL_ACTION_MAIN_MENU", FALSE);
+ gd->panelRunDialogAtom =
+ XInternAtom (d->display, "_GNOME_PANEL_ACTION_RUN_DIALOG", FALSE);
+
+ d->base.privates[displayPrivateIndex].ptr = gd;
+
+ return TRUE;
+}
+
+static void
+gnomeFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ GNOME_DISPLAY (d);
+
+ compFiniDisplayOptions (d, gd->opt, GNOME_DISPLAY_OPTION_NUM);
+
+ free (gd);
+}
+
+static CompOption *
+gnomeGetDisplayOptions (CompPlugin *p,
+ CompDisplay *d,
+ int *count)
+{
+ GNOME_DISPLAY (d);
+
+ *count = NUM_OPTIONS (gd);
+ return gd->opt;
+}
+
+static CompBool
+gnomeSetDisplayOption (CompPlugin *p,
+ CompDisplay *d,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ GNOME_DISPLAY (d);
+
+ o = compFindOption (gd->opt, NUM_OPTIONS (gd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (d, o, value);
+}
+
+static CompBool
+gnomeInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) gnomeInitDisplay
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+gnomeFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) gnomeFiniDisplay
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+gnomeGetObjectOptions (CompPlugin *p,
+ CompObject *o,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) gnomeGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (p, o, count));
+}
+
+static CompBool
+gnomeSetObjectOption (CompPlugin *p,
+ CompObject *o,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) gnomeSetDisplayOption,
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (p, o, name, value));
+}
+
+static Bool
+gnomeInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&gnomeMetadata,
+ p->vTable->name,
+ gnomeDisplayOptionInfo,
+ GNOME_DISPLAY_OPTION_NUM, 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&gnomeMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&gnomeMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+gnomeFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&gnomeMetadata);
+}
+
+static CompMetadata *
+gnomeGetMetadata (CompPlugin *p)
+{
+ return &gnomeMetadata;
+}
+
+static CompPluginVTable gnomeVTable = {
+ "gnomecompat",
+ gnomeGetMetadata,
+ gnomeInit,
+ gnomeFini,
+ gnomeInitObject,
+ gnomeFiniObject,
+ gnomeGetObjectOptions,
+ gnomeSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &gnomeVTable;
+}
diff --git a/plugins/ini.c b/plugins/ini.c
new file mode 100644
index 0000000..fdd211d
--- /dev/null
+++ b/plugins/ini.c
@@ -0,0 +1,1152 @@
+/*
+ * Copyright © 2007 Mike Dransfield
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Mike Dransfield not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Mike Dransfield makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * MIKE DRANSFIELD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL MIKE DRANSFIELD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Mike Dransfield <mike@blueroot.co.uk>
+ *
+ * Some code taken from gconf.c by :
+ * David Reveman <davidr@novell.com>
+ */
+
+#define _GNU_SOURCE /* for asprintf */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <compiz-core.h>
+
+#define DEFAULT_PLUGINS "ini,inotify,png,decoration,move,resize,switcher"
+#define NUM_DEFAULT_PLUGINS 7
+#define MAX_OPTION_LENGTH 1024
+#define HOME_OPTIONDIR ".compiz/options"
+#define CORE_NAME "general"
+#define FILE_SUFFIX ".conf"
+
+#define GET_INI_CORE(c) \
+ ((IniCore *) (c)->base.privates[corePrivateIndex].ptr)
+#define INI_CORE(c) \
+ IniCore *ic = GET_INI_CORE (c)
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static int corePrivateIndex;
+
+static CompMetadata iniMetadata;
+
+static Bool iniSaveOptions (CompObject *object,
+ const char *plugin);
+
+/*
+ * IniFileData
+ */
+typedef struct _IniFileData IniFileData;
+struct _IniFileData {
+ char *filename;
+ char *plugin;
+ int screen;
+
+ Bool blockWrites;
+ Bool blockReads;
+
+ IniFileData *next;
+ IniFileData *prev;
+};
+
+/*
+ * IniCore
+ */
+typedef struct _IniCore {
+ CompFileWatchHandle directoryWatch;
+
+ IniFileData *fileData;
+
+ InitPluginForObjectProc initPluginForObject;
+ SetOptionForPluginProc setOptionForPlugin;
+} IniCore;
+
+static IniFileData *
+iniGetFileDataFromFilename (const char *filename)
+{
+ int len, i;
+ int pluginSep = 0, screenSep = 0;
+ char *pluginStr, *screenStr;
+ IniFileData *fd;
+
+ INI_CORE (&core);
+
+ if (!filename)
+ return NULL;
+
+ len = strlen (filename);
+
+ if (len < (strlen(FILE_SUFFIX) + 2))
+ return NULL;
+
+ if ((filename[0]=='.') || (filename[len-1]=='~'))
+ return NULL;
+
+ for (fd = ic->fileData; fd; fd = fd->next)
+ if (strcmp (fd->filename, filename) == 0)
+ return fd;
+
+ for (i=0; i<len; i++)
+ {
+ if (filename[i] == '-')
+ {
+ if (!pluginSep)
+ pluginSep = i-1;
+ else
+ return NULL; /*found a second dash */
+ }
+ else if (filename[i] == '.')
+ {
+ if (!screenSep)
+ screenSep = i-1;
+ else
+ return NULL; /*found a second dot */
+ }
+ }
+
+ if (!pluginSep || !screenSep)
+ return NULL;
+
+ /* If we get here then there is no fd in the display variable */
+ IniFileData *newFd = malloc (sizeof (IniFileData));
+ if (!newFd)
+ return NULL;
+
+ /* fd is NULL here, see condition "fd" in first for-loop */
+ /* if (fd)
+ fd->next = newFd;
+ else
+ */
+ ic->fileData = newFd;
+
+ newFd->prev = fd;
+ newFd->next = NULL;
+
+ newFd->filename = strdup (filename);
+
+ pluginStr = calloc (1, sizeof (char) * pluginSep + 2);
+ if (!pluginStr)
+ return NULL;
+
+ screenStr = calloc (1, sizeof (char) * (screenSep - pluginSep));
+ if (!screenStr) {
+ free(pluginStr);
+ return NULL;
+ }
+
+ strncpy (pluginStr, filename, pluginSep + 1);
+ strncpy (screenStr, &filename[pluginSep+2], (screenSep - pluginSep) - 1);
+
+ if (strcmp (pluginStr, CORE_NAME) == 0)
+ newFd->plugin = NULL;
+ else
+ newFd->plugin = strdup (pluginStr);
+
+ if (strcmp (screenStr, "allscreens") == 0)
+ newFd->screen = -1;
+ else
+ newFd->screen = atoi (&screenStr[6]);
+
+ newFd->blockReads = FALSE;
+ newFd->blockWrites = FALSE;
+
+ free (pluginStr);
+ free (screenStr);
+
+ return newFd;
+}
+
+static char *
+iniOptionValueToString (CompDisplay *d, CompOptionValue *value, CompOptionType type)
+{
+ char tmp[MAX_OPTION_LENGTH];
+ tmp[0] = '\0';
+
+ switch (type)
+ {
+ case CompOptionTypeBool:
+ case CompOptionTypeInt:
+ snprintf(tmp, 256, "%i", (int)value->i);
+ break;
+ case CompOptionTypeFloat:
+ snprintf(tmp, 256, "%f", value->f);
+ break;
+ case CompOptionTypeString:
+ snprintf (tmp, MAX_OPTION_LENGTH, "%s", strdup (value->s));
+ break;
+ case CompOptionTypeColor:
+ snprintf (tmp, 10, "%s", colorToString (value->c));
+ break;
+ case CompOptionTypeKey:
+ return keyActionToString (d, &value->action);
+ break;
+ case CompOptionTypeButton:
+ return buttonActionToString (d, &value->action);
+ break;
+ case CompOptionTypeEdge:
+ return edgeMaskToString (value->action.edgeMask);
+ break;
+ case CompOptionTypeBell:
+ snprintf (tmp, 256, "%i", (int) value->action.bell);
+ break;
+ case CompOptionTypeMatch:
+ {
+ char *s = matchToString (&value->match);
+ snprintf (tmp, MAX_OPTION_LENGTH, "%s", s);
+ free(s);
+ }
+ break;
+ default:
+ break;
+ }
+
+ return strdup (tmp);
+}
+
+static Bool
+iniGetHomeDir (char **homeDir)
+{
+ char *home = NULL, *tmp;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ tmp = malloc (strlen (home) + strlen (HOME_OPTIONDIR) + 2);
+ if (tmp)
+ {
+ sprintf (tmp, "%s/%s", home, HOME_OPTIONDIR);
+ (*homeDir) = strdup (tmp);
+ free (tmp);
+
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+iniGetFilename (CompObject *object,
+ const char *plugin,
+ char **filename)
+{
+ int len;
+ char *fn = NULL, *screenStr;
+
+ screenStr = malloc (sizeof(char) * 12);
+ if (!screenStr)
+ return FALSE;
+
+ if (object->type == COMP_OBJECT_TYPE_SCREEN)
+ {
+ CORE_SCREEN (object);
+
+ snprintf (screenStr, 12, "screen%d", s->screenNum);
+ }
+ else
+ {
+ strncpy (screenStr, "allscreens", 12);
+ }
+
+ len = strlen (screenStr) + strlen (FILE_SUFFIX) + 2;
+
+ if (plugin)
+ len += strlen (plugin);
+ else
+ len += strlen (CORE_NAME);
+
+ fn = malloc (sizeof (char) * len);
+ if (fn)
+ {
+ sprintf (fn, "%s-%s%s",
+ plugin ? plugin : CORE_NAME, screenStr, FILE_SUFFIX);
+
+ *filename = strdup (fn);
+
+ free (screenStr);
+ free (fn);
+
+ return TRUE;
+ }
+
+ free (screenStr);
+
+ return FALSE;
+}
+
+static Bool
+iniParseLine (char *line, char **optionName, char **optionValue)
+{
+ char *splitPos;
+ int length, optionLength;
+
+ if (line[0] == '\0' || line[0] == '\n')
+ return FALSE;
+
+ splitPos = strchr (line, '=');
+ if (!splitPos)
+ return FALSE;
+
+ length = strlen (line) - strlen (splitPos);
+ *optionName = malloc (sizeof (char) * (length + 1));
+ if (*optionName)
+ {
+ strncpy (*optionName, line, length);
+ (*optionName)[length] = 0;
+ }
+ splitPos++;
+ optionLength = strlen (splitPos);
+ if (splitPos[optionLength-1] == '\n')
+ optionLength--;
+ *optionValue = malloc (sizeof (char) * (optionLength + 1));
+ if (*optionValue)
+ {
+ strncpy (*optionValue, splitPos, optionLength);
+ (*optionValue)[optionLength] = 0;
+ }
+ return TRUE;
+}
+
+static Bool
+csvToList (CompDisplay *d, char *csv, CompListValue *list, CompOptionType type)
+{
+ char *splitStart = NULL;
+ char *splitEnd = NULL;
+ char *item = NULL;
+ int itemLength, count, i;
+
+ if (csv[0] == '\0')
+ {
+ list->nValue = 0;
+ return FALSE;
+ }
+
+ int length = strlen (csv);
+ count = 1;
+ for (i = 0; csv[i] != '\0'; i++)
+ if (csv[i] == ',' && i != length-1)
+ count++;
+
+ splitStart = csv;
+ list->value = malloc (sizeof (CompOptionValue) * count);
+ list->nValue = count;
+
+ if (list->value)
+ {
+ for (i = 0; i < count; i++)
+ {
+ splitEnd = strchr (splitStart, ',');
+
+ if (splitEnd)
+ {
+ itemLength = strlen (splitStart) - strlen (splitEnd);
+ item = malloc (sizeof (char) * (itemLength + 1));
+ if (item)
+ {
+ strncpy (item, splitStart, itemLength);
+ item[itemLength] = 0;
+ }
+ }
+ else // last value
+ {
+ item = strdup (splitStart);
+ }
+
+ if (!item) {
+ compLogMessage ("ini", CompLogLevelError, "Not enough memory");
+ list->nValue = 0;
+ return FALSE;
+ }
+
+ switch (type)
+ {
+ case CompOptionTypeString:
+ list->value[i].s = strdup (item);
+ break;
+ case CompOptionTypeBool:
+ list->value[i].b = item[0] ? (Bool) atoi (item) : FALSE;
+ break;
+ case CompOptionTypeInt:
+ list->value[i].i = item[0] ? atoi (item) : 0;
+ break;
+ case CompOptionTypeFloat:
+ list->value[i].f = item[0] ? atof (item) : 0.0f;
+ break;
+ case CompOptionTypeKey:
+ stringToKeyAction (d, item, &list->value[i].action);
+ break;
+ case CompOptionTypeButton:
+ stringToButtonAction (d, item, &list->value[i].action);
+ break;
+ case CompOptionTypeEdge:
+ list->value[i].action.edgeMask = stringToEdgeMask (item);
+ break;
+ case CompOptionTypeBell:
+ list->value[i].action.bell = (Bool) atoi (item);
+ break;
+ case CompOptionTypeMatch:
+ matchInit (&list->value[i].match);
+ matchAddFromString (&list->value[i].match, item);
+ break;
+ default:
+ break;
+ }
+
+ splitStart = ++splitEnd;
+ if (item)
+ {
+ free (item);
+ item = NULL;
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+static Bool
+iniMakeDirectories (void)
+{
+ char *homeDir;
+
+ if (iniGetHomeDir (&homeDir))
+ {
+ mkdir (homeDir, 0700);
+ free (homeDir);
+
+ return TRUE;
+ }
+ else
+ {
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Could not get HOME environmental variable");
+ return FALSE;
+ }
+}
+
+static Bool
+iniLoadOptionsFromFile (FILE *optionFile,
+ CompObject *object,
+ const char *plugin,
+ Bool *reSave)
+{
+ CompOption *option = NULL, *o;
+ CompPlugin *p = NULL;
+ CompOptionValue value;
+ char *optionName = NULL, *optionValue = NULL;
+ char tmp[MAX_OPTION_LENGTH];
+ int nOption, nOptionRead = 0;
+ Bool status = FALSE, hasValue = FALSE;
+
+ if (plugin)
+ {
+ p = findActivePlugin (plugin);
+ if (!p)
+ {
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Could not find running plugin " \
+ "%s (iniLoadOptionsFromFile)", plugin);
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ if (p->vTable->getObjectOptions)
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+
+ while (fgets (tmp, MAX_OPTION_LENGTH, optionFile) != NULL)
+ {
+ status = FALSE;
+
+ if (!iniParseLine (tmp, &optionName, &optionValue))
+ {
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Ignoring line '%s' in %s", tmp, plugin);
+ continue;
+ }
+
+ if (option)
+ {
+ o = compFindOption (option, nOption, optionName, 0);
+ if (o)
+ {
+ value = o->value;
+
+ switch (o->type)
+ {
+ case CompOptionTypeBool:
+ hasValue = TRUE;
+ value.b = (Bool) atoi (optionValue);
+ break;
+ case CompOptionTypeInt:
+ hasValue = TRUE;
+ value.i = atoi (optionValue);
+ break;
+ case CompOptionTypeFloat:
+ hasValue = TRUE;
+ value.f = atof (optionValue);
+ break;
+ case CompOptionTypeString:
+ hasValue = TRUE;
+ value.s = strdup (optionValue);
+ break;
+ case CompOptionTypeColor:
+ hasValue = stringToColor (optionValue, value.c);
+ break;
+ case CompOptionTypeKey:
+ hasValue = TRUE;
+ stringToKeyAction (GET_CORE_DISPLAY (object),
+ optionValue, &value.action);
+ break;
+ case CompOptionTypeButton:
+ hasValue = TRUE;
+ stringToButtonAction (GET_CORE_DISPLAY (object),
+ optionValue, &value.action);
+ break;
+ case CompOptionTypeEdge:
+ hasValue = TRUE;
+ value.action.edgeMask = stringToEdgeMask (optionValue);
+ break;
+ case CompOptionTypeBell:
+ hasValue = TRUE;
+ value.action.bell = (Bool) atoi (optionValue);
+ break;
+ case CompOptionTypeList:
+ hasValue = csvToList (GET_CORE_DISPLAY (object),
+ optionValue,
+ &value.list, value.list.type);
+ break;
+ case CompOptionTypeMatch:
+ hasValue = TRUE;
+ matchInit (&value.match);
+ matchAddFromString (&value.match, optionValue);
+ break;
+ default:
+ break;
+ }
+
+ if (hasValue)
+ {
+ status = (*core.setOptionForPlugin) (object,
+ plugin,
+ optionName,
+ &value);
+
+ if (o->type == CompOptionTypeMatch)
+ {
+ matchFini (&value.match);
+ }
+ }
+
+ nOptionRead++;
+ }
+ }
+
+ /* clear up */
+ if (optionName)
+ free (optionName);
+ if (optionValue)
+ free (optionValue);
+ }
+
+ if (nOption != nOptionRead)
+ {
+ *reSave = TRUE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+iniSaveOptions (CompObject *object,
+ const char *plugin)
+{
+ CompOption *option = NULL;
+ int nOption = 0;
+ char *filename, *directory, *fullPath, *strVal = NULL;
+
+ if (plugin)
+ {
+ CompPlugin *p;
+ p = findActivePlugin (plugin);
+ if (!p)
+ return FALSE;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ if (!option)
+ return FALSE;
+
+ if (!iniGetFilename (object, plugin, &filename))
+ return FALSE;
+
+ IniFileData *fileData;
+
+ fileData = iniGetFileDataFromFilename (filename);
+ if (!fileData || (fileData && fileData->blockWrites))
+ {
+ free (filename);
+ return FALSE;
+ }
+
+ if (!iniGetHomeDir (&directory))
+ return FALSE;
+
+ fullPath = malloc (sizeof (char) * (strlen (filename) + strlen (directory) + 2));
+ if (!fullPath)
+ {
+ free (filename);
+ free (directory);
+ return FALSE;
+ }
+
+ sprintf (fullPath, "%s/%s", directory, filename);
+
+ FILE *optionFile = fopen (fullPath, "w");
+
+ if (!optionFile && iniMakeDirectories ())
+ optionFile = fopen (fullPath, "w");
+
+ if (!optionFile)
+ {
+ compLogMessage ("ini", CompLogLevelError,
+ "Failed to write to %s, check you " \
+ "have the correct permissions", fullPath);
+ free (filename);
+ free (directory);
+ free (fullPath);
+ return FALSE;
+ }
+
+ fileData->blockReads = TRUE;
+
+ Bool status, firstInList;
+ while (nOption--)
+ {
+ status = FALSE;
+ int i;
+
+ switch (option->type)
+ {
+ case CompOptionTypeBool:
+ case CompOptionTypeInt:
+ case CompOptionTypeFloat:
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ case CompOptionTypeMatch:
+ strVal = iniOptionValueToString (GET_CORE_DISPLAY (object),
+ &option->value, option->type);
+ if (strVal)
+ {
+ fprintf (optionFile, "%s=%s\n", option->name, strVal);
+ free (strVal);
+ }
+ else
+ fprintf (optionFile, "%s=\n", option->name);
+ break;
+ case CompOptionTypeList:
+ firstInList = TRUE;
+ switch (option->value.list.type)
+ {
+ case CompOptionTypeBool:
+ case CompOptionTypeInt:
+ case CompOptionTypeFloat:
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeMatch:
+ {
+ int stringLen = MAX_OPTION_LENGTH * option->value.list.nValue;
+ char *itemVal;
+
+ strVal = malloc (sizeof(char) * stringLen);
+ if (!strVal) {
+ fclose(optionFile);
+ free(fullPath);
+ return FALSE;
+ }
+ strcpy (strVal, "");
+ firstInList = TRUE;
+
+ for (i = 0; i < option->value.list.nValue; i++)
+ {
+ itemVal =
+ iniOptionValueToString (GET_CORE_DISPLAY (object),
+ &option->value.list.value[i],
+ option->value.list.type);
+ if (!firstInList)
+ strncat (strVal, ",", stringLen);
+ firstInList = FALSE;
+
+ if (itemVal)
+ {
+ strncat (strVal, itemVal, stringLen);
+ free (itemVal);
+ }
+ }
+
+ fprintf (optionFile, "%s=%s\n", option->name, strVal);
+ free (strVal);
+ break;
+ }
+ default:
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Unknown list option type %d, %s\n",
+ option->value.list.type,
+ optionTypeToString (option->value.list.type));
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+
+ option++;
+ }
+
+ fileData->blockReads = FALSE;
+
+ fclose (optionFile);
+
+ free (filename);
+ free (directory);
+ free (fullPath);
+
+ return TRUE;
+}
+
+static Bool
+iniLoadOptions (CompObject *object,
+ const char *plugin)
+{
+ char *filename, *directory, *fullPath;
+ FILE *optionFile;
+ Bool loadRes, reSave = FALSE;
+ IniFileData *fileData;
+
+ filename = directory = fullPath = NULL;
+ optionFile = NULL;
+ fileData = NULL;
+
+ if (!iniGetFilename (object, plugin, &filename))
+ return FALSE;
+
+ fileData = iniGetFileDataFromFilename (filename);
+ if (!fileData || (fileData && fileData->blockReads))
+ {
+ free(filename);
+ return FALSE;
+ }
+
+ if (!iniGetHomeDir (&directory))
+ {
+ free (filename);
+ return FALSE;
+ }
+
+ fullPath = malloc (sizeof (char) * (strlen (filename) + strlen (directory) + 2));
+ if (!fullPath)
+ {
+ free (filename);
+ free (directory);
+ return FALSE;
+ }
+
+ sprintf(fullPath, "%s/%s", directory, filename);
+
+ optionFile = fopen (fullPath, "r");
+
+ if (!optionFile && iniMakeDirectories ())
+ optionFile = fopen (fullPath, "r");
+
+ if (!optionFile)
+ {
+ if (!plugin && object->type == COMP_OBJECT_TYPE_DISPLAY)
+ {
+ CompOptionValue value;
+ value.list.value = malloc (NUM_DEFAULT_PLUGINS * sizeof (CompListValue));
+ if (!value.list.value)
+ {
+ free (filename);
+ free (directory);
+ free (fullPath);
+ return FALSE;
+ }
+
+ if (!csvToList (GET_CORE_DISPLAY (object), DEFAULT_PLUGINS,
+ &value.list,
+ CompOptionTypeString))
+ {
+ free (filename);
+ free (directory);
+ free (fullPath);
+ return FALSE;
+ }
+
+ value.list.type = CompOptionTypeString;
+
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Could not open main display config file %s",
+ fullPath);
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Loading default plugins (%s)", DEFAULT_PLUGINS);
+
+ (*core.setOptionForPlugin) (object,
+ "core", "active_plugins",
+ &value);
+
+ free (value.list.value);
+
+ fileData->blockWrites = FALSE;
+
+ iniSaveOptions (object, plugin);
+
+ fileData->blockWrites = TRUE;
+
+ optionFile = fopen (fullPath, "r");
+
+ if (!optionFile)
+ {
+ free (filename);
+ free (directory);
+ free (fullPath);
+ return FALSE;
+ }
+ }
+ else
+ {
+ compLogMessage ("ini", CompLogLevelWarn,
+ "Could not open config file %s - "
+ "using defaults for %s",
+ fullPath, plugin ? plugin : "core");
+
+ fileData->blockWrites = FALSE;
+
+ iniSaveOptions (object, plugin);
+
+ fileData->blockWrites = TRUE;
+
+ optionFile = fopen (fullPath, "r");
+ if (!optionFile)
+ {
+ free (filename);
+ free (directory);
+ free (fullPath);
+ return FALSE;
+ }
+ }
+ }
+
+ fileData->blockWrites = TRUE;
+
+ loadRes = iniLoadOptionsFromFile (optionFile, object, plugin, &reSave);
+
+ fileData->blockWrites = FALSE;
+
+ fclose (optionFile);
+
+ if (loadRes && reSave)
+ {
+ fileData->blockReads = TRUE;
+ iniSaveOptions (object, plugin);
+ fileData->blockReads = FALSE;
+ }
+
+ free (filename);
+ free (directory);
+ free (fullPath);
+
+ return TRUE;
+}
+
+/* MULTIDPYERROR: only works with one or less displays present */
+/* OBJECTOPTION: only display and screen options are supported */
+static void
+iniFileModified (const char *name,
+ void *closure)
+{
+ IniFileData *fd;
+
+ fd = iniGetFileDataFromFilename (name);
+ if (fd && core.displays)
+ {
+ if (fd->screen < 0)
+ {
+ iniLoadOptions (&core.displays->base, fd->plugin);
+ }
+ else
+ {
+ CompScreen *s;
+
+ for (s = core.displays->screens; s; s = s->next)
+ if (s->screenNum == fd->screen)
+ break;
+
+ if (s)
+ iniLoadOptions (&s->base, fd->plugin);
+ }
+ }
+}
+
+static void
+iniFreeFileData (void)
+{
+ IniFileData *fd, *tmp;
+
+ INI_CORE (&core);
+
+ fd = ic->fileData;
+
+ while (fd)
+ {
+ tmp = fd;
+ fd = fd->next;
+ free (tmp);
+ }
+}
+
+/*
+CORE FUNCTIONS
+*/
+
+static Bool
+iniInitPluginForDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ iniLoadOptions (&d->base, p->vTable->name);
+
+ return TRUE;
+}
+
+static Bool
+iniInitPluginForScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ iniLoadOptions (&s->base, p->vTable->name);
+
+ return TRUE;
+}
+
+static CompBool
+iniInitPluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+ CompBool status;
+
+ INI_CORE (&core);
+
+ UNWRAP (ic, &core, initPluginForObject);
+ status = (*core.initPluginForObject) (p, o);
+ WRAP (ic, &core, initPluginForObject, iniInitPluginForObject);
+
+ if (status && p->vTable->getObjectOptions)
+ {
+ static InitPluginForObjectProc dispTab[] = {
+ (InitPluginForObjectProc) 0, /* InitPluginForCore */
+ (InitPluginForObjectProc) iniInitPluginForDisplay,
+ (InitPluginForObjectProc) iniInitPluginForScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+ }
+
+ return status;
+}
+
+static CompBool
+iniSetOptionForPlugin (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompBool status;
+
+ INI_CORE (&core);
+
+ UNWRAP (ic, &core, setOptionForPlugin);
+ status = (*core.setOptionForPlugin) (object, plugin, name, value);
+ WRAP (ic, &core, setOptionForPlugin, iniSetOptionForPlugin);
+
+ if (status)
+ {
+ CompPlugin *p;
+
+ p = findActivePlugin (plugin);
+ if (p && p->vTable->getObjectOptions)
+ iniSaveOptions (object, plugin);
+ }
+
+ return status;
+}
+
+static Bool
+iniInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ IniCore *ic;
+ char *homeDir;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ ic = malloc (sizeof (IniCore));
+ if (!ic)
+ return FALSE;
+
+ ic->fileData = NULL;
+ ic->directoryWatch = 0;
+
+ if (iniGetHomeDir (&homeDir))
+ {
+ ic->directoryWatch = addFileWatch (homeDir,
+ NOTIFY_DELETE_MASK |
+ NOTIFY_CREATE_MASK |
+ NOTIFY_MODIFY_MASK,
+ iniFileModified, 0);
+ free (homeDir);
+ }
+
+ WRAP (ic, c, initPluginForObject, iniInitPluginForObject);
+ WRAP (ic, c, setOptionForPlugin, iniSetOptionForPlugin);
+
+ c->base.privates[corePrivateIndex].ptr = ic;
+
+ return TRUE;
+}
+
+static void
+iniFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ INI_CORE (c);
+
+ UNWRAP (ic, c, initPluginForObject);
+ UNWRAP (ic, c, setOptionForPlugin);
+
+ if (ic->directoryWatch)
+ removeFileWatch (ic->directoryWatch);
+
+ iniFreeFileData ();
+
+ free (ic);
+}
+
+static Bool
+iniInitDisplay (CompPlugin *p, CompDisplay *d)
+{
+ iniLoadOptions (&d->base, NULL);
+
+ return TRUE;
+}
+
+static Bool
+iniInitScreen (CompPlugin *p, CompScreen *s)
+{
+ iniLoadOptions (&s->base, NULL);
+
+ return TRUE;
+}
+
+static CompBool
+iniInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) iniInitCore,
+ (InitPluginObjectProc) iniInitDisplay,
+ (InitPluginObjectProc) iniInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+iniFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) iniFiniCore
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+iniInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&iniMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&iniMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&iniMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+iniFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+}
+
+static CompMetadata *
+iniGetMetadata (CompPlugin *plugin)
+{
+ return &iniMetadata;
+}
+
+CompPluginVTable iniVTable = {
+ "ini",
+ iniGetMetadata,
+ iniInit,
+ iniFini,
+ iniInitObject,
+ iniFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &iniVTable;
+}
diff --git a/plugins/inotify.c b/plugins/inotify.c
new file mode 100644
index 0000000..58bff1b
--- /dev/null
+++ b/plugins/inotify.c
@@ -0,0 +1,316 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <poll.h>
+#include <sys/inotify.h>
+
+#include <compiz-core.h>
+
+static CompMetadata inotifyMetadata;
+
+static int corePrivateIndex;
+
+typedef struct _CompInotifyWatch {
+ struct _CompInotifyWatch *next;
+ CompFileWatchHandle handle;
+ int wd;
+} CompInotifyWatch;
+
+typedef struct _InotifyCore {
+ int fd;
+ CompInotifyWatch *watch;
+ CompWatchFdHandle watchFdHandle;
+
+ FileWatchAddedProc fileWatchAdded;
+ FileWatchRemovedProc fileWatchRemoved;
+} InotifyCore;
+
+#define GET_INOTIFY_CORE(c) \
+ ((InotifyCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define INOTIFY_CORE(c) \
+ InotifyCore *ic = GET_INOTIFY_CORE (c)
+
+
+static Bool
+inotifyProcessEvents (void *data)
+{
+ char buf[256 * (sizeof (struct inotify_event) + 16)];
+ int len;
+
+ INOTIFY_CORE (&core);
+
+ len = read (ic->fd, buf, sizeof (buf));
+ if (len < 0)
+ {
+ perror ("read");
+ }
+ else
+ {
+ struct inotify_event *event;
+ CompInotifyWatch *iw;
+ CompFileWatch *fw;
+ int i = 0;
+
+ while (i < len)
+ {
+ event = (struct inotify_event *) &buf[i];
+
+ for (iw = ic->watch; iw; iw = iw->next)
+ if (iw->wd == event->wd)
+ break;
+
+ if (iw)
+ {
+ for (fw = core.fileWatch; fw; fw = fw->next)
+ if (fw->handle == iw->handle)
+ break;
+
+ if (fw)
+ {
+ if (event->len)
+ (*fw->callBack) (event->name, fw->closure);
+ else
+ (*fw->callBack) (NULL, fw->closure);
+ }
+ }
+
+ i += sizeof (*event) + event->len;
+ }
+ }
+
+ return TRUE;
+}
+
+static int
+inotifyMask (CompFileWatch *fileWatch)
+{
+ int mask = 0;
+
+ if (fileWatch->mask & NOTIFY_CREATE_MASK)
+ mask |= IN_CREATE;
+
+ if (fileWatch->mask & NOTIFY_DELETE_MASK)
+ mask |= IN_DELETE;
+
+ if (fileWatch->mask & NOTIFY_MOVE_MASK)
+ mask |= IN_MOVE;
+
+ if (fileWatch->mask & NOTIFY_MODIFY_MASK)
+ mask |= IN_MODIFY;
+
+ return mask;
+}
+
+static void
+inotifyFileWatchAdded (CompCore *c,
+ CompFileWatch *fileWatch)
+{
+ CompInotifyWatch *iw;
+
+ INOTIFY_CORE (c);
+
+ iw = malloc (sizeof (CompInotifyWatch));
+ if (!iw)
+ return;
+
+ iw->handle = fileWatch->handle;
+ iw->wd = inotify_add_watch (ic->fd,
+ fileWatch->path,
+ inotifyMask (fileWatch));
+ if (iw->wd < 0)
+ {
+ perror ("inotify_add_watch");
+ free (iw);
+ return;
+ }
+
+ iw->next = ic->watch;
+ ic->watch = iw;
+}
+
+static void
+inotifyFileWatchRemoved (CompCore *c,
+ CompFileWatch *fileWatch)
+{
+ CompInotifyWatch *p = 0, *iw;
+
+ INOTIFY_CORE (c);
+
+ for (iw = ic->watch; iw; iw = iw->next)
+ {
+ if (iw->handle == fileWatch->handle)
+ break;
+
+ p = iw;
+ }
+
+ if (iw)
+ {
+ if (p)
+ p->next = iw->next;
+ else
+ ic->watch = iw->next;
+
+ if (inotify_rm_watch (ic->fd, iw->wd))
+ perror ("inotify_rm_watch");
+
+ free (iw);
+ }
+}
+
+static Bool
+inotifyInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ InotifyCore *ic;
+ CompFileWatch *fw;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ ic = malloc (sizeof (InotifyCore));
+ if (!ic)
+ return FALSE;
+
+ ic->fd = inotify_init ();
+ if (ic->fd < 0)
+ {
+ perror ("inotify_init");
+ free (ic);
+ return FALSE;
+ }
+
+ ic->watch = NULL;
+
+ ic->watchFdHandle = compAddWatchFd (ic->fd,
+ POLLIN | POLLPRI | POLLHUP | POLLERR,
+ inotifyProcessEvents,
+ NULL);
+
+ WRAP (ic, c, fileWatchAdded, inotifyFileWatchAdded);
+ WRAP (ic, c, fileWatchRemoved, inotifyFileWatchRemoved);
+
+ c->base.privates[corePrivateIndex].ptr = ic;
+
+ for (fw = c->fileWatch; fw; fw = fw->next)
+ inotifyFileWatchAdded (c, fw);
+
+ return TRUE;
+}
+
+static void
+inotifyFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ CompFileWatch *fw;
+
+ INOTIFY_CORE (c);
+
+ compRemoveWatchFd (ic->watchFdHandle);
+
+ for (fw = c->fileWatch; fw; fw = fw->next)
+ inotifyFileWatchRemoved (c, fw);
+
+ close (ic->fd);
+
+ UNWRAP (ic, c, fileWatchAdded);
+ UNWRAP (ic, c, fileWatchRemoved);
+
+ free (ic);
+}
+
+static CompBool
+inotifyInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) inotifyInitCore
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+inotifyFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) inotifyFiniCore
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+inotifyInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&inotifyMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&inotifyMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&inotifyMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+inotifyFini (CompPlugin *p)
+{
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&inotifyMetadata);
+}
+
+static CompMetadata *
+inotifyGetMetadata (CompPlugin *plugin)
+{
+ return &inotifyMetadata;
+}
+
+CompPluginVTable inotifyVTable = {
+ "inotify",
+ inotifyGetMetadata,
+ inotifyInit,
+ inotifyFini,
+ inotifyInitObject,
+ inotifyFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &inotifyVTable;
+}
diff --git a/plugins/kconfig.cpp b/plugins/kconfig.cpp
new file mode 100644
index 0000000..0ecd1ea
--- /dev/null
+++ b/plugins/kconfig.cpp
@@ -0,0 +1,752 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <kglobal.h>
+#include <kstandarddirs.h>
+#include <kapplication.h>
+#include <ksimpleconfig.h>
+#include <qfile.h>
+
+#include <compiz-core.h>
+
+#define COMPIZ_KCONFIG_RC "compizrc"
+
+static KInstance *kInstance;
+
+static CompMetadata kconfigMetadata;
+
+static int corePrivateIndex;
+
+typedef struct _KconfigCore {
+ KConfig *config;
+
+ CompTimeoutHandle syncHandle;
+ CompTimeoutHandle reloadHandle;
+ CompFileWatchHandle fileWatch;
+
+ InitPluginForObjectProc initPluginForObject;
+ SetOptionForPluginProc setOptionForPlugin;
+} KconfigCore;
+
+#define GET_KCONFIG_CORE(c) \
+ ((KconfigCore *) (c)->base.privates[corePrivateIndex].ptr)
+
+#define KCONFIG_CORE(c) \
+ KconfigCore *kc = GET_KCONFIG_CORE (c)
+
+
+static void
+kconfigRcChanged (const char *name,
+ void *closure);
+
+static Bool
+kconfigRcSync (void *closure)
+{
+ KCONFIG_CORE (&core);
+
+ kc->config->sync ();
+
+ kc->syncHandle = 0;
+
+ return FALSE;
+}
+
+static bool
+kconfigValueToBool (CompOptionType type,
+ CompOptionValue *value)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ return (value->b) ? true : false;
+ case CompOptionTypeBell:
+ return (value->action.bell) ? true : false;
+ default:
+ break;
+ }
+
+ return false;
+}
+
+static QString
+kconfigValueToString (CompObject *object,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ QString str;
+
+ switch (type) {
+ case CompOptionTypeBool:
+ str = QString::number (value->b ? TRUE : FALSE);
+ break;
+ case CompOptionTypeFloat:
+ str = QString::number (value->f);
+ break;
+ case CompOptionTypeString:
+ str = QString (value->s);
+ break;
+ case CompOptionTypeColor: {
+ char *color;
+
+ color = colorToString (value->c);
+ if (color)
+ {
+ str = QString (color);
+ free (color);
+ }
+ } break;
+ case CompOptionTypeKey: {
+ char *action = NULL;
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (object)
+ action = keyActionToString (GET_CORE_DISPLAY (object),
+ &value->action);
+ if (action)
+ {
+ str = QString (action);
+ free (action);
+ }
+ } break;
+ case CompOptionTypeButton: {
+ char *action = NULL;
+
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (object)
+ action = buttonActionToString (GET_CORE_DISPLAY (object),
+ &value->action);
+ if (action)
+ {
+ str = QString (action);
+ free (action);
+ }
+ } break;
+ case CompOptionTypeEdge: {
+ char *edge;
+
+ edge = edgeMaskToString (value->action.edgeMask);
+ if (edge)
+ {
+ str = QString (edge);
+ free (edge);
+ }
+ } break;
+ case CompOptionTypeBell:
+ str = QString::number (value->action.bell ? TRUE : FALSE);
+ break;
+ case CompOptionTypeMatch: {
+ char *match;
+
+ match = matchToString (&value->match);
+ if (match)
+ {
+ str = QString (match);
+ free (match);
+ }
+ }
+ default:
+ break;
+ }
+
+ return str;
+}
+
+static QString
+kconfigObjectString (CompObject *object)
+{
+ QString objectName (QString (compObjectTypeName (object->type)));
+ char *name;
+
+ name = compObjectName (object);
+ if (name)
+ {
+ objectName += name;
+ free (name);
+ }
+
+ return objectName;
+}
+
+static void
+kconfigSetOption (CompObject *object,
+ CompOption *o,
+ const char *plugin)
+{
+ QString group (QString (plugin) + "_" + kconfigObjectString (object));
+
+ KCONFIG_CORE (&core);
+
+ kc->config->setGroup (group);
+
+ switch (o->type) {
+ case CompOptionTypeBool:
+ case CompOptionTypeBell:
+ kc->config->writeEntry (o->name,
+ kconfigValueToBool (o->type, &o->value));
+ break;
+ case CompOptionTypeInt:
+ kc->config->writeEntry (o->name, o->value.i);
+ break;
+ case CompOptionTypeFloat:
+ kc->config->writeEntry (o->name, (double) o->value.f);
+ break;
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeMatch:
+ kc->config->writeEntry (o->name,
+ kconfigValueToString (object, o->type,
+ &o->value));
+ break;
+ case CompOptionTypeList: {
+ int i;
+
+ switch (o->value.list.type) {
+ case CompOptionTypeInt: {
+ QValueList< int > list;
+
+ for (i = 0; i < o->value.list.nValue; i++)
+ list += o->value.list.value[i].i;
+
+ kc->config->writeEntry (o->name, list);
+ } break;
+ case CompOptionTypeBool:
+ case CompOptionTypeFloat:
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ case CompOptionTypeMatch: {
+ QStringList list;
+
+ for (i = 0; i < o->value.list.nValue; i++)
+ list += kconfigValueToString (object,
+ o->value.list.type,
+ &o->value.list.value[i]);
+
+ kc->config->writeEntry (o->name, list);
+ } break;
+ case CompOptionTypeAction:
+ case CompOptionTypeList:
+ break;
+ }
+ } break;
+ case CompOptionTypeAction:
+ return;
+ }
+
+ if (!kc->syncHandle)
+ kc->syncHandle = compAddTimeout (0, 0, kconfigRcSync, 0);
+}
+
+static Bool
+kconfigStringToValue (CompObject *object,
+ QString str,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ value->b = str.toInt () ? TRUE : FALSE;
+ break;
+ case CompOptionTypeFloat:
+ value->f = str.toFloat ();
+ break;
+ case CompOptionTypeString:
+ value->s = strdup (str.ascii ());
+ if (!value->s)
+ return FALSE;
+ break;
+ case CompOptionTypeColor:
+ if (!stringToColor (str.ascii (), value->c))
+ return FALSE;
+ break;
+ case CompOptionTypeKey:
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToKeyAction (GET_CORE_DISPLAY (object), str.ascii (),
+ &value->action);
+ break;
+ case CompOptionTypeButton:
+ while (object && object->type != COMP_OBJECT_TYPE_DISPLAY)
+ object = object->parent;
+
+ if (!object)
+ return FALSE;
+
+ stringToButtonAction (GET_CORE_DISPLAY (object), str.ascii (),
+ &value->action);
+ break;
+ case CompOptionTypeEdge:
+ value->action.edgeMask = stringToEdgeMask (str.ascii ());
+ break;
+ case CompOptionTypeBell:
+ value->action.bell = str.toInt () ? TRUE : FALSE;
+ break;
+ case CompOptionTypeMatch:
+ matchInit (&value->match);
+ matchAddFromString (&value->match, str.ascii ());
+ break;
+ default:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+kconfigBoolToValue (bool b,
+ CompOptionType type,
+ CompOptionValue *value)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ value->b = (b) ? TRUE : FALSE;
+ break;
+ case CompOptionTypeBell:
+ value->action.bell = (b) ? TRUE : FALSE;
+ default:
+ break;
+ }
+}
+
+static Bool
+kconfigReadOptionValue (CompObject *object,
+ KConfig *config,
+ CompOption *o,
+ CompOptionValue *value)
+{
+ compInitOptionValue (value);
+
+ switch (o->type) {
+ case CompOptionTypeBool:
+ case CompOptionTypeBell:
+ kconfigBoolToValue (config->readBoolEntry (o->name), o->type, value);
+ break;
+ case CompOptionTypeInt:
+ value->i = config->readNumEntry (o->name);
+ break;
+ case CompOptionTypeFloat:
+ value->f = config->readDoubleNumEntry (o->name);
+ break;
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeMatch:
+ if (!kconfigStringToValue (object,
+ config->readEntry (o->name), o->type,
+ value))
+ return FALSE;
+ break;
+ case CompOptionTypeList: {
+ int n, i;
+
+ value->list.value = NULL;
+ value->list.nValue = 0;
+ value->list.type = o->value.list.type;
+
+ switch (o->value.list.type) {
+ case CompOptionTypeInt: {
+ QValueList< int > list;
+
+ list = config->readIntListEntry (o->name);
+
+ n = list.size ();
+ if (n)
+ {
+ value->list.value = (CompOptionValue *)
+ malloc (sizeof (CompOptionValue) * n);
+ if (value->list.value)
+ {
+ for (i = 0; i < n; i++)
+ value->list.value[i].i = list[i];
+
+ value->list.nValue = n;
+ }
+ }
+ } break;
+ case CompOptionTypeBool:
+ case CompOptionTypeFloat:
+ case CompOptionTypeString:
+ case CompOptionTypeColor:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ case CompOptionTypeMatch: {
+ QStringList list;
+
+ list = config->readListEntry (o->name);
+
+ n = list.size ();
+ if (n)
+ {
+ value->list.value = (CompOptionValue *)
+ malloc (sizeof (CompOptionValue) * n);
+ if (value->list.value)
+ {
+ for (i = 0; i < n; i++)
+ {
+ if (!kconfigStringToValue (object,
+ list[i],
+ value->list.type,
+ &value->list.value[i]))
+ break;
+
+ value->list.nValue++;
+ }
+
+ if (value->list.nValue != n)
+ {
+ compFiniOptionValue (value, o->type);
+ return FALSE;
+ }
+ }
+ }
+ } break;
+ case CompOptionTypeList:
+ case CompOptionTypeAction:
+ return FALSE;
+ }
+ } break;
+ case CompOptionTypeAction:
+ return FALSE;
+ break;
+ }
+
+ return TRUE;
+}
+
+static void
+kconfigGetOption (CompObject *object,
+ CompOption *o,
+ const char *plugin)
+{
+ QString group (QString (plugin) + "_" +
+ kconfigObjectString (object));
+ const QString name (o->name);
+
+ KCONFIG_CORE (&core);
+
+ kc->config->setGroup (group);
+
+ if (kc->config->hasKey (name))
+ {
+ CompOptionValue value;
+
+ if (kconfigReadOptionValue (object, kc->config, o, &value))
+ {
+ (*core.setOptionForPlugin) (object, plugin, o->name, &value);
+ compFiniOptionValue (&value, o->type);
+ }
+ }
+ else
+ {
+ kconfigSetOption (object, o, plugin);
+ }
+}
+
+static CompBool
+kconfigReloadObjectTree (CompObject *object,
+ void *closure);
+
+static CompBool
+kconfigReloadObjectsWithType (CompObjectType type,
+ CompObject *parent,
+ void *closure)
+{
+ compObjectForEach (parent, type, kconfigReloadObjectTree, closure);
+
+ return TRUE;
+}
+
+static CompBool
+kconfigReloadObjectTree (CompObject *object,
+ void *closure)
+{
+ CompPlugin *p = (CompPlugin *) closure;
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ while (nOption--)
+ kconfigGetOption (object, option++, p->vTable->name);
+
+ compObjectForEachType (object, kconfigReloadObjectsWithType, closure);
+
+ return TRUE;
+}
+
+static Bool
+kconfigRcReload (void *closure)
+{
+ CompPlugin *p;
+
+ KCONFIG_CORE (&core);
+
+ kc->config->reparseConfiguration ();
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ kconfigReloadObjectTree (&core.base, (void *) p);
+ }
+
+ kc->reloadHandle = 0;
+
+ return FALSE;
+}
+
+static void
+kconfigRcChanged (const char *name,
+ void *closure)
+{
+ if (strcmp (name, COMPIZ_KCONFIG_RC) == 0)
+ {
+ KCONFIG_CORE (&core);
+
+ if (!kc->reloadHandle)
+ kc->reloadHandle = compAddTimeout (0, 0, kconfigRcReload, closure);
+ }
+}
+
+static CompBool
+kconfigSetOptionForPlugin (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompBool status;
+
+ KCONFIG_CORE (&core);
+
+ UNWRAP (kc, &core, setOptionForPlugin);
+ status = (*core.setOptionForPlugin) (object, plugin, name, value);
+ WRAP (kc, &core, setOptionForPlugin, kconfigSetOptionForPlugin);
+
+ if (status && !kc->reloadHandle)
+ {
+ CompPlugin *p;
+
+ p = findActivePlugin (plugin);
+ if (p && p->vTable->getObjectOptions)
+ {
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, object, &nOption);
+ option = compFindOption (option, nOption, name, 0);
+ if (option)
+ kconfigSetOption (object, option, p->vTable->name);
+ }
+ }
+
+ return status;
+}
+
+static CompBool
+kconfigInitPluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+ CompBool status;
+
+ KCONFIG_CORE (&core);
+
+ UNWRAP (kc, &core, initPluginForObject);
+ status = (*core.initPluginForObject) (p, o);
+ WRAP (kc, &core, initPluginForObject, kconfigInitPluginForObject);
+
+ if (status && p->vTable->getObjectOptions)
+ {
+ CompOption *option;
+ int nOption;
+
+ option = (*p->vTable->getObjectOptions) (p, o, &nOption);
+ while (nOption--)
+ kconfigGetOption (o, option++, p->vTable->name);
+ }
+
+ return status;
+}
+
+static Bool
+kconfigInitCore (CompPlugin *p,
+ CompCore *c)
+{
+ KconfigCore *kc;
+ QString dir;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ kc = new KconfigCore;
+ if (!kc)
+ return FALSE;
+
+ kc->config = new KConfig (COMPIZ_KCONFIG_RC);
+ if (!kc->config)
+ {
+ delete kc;
+ return FALSE;
+ }
+
+ kc->reloadHandle = compAddTimeout (0, 0, kconfigRcReload, 0);
+ kc->syncHandle = 0;
+ kc->fileWatch = 0;
+
+ dir = KGlobal::dirs ()->saveLocation ("config", QString::null, false);
+
+ if (QFile::exists (dir))
+ {
+ kc->fileWatch = addFileWatch (dir.ascii (), ~0, kconfigRcChanged, 0);
+ }
+ else
+ {
+ compLogMessage ("kconfig", CompLogLevelWarn, "Bad access \"%s\"",
+ dir.ascii ());
+ }
+
+ WRAP (kc, c, initPluginForObject, kconfigInitPluginForObject);
+ WRAP (kc, c, setOptionForPlugin, kconfigSetOptionForPlugin);
+
+ c->base.privates[corePrivateIndex].ptr = kc;
+
+ return TRUE;
+}
+
+static void
+kconfigFiniCore (CompPlugin *p,
+ CompCore *c)
+{
+ KCONFIG_CORE (c);
+
+ UNWRAP (kc, c, initPluginForObject);
+ UNWRAP (kc, c, setOptionForPlugin);
+
+ if (kc->reloadHandle)
+ compRemoveTimeout (kc->reloadHandle);
+
+ if (kc->syncHandle)
+ {
+ compRemoveTimeout (kc->syncHandle);
+ kconfigRcSync (0);
+ }
+
+ if (kc->fileWatch)
+ removeFileWatch (kc->fileWatch);
+
+ delete kc->config;
+ delete kc;
+}
+
+static CompBool
+kconfigInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) kconfigInitCore
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+kconfigFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) kconfigFiniCore
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+kconfigInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&kconfigMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ corePrivateIndex = allocateCorePrivateIndex ();
+ if (corePrivateIndex < 0)
+ {
+ compFiniMetadata (&kconfigMetadata);
+ return FALSE;
+ }
+
+ kInstance = new KInstance ("compiz-kconfig");
+ if (!kInstance)
+ {
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&kconfigMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&kconfigMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+kconfigFini (CompPlugin *p)
+{
+ delete kInstance;
+
+ freeCorePrivateIndex (corePrivateIndex);
+ compFiniMetadata (&kconfigMetadata);
+}
+
+static CompMetadata *
+kconfigGetMetadata (CompPlugin *plugin)
+{
+ return &kconfigMetadata;
+}
+
+CompPluginVTable kconfigVTable = {
+ "kconfig",
+ kconfigGetMetadata,
+ kconfigInit,
+ kconfigFini,
+ kconfigInitObject,
+ kconfigFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &kconfigVTable;
+}
diff --git a/plugins/minimize.c b/plugins/minimize.c
new file mode 100644
index 0000000..d1093c2
--- /dev/null
+++ b/plugins/minimize.c
@@ -0,0 +1,1059 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <X11/Xatom.h>
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+static CompMetadata minMetadata;
+
+static int displayPrivateIndex;
+
+typedef struct _MinDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ Atom winChangeStateAtom;
+} MinDisplay;
+
+#define MIN_SCREEN_OPTION_SPEED 0
+#define MIN_SCREEN_OPTION_TIMESTEP 1
+#define MIN_SCREEN_OPTION_WINDOW_MATCH 2
+#define MIN_SCREEN_OPTION_SHADE_RESISTANCE 3
+#define MIN_SCREEN_OPTION_NUM 4
+
+typedef struct _MinScreen {
+ int windowPrivateIndex;
+
+ CompOption opt[MIN_SCREEN_OPTION_NUM];
+
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+ FocusWindowProc focusWindow;
+
+ int shadeStep;
+ int moreAdjust;
+} MinScreen;
+
+typedef struct _MinWindow {
+ GLfloat xVelocity, yVelocity, xScaleVelocity, yScaleVelocity;
+ GLfloat xScale, yScale;
+ GLfloat tx, ty;
+
+ Bool adjust;
+
+ int state, newState;
+
+ int shade;
+ Region region;
+
+ int unmapCnt;
+
+ Bool ignoreDamage;
+} MinWindow;
+
+#define GET_MIN_DISPLAY(d) \
+ ((MinDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define MIN_DISPLAY(d) \
+ MinDisplay *md = GET_MIN_DISPLAY (d)
+
+#define GET_MIN_SCREEN(s, md) \
+ ((MinScreen *) (s)->base.privates[(md)->screenPrivateIndex].ptr)
+
+#define MIN_SCREEN(s) \
+ MinScreen *ms = GET_MIN_SCREEN (s, GET_MIN_DISPLAY (s->display))
+
+#define GET_MIN_WINDOW(w, ms) \
+ ((MinWindow *) (w)->base.privates[(ms)->windowPrivateIndex].ptr)
+
+#define MIN_WINDOW(w) \
+ MinWindow *mw = GET_MIN_WINDOW (w, \
+ GET_MIN_SCREEN (w->screen, \
+ GET_MIN_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+minGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ MIN_SCREEN (screen);
+
+ *count = NUM_OPTIONS (ms);
+ return ms->opt;
+}
+
+static Bool
+minSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ MIN_SCREEN (screen);
+
+ o = compFindOption (ms->opt, NUM_OPTIONS (ms), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case MIN_SCREEN_OPTION_SHADE_RESISTANCE:
+ if (compSetIntOption (o, value))
+ {
+ if (o->value.i)
+ ms->shadeStep = o->rest.i.max - o->value.i + 1;
+ else
+ ms->shadeStep = 0;
+
+ return TRUE;
+ }
+ break;
+ default:
+ if (compSetOption (o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+minSetShade (CompWindow *w,
+ int shade)
+{
+ REGION rect;
+ int h = w->attrib.height + w->attrib.border_width * 2;
+
+ MIN_WINDOW (w);
+
+ EMPTY_REGION (w->region);
+
+ rect.rects = &rect.extents;
+ rect.numRects = rect.size = 1;
+
+ w->height = shade;
+
+ rect.extents.x1 = 0;
+ rect.extents.y1 = h - shade;
+ rect.extents.x2 = w->width;
+ rect.extents.y2 = h;
+
+ XIntersectRegion (mw->region, &rect, w->region);
+ XOffsetRegion (w->region, w->attrib.x, w->attrib.y - (h - shade));
+
+ w->matrix = w->texture->matrix;
+ w->matrix.x0 -= (w->attrib.x * w->matrix.xx);
+ w->matrix.y0 -= ((w->attrib.y - (h - shade)) * w->matrix.yy);
+
+ (*w->screen->windowResizeNotify) (w, 0, 0, 0, 0);
+}
+
+static int
+minGetWindowState (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ int retval = WithdrawnState;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmStateAtom, 0L, 1L, FALSE,
+ w->screen->display->wmStateAtom,
+ &actual, &format, &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ memcpy (&retval, data, sizeof (int));
+
+ XFree ((void *) data);
+ }
+
+ return retval;
+}
+
+static int
+adjustMinVelocity (CompWindow *w)
+{
+ float dx, dy, dxs, dys, adjust, amount;
+ float x1, y1, xScale, yScale;
+
+ MIN_WINDOW (w);
+
+ if (mw->newState == IconicState)
+ {
+ x1 = w->iconGeometry.x;
+ y1 = w->iconGeometry.y;
+ xScale = (float) w->iconGeometry.width / w->width;
+ yScale = (float) w->iconGeometry.height / w->height;
+ }
+ else
+ {
+ x1 = w->serverX;
+ y1 = w->serverY;
+ xScale = yScale = 1.0f;
+ }
+
+ dx = x1 - (w->attrib.x + mw->tx);
+
+ adjust = dx * 0.15f;
+ amount = fabs (dx) * 1.5f;
+ if (amount < 0.5f)
+ amount = 0.5f;
+ else if (amount > 5.0f)
+ amount = 5.0f;
+
+ mw->xVelocity = (amount * mw->xVelocity + adjust) / (amount + 1.0f);
+
+ dy = y1 - (w->attrib.y + mw->ty);
+
+ adjust = dy * 0.15f;
+ amount = fabs (dy) * 1.5f;
+ if (amount < 0.5f)
+ amount = 0.5f;
+ else if (amount > 5.0f)
+ amount = 5.0f;
+
+ mw->yVelocity = (amount * mw->yVelocity + adjust) / (amount + 1.0f);
+
+ dxs = xScale - mw->xScale;
+
+ adjust = dxs * 0.15f;
+ amount = fabs (dxs) * 10.0f;
+ if (amount < 0.01f)
+ amount = 0.01f;
+ else if (amount > 0.15f)
+ amount = 0.15f;
+
+ mw->xScaleVelocity = (amount * mw->xScaleVelocity + adjust) /
+ (amount + 1.0f);
+
+ dys = yScale - mw->yScale;
+
+ adjust = dys * 0.15f;
+ amount = fabs (dys) * 10.0f;
+ if (amount < 0.01f)
+ amount = 0.01f;
+ else if (amount > 0.15f)
+ amount = 0.15f;
+
+ mw->yScaleVelocity = (amount * mw->yScaleVelocity + adjust) /
+ (amount + 1.0f);
+
+ if (fabs (dx) < 0.1f && fabs (mw->xVelocity) < 0.2f &&
+ fabs (dy) < 0.1f && fabs (mw->yVelocity) < 0.2f &&
+ fabs (dxs) < 0.001f && fabs (mw->xScaleVelocity) < 0.002f &&
+ fabs (dys) < 0.001f && fabs (mw->yScaleVelocity) < 0.002f)
+ {
+ mw->xVelocity = mw->yVelocity = mw->xScaleVelocity =
+ mw->yScaleVelocity = 0.0f;
+ mw->tx = x1 - w->attrib.x;
+ mw->ty = y1 - w->attrib.y;
+ mw->xScale = xScale;
+ mw->yScale = yScale;
+
+ return 0;
+ }
+
+ return 1;
+}
+
+static void
+minPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ MIN_SCREEN (s);
+
+ if (ms->moreAdjust)
+ {
+ CompWindow *w;
+ int steps, h;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.05f *
+ ms->opt[MIN_SCREEN_OPTION_SPEED].value.f;
+ steps = amount / (0.5f * ms->opt[MIN_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ ms->moreAdjust = 0;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ {
+ mw->adjust = adjustMinVelocity (w);
+
+ ms->moreAdjust |= mw->adjust;
+
+ mw->tx += mw->xVelocity * chunk;
+ mw->ty += mw->yVelocity * chunk;
+ mw->xScale += mw->xScaleVelocity * chunk;
+ mw->yScale += mw->yScaleVelocity * chunk;
+
+ if (!mw->adjust)
+ {
+ mw->state = mw->newState;
+
+ mw->ignoreDamage = TRUE;
+ while (mw->unmapCnt)
+ {
+ unmapWindow (w);
+ mw->unmapCnt--;
+ }
+ mw->ignoreDamage = FALSE;
+ }
+ }
+ else if (mw->region && w->damaged)
+ {
+ if (w->shaded)
+ {
+ if (mw->shade > 0)
+ {
+ mw->shade -= (chunk * ms->shadeStep) + 1;
+
+ if (mw->shade > 0)
+ {
+ ms->moreAdjust = TRUE;
+ }
+ else
+ {
+ mw->shade = 0;
+
+ mw->ignoreDamage = TRUE;
+ while (mw->unmapCnt)
+ {
+ unmapWindow (w);
+ mw->unmapCnt--;
+ }
+ mw->ignoreDamage = FALSE;
+ }
+ }
+ }
+ else
+ {
+ h = w->attrib.height + w->attrib.border_width * 2;
+ if (mw->shade < h)
+ {
+ mw->shade += (chunk * ms->shadeStep) + 1;
+
+ if (mw->shade < h)
+ {
+ ms->moreAdjust = TRUE;
+ }
+ else
+ {
+ mw->shade = MAXSHORT;
+
+ minSetShade (w, h);
+
+ XDestroyRegion (mw->region);
+ mw->region = NULL;
+
+ addWindowDamage (w);
+ }
+ }
+ }
+ }
+ }
+
+ if (!ms->moreAdjust)
+ break;
+ }
+
+ if (ms->moreAdjust)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ {
+ addWindowDamage (w);
+ }
+ else if (mw->region && w->damaged)
+ {
+ h = w->attrib.height + w->attrib.border_width * 2;
+ if (mw->shade && mw->shade < h)
+ {
+ minSetShade (w, mw->shade);
+ addWindowDamage (w);
+ }
+ }
+ }
+ }
+ }
+
+ UNWRAP (ms, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ms, s, preparePaintScreen, minPreparePaintScreen);
+}
+
+static void
+minDonePaintScreen (CompScreen *s)
+{
+ MIN_SCREEN (s);
+
+ if (ms->moreAdjust)
+ {
+ CompWindow *w;
+ int h;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ {
+ addWindowDamage (w);
+ }
+ else if (mw->region)
+ {
+ h = w->attrib.height + w->attrib.border_width * 2;
+ if (mw->shade && mw->shade < h)
+ addWindowDamage (w);
+ }
+ }
+ }
+
+ UNWRAP (ms, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (ms, s, donePaintScreen, minDonePaintScreen);
+}
+
+static Bool
+minPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ MIN_SCREEN (s);
+
+ if (ms->moreAdjust)
+ mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK;
+
+ UNWRAP (ms, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (ms, s, paintOutput, minPaintOutput);
+
+ return status;
+}
+
+static Bool
+minPaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ MIN_SCREEN (s);
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ {
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+
+ if (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK)
+ return FALSE;
+
+ UNWRAP (ms, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region,
+ mask | PAINT_WINDOW_NO_CORE_INSTANCE_MASK);
+ WRAP (ms, s, paintWindow, minPaintWindow);
+
+ initFragmentAttrib (&fragment, &w->lastPaint);
+
+ if (w->alpha || fragment.opacity != OPAQUE)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ matrixTranslate (&wTransform, w->attrib.x, w->attrib.y, 0.0f);
+ matrixScale (&wTransform, mw->xScale, mw->yScale, 1.0f);
+ matrixTranslate (&wTransform,
+ mw->tx / mw->xScale - w->attrib.x,
+ mw->ty / mw->yScale - w->attrib.y,
+ 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ (*s->drawWindow) (w, &wTransform, &fragment, region,
+ mask | PAINT_WINDOW_TRANSFORMED_MASK);
+
+ glPopMatrix ();
+ }
+ else
+ {
+ /* no core instance from windows that have been animated */
+ if (mw->state == IconicState)
+ mask |= PAINT_WINDOW_NO_CORE_INSTANCE_MASK;
+
+ UNWRAP (ms, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ms, s, paintWindow, minPaintWindow);
+ }
+
+ return status;
+}
+
+static void
+minHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompWindow *w;
+
+ MIN_DISPLAY (d);
+
+ switch (event->type) {
+ case MapNotify:
+ w = findWindowAtDisplay (d, event->xmap.window);
+ if (w)
+ {
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ mw->state = mw->newState;
+
+ if (mw->region)
+ w->height = 0;
+
+ mw->ignoreDamage = TRUE;
+ while (mw->unmapCnt)
+ {
+ unmapWindow (w);
+ mw->unmapCnt--;
+ }
+ mw->ignoreDamage = FALSE;
+ }
+ break;
+ case UnmapNotify:
+ w = findWindowAtDisplay (d, event->xunmap.window);
+ if (w)
+ {
+ MIN_SCREEN (w->screen);
+
+ if (w->pendingUnmaps && onCurrentDesktop (w)) /* Normal -> Iconic */
+ {
+ CompMatch *match =
+ &ms->opt[MIN_SCREEN_OPTION_WINDOW_MATCH].value.match;
+
+ MIN_WINDOW (w);
+
+ if (w->shaded)
+ {
+ if (!mw->region)
+ mw->region = XCreateRegion ();
+
+ if (mw->region && ms->shadeStep)
+ {
+ XSubtractRegion (w->region, &emptyRegion, mw->region);
+ XOffsetRegion (mw->region, -w->attrib.x,
+ w->attrib.height +
+ w->attrib.border_width * 2 -
+ w->height - w->attrib.y);
+
+ mw->shade = w->height;
+
+ mw->adjust = FALSE;
+ ms->moreAdjust = TRUE;
+
+ mw->unmapCnt++;
+ w->unmapRefCnt++;
+
+ addWindowDamage (w);
+ }
+ }
+ else if (!w->invisible && matchEval (match, w))
+ {
+ if (w->iconGeometrySet)
+ {
+ mw->newState = IconicState;
+
+ mw->xScale = w->paint.xScale;
+ mw->yScale = w->paint.yScale;
+ mw->tx = w->attrib.x - w->serverX;
+ mw->ty = w->attrib.y - w->serverY;
+
+ if (mw->region)
+ {
+ XDestroyRegion (mw->region);
+ mw->region = NULL;
+ }
+
+ mw->shade = MAXSHORT;
+
+ mw->adjust = TRUE;
+ ms->moreAdjust = TRUE;
+
+ mw->unmapCnt++;
+ w->unmapRefCnt++;
+
+ addWindowDamage (w);
+ }
+ }
+ }
+ else /* X -> Withdrawn */
+ {
+ MIN_WINDOW (w);
+
+ if (mw->adjust)
+ {
+ mw->adjust = FALSE;
+ mw->xScale = mw->yScale = 1.0f;
+ mw->tx = mw->ty = 0.0f;
+ mw->xVelocity = mw->yVelocity = 0.0f;
+ mw->xScaleVelocity = mw->yScaleVelocity = 1.0f;
+ mw->shade = MAXSHORT;
+
+ if (mw->region)
+ {
+ XDestroyRegion (mw->region);
+ mw->region = NULL;
+ }
+ }
+
+ mw->state = NormalState;
+ }
+ }
+ default:
+ break;
+ }
+
+ UNWRAP (md, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (md, d, handleEvent, minHandleEvent);
+}
+
+static Bool
+minDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status = FALSE;
+
+ MIN_SCREEN (w->screen);
+ MIN_WINDOW (w);
+
+ if (mw->ignoreDamage)
+ return TRUE;
+
+ if (initial)
+ {
+ if (mw->state == IconicState)
+ {
+ CompMatch *match =
+ &ms->opt[MIN_SCREEN_OPTION_WINDOW_MATCH].value.match;
+
+ mw->state = NormalState;
+
+ if (!w->invisible &&
+ w->iconGeometrySet &&
+ matchEval (match, w))
+ {
+ if (!mw->adjust)
+ {
+ mw->adjust = TRUE;
+ ms->moreAdjust = TRUE;
+
+ mw->tx = w->iconGeometry.x - w->serverX;
+ mw->ty = w->iconGeometry.y - w->serverY;
+ mw->xScale = (float) w->iconGeometry.width / w->width;
+ mw->yScale = (float) w->iconGeometry.height / w->height;
+
+ addWindowDamage (w);
+ }
+ }
+ }
+ else if (mw->region && mw->shade < w->height)
+ {
+ if (ms->shadeStep && !w->invisible)
+ {
+ XSubtractRegion (w->region, &emptyRegion, mw->region);
+ XOffsetRegion (mw->region, -w->attrib.x, -w->attrib.y);
+
+ /* bind pixmap here so we have something to unshade with */
+ if (!w->texture->pixmap && !w->bindFailed)
+ bindWindow (w);
+
+ ms->moreAdjust = TRUE;
+ }
+ else
+ {
+ mw->shade = MAXSHORT;
+ }
+ }
+
+ mw->newState = NormalState;
+ }
+ else if (mw->adjust)
+ {
+ damageTransformedWindowRect (w,
+ mw->xScale,
+ mw->yScale,
+ mw->tx,
+ mw->ty,
+ rect);
+
+ status = TRUE;
+ }
+
+ UNWRAP (ms, w->screen, damageWindowRect);
+ status |= (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (ms, w->screen, damageWindowRect, minDamageWindowRect);
+
+ return status;
+}
+
+static Bool
+minFocusWindow (CompWindow *w)
+{
+ Bool status;
+
+ MIN_SCREEN (w->screen);
+ MIN_WINDOW (w);
+
+ if (mw->unmapCnt)
+ return FALSE;
+
+ UNWRAP (ms, w->screen, focusWindow);
+ status = (*w->screen->focusWindow) (w);
+ WRAP (ms, w->screen, focusWindow, minFocusWindow);
+
+ return status;
+}
+
+static Bool
+minInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ MinDisplay *md;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ md = malloc (sizeof (MinDisplay));
+ if (!md)
+ return FALSE;
+
+ md->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (md->screenPrivateIndex < 0)
+ {
+ free (md);
+ return FALSE;
+ }
+
+ md->winChangeStateAtom = XInternAtom (d->display, "WM_CHANGE_STATE", 0);
+
+ WRAP (md, d, handleEvent, minHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = md;
+
+ return TRUE;
+}
+
+static void
+minFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ MIN_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, md->screenPrivateIndex);
+
+ UNWRAP (md, d, handleEvent);
+
+ free (md);
+}
+
+static const CompMetadataOptionInfo minScreenOptionInfo[] = {
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "window_match", "match", 0, 0, 0 },
+ { "shade_resistance", "int", "<min>0</min><max>100</max>", 0, 0 }
+};
+
+static Bool
+minInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ MinScreen *ms;
+
+ MIN_DISPLAY (s->display);
+
+ ms = malloc (sizeof (MinScreen));
+ if (!ms)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &minMetadata,
+ minScreenOptionInfo,
+ ms->opt,
+ MIN_SCREEN_OPTION_NUM))
+ {
+ free (ms);
+ return FALSE;
+ }
+
+ ms->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (ms->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, ms->opt, MIN_SCREEN_OPTION_NUM);
+ free (ms);
+ return FALSE;
+ }
+
+ ms->moreAdjust = FALSE;
+ ms->shadeStep = ms->opt[MIN_SCREEN_OPTION_SHADE_RESISTANCE].rest.i.max -
+ ms->opt[MIN_SCREEN_OPTION_SHADE_RESISTANCE].value.i + 1;
+
+ WRAP (ms, s, preparePaintScreen, minPreparePaintScreen);
+ WRAP (ms, s, donePaintScreen, minDonePaintScreen);
+ WRAP (ms, s, paintOutput, minPaintOutput);
+ WRAP (ms, s, paintWindow, minPaintWindow);
+ WRAP (ms, s, damageWindowRect, minDamageWindowRect);
+ WRAP (ms, s, focusWindow, minFocusWindow);
+
+ s->base.privates[md->screenPrivateIndex].ptr = ms;
+
+ return TRUE;
+}
+
+static void
+minFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ MIN_SCREEN (s);
+
+ freeWindowPrivateIndex (s, ms->windowPrivateIndex);
+
+ UNWRAP (ms, s, preparePaintScreen);
+ UNWRAP (ms, s, donePaintScreen);
+ UNWRAP (ms, s, paintOutput);
+ UNWRAP (ms, s, paintWindow);
+ UNWRAP (ms, s, damageWindowRect);
+ UNWRAP (ms, s, focusWindow);
+
+ compFiniScreenOptions (s, ms->opt, MIN_SCREEN_OPTION_NUM);
+
+ free (ms);
+}
+
+static Bool
+minInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ MinWindow *mw;
+
+ MIN_SCREEN (w->screen);
+
+ mw = malloc (sizeof (MinWindow));
+ if (!mw)
+ return FALSE;
+
+ mw->xScale = mw->yScale = 1.0f;
+ mw->tx = mw->ty = 0.0f;
+ mw->adjust = FALSE;
+ mw->xVelocity = mw->yVelocity = 0.0f;
+ mw->xScaleVelocity = mw->yScaleVelocity = 1.0f;
+
+ mw->unmapCnt = 0;
+
+ mw->ignoreDamage = FALSE;
+
+ if (w->state & CompWindowStateHiddenMask)
+ {
+ if (w->shaded)
+ {
+ mw->state = mw->newState = NormalState;
+ mw->shade = 0;
+ mw->region = XCreateRegion ();
+ }
+ else
+ {
+ mw->state = mw->newState = minGetWindowState (w);
+ mw->shade = MAXSHORT;
+ mw->region = NULL;
+ }
+ }
+ else
+ {
+ mw->state = mw->newState = NormalState;
+ mw->shade = MAXSHORT;
+ mw->region = NULL;
+ }
+
+ w->base.privates[ms->windowPrivateIndex].ptr = mw;
+
+ return TRUE;
+}
+
+static void
+minFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ MIN_WINDOW (w);
+
+ mw->ignoreDamage = TRUE;
+ while (mw->unmapCnt--)
+ unmapWindow (w);
+ mw->ignoreDamage = FALSE;
+
+ if (mw->region)
+ XDestroyRegion (mw->region);
+
+ free (mw);
+}
+
+static CompBool
+minInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) minInitDisplay,
+ (InitPluginObjectProc) minInitScreen,
+ (InitPluginObjectProc) minInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+minFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) minFiniDisplay,
+ (FiniPluginObjectProc) minFiniScreen,
+ (FiniPluginObjectProc) minFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+minGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) 0, /* GetDisplayOptions */
+ (GetPluginObjectOptionsProc) minGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+minSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) 0, /* SetDisplayOption */
+ (SetPluginObjectOptionProc) minSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+minInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&minMetadata,
+ p->vTable->name, 0, 0,
+ minScreenOptionInfo,
+ MIN_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&minMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&minMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+minFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&minMetadata);
+}
+
+static CompMetadata *
+minGetMetadata (CompPlugin *plugin)
+{
+ return &minMetadata;
+}
+
+static CompPluginVTable minVTable = {
+ "minimize",
+ minGetMetadata,
+ minInit,
+ minFini,
+ minInitObject,
+ minFiniObject,
+ minGetObjectOptions,
+ minSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &minVTable;
+}
diff --git a/plugins/move.c b/plugins/move.c
new file mode 100644
index 0000000..2255fd8
--- /dev/null
+++ b/plugins/move.c
@@ -0,0 +1,1048 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/cursorfont.h>
+
+#include <compiz-core.h>
+
+static CompMetadata moveMetadata;
+
+struct _MoveKeys {
+ char *name;
+ int dx;
+ int dy;
+} mKeys[] = {
+ { "Left", -1, 0 },
+ { "Right", 1, 0 },
+ { "Up", 0, -1 },
+ { "Down", 0, 1 }
+};
+
+#define NUM_KEYS (sizeof (mKeys) / sizeof (mKeys[0]))
+
+#define KEY_MOVE_INC 24
+
+#define SNAP_BACK 20
+#define SNAP_OFF 100
+
+static int displayPrivateIndex;
+
+#define MOVE_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define MOVE_DISPLAY_OPTION_INITIATE_KEY 1
+#define MOVE_DISPLAY_OPTION_OPACITY 2
+#define MOVE_DISPLAY_OPTION_CONSTRAIN_Y 3
+#define MOVE_DISPLAY_OPTION_SNAPOFF_MAXIMIZED 4
+#define MOVE_DISPLAY_OPTION_LAZY_POSITIONING 5
+#define MOVE_DISPLAY_OPTION_NUM 6
+
+typedef struct _MoveDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[MOVE_DISPLAY_OPTION_NUM];
+
+ CompWindow *w;
+ int savedX;
+ int savedY;
+ int x;
+ int y;
+ Region region;
+ int status;
+ KeyCode key[NUM_KEYS];
+
+ int releaseButton;
+
+ GLushort moveOpacity;
+} MoveDisplay;
+
+typedef struct _MoveScreen {
+ PaintWindowProc paintWindow;
+
+ int grabIndex;
+
+ Cursor moveCursor;
+
+ unsigned int origState;
+
+ int snapOffY;
+ int snapBackY;
+} MoveScreen;
+
+#define GET_MOVE_DISPLAY(d) \
+ ((MoveDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define MOVE_DISPLAY(d) \
+ MoveDisplay *md = GET_MOVE_DISPLAY (d)
+
+#define GET_MOVE_SCREEN(s, md) \
+ ((MoveScreen *) (s)->base.privates[(md)->screenPrivateIndex].ptr)
+
+#define MOVE_SCREEN(s) \
+ MoveScreen *ms = GET_MOVE_SCREEN (s, GET_MOVE_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static Bool
+moveInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ MOVE_DISPLAY (d);
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w && (w->actions & CompWindowActionMoveMask))
+ {
+ XRectangle workArea;
+ unsigned int mods;
+ int x, y, button;
+
+ MOVE_SCREEN (w->screen);
+
+ mods = getIntOptionNamed (option, nOption, "modifiers", 0);
+
+ x = getIntOptionNamed (option, nOption, "x",
+ w->attrib.x + (w->width / 2));
+ y = getIntOptionNamed (option, nOption, "y",
+ w->attrib.y + (w->height / 2));
+
+ button = getIntOptionNamed (option, nOption, "button", -1);
+
+ if (otherScreenGrabExist (w->screen, "move", 0))
+ return FALSE;
+
+ if (md->w)
+ return FALSE;
+
+ if (w->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask |
+ CompWindowTypeFullscreenMask))
+ return FALSE;
+
+ if (w->attrib.override_redirect)
+ return FALSE;
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (md->region)
+ {
+ XDestroyRegion (md->region);
+ md->region = NULL;
+ }
+
+ md->status = RectangleOut;
+
+ md->savedX = w->serverX;
+ md->savedY = w->serverY;
+
+ md->x = 0;
+ md->y = 0;
+
+ lastPointerX = x;
+ lastPointerY = y;
+
+ ms->origState = w->state;
+
+ getWorkareaForOutput (w->screen,
+ outputDeviceForWindow (w),
+ &workArea);
+
+ ms->snapBackY = w->serverY - workArea.y;
+ ms->snapOffY = y - workArea.y;
+
+ if (!ms->grabIndex)
+ ms->grabIndex = pushScreenGrab (w->screen, ms->moveCursor, "move");
+
+ if (ms->grabIndex)
+ {
+ md->w = w;
+
+ md->releaseButton = button;
+
+ (w->screen->windowGrabNotify) (w, x, y, mods,
+ CompWindowGrabMoveMask |
+ CompWindowGrabButtonMask);
+
+ if (d->opt[COMP_DISPLAY_OPTION_RAISE_ON_CLICK].value.b)
+ updateWindowAttributes (w,
+ CompStackingUpdateModeAboveFullscreen);
+
+ if (state & CompActionStateInitKey)
+ {
+ int xRoot, yRoot;
+
+ xRoot = w->attrib.x + (w->width / 2);
+ yRoot = w->attrib.y + (w->height / 2);
+
+ warpPointer (w->screen, xRoot - pointerX, yRoot - pointerY);
+ }
+
+ if (md->moveOpacity != OPAQUE)
+ addWindowDamage (w);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+moveTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ MOVE_DISPLAY (d);
+
+ if (md->w)
+ {
+ MOVE_SCREEN (md->w->screen);
+
+ if (state & CompActionStateCancel)
+ moveWindow (md->w,
+ md->savedX - md->w->attrib.x,
+ md->savedY - md->w->attrib.y,
+ TRUE, FALSE);
+
+ syncWindowPosition (md->w);
+
+ /* update window attributes as window constraints may have
+ changed - needed e.g. if a maximized window was moved
+ to another output device */
+ updateWindowAttributes (md->w, CompStackingUpdateModeNone);
+
+ (md->w->screen->windowUngrabNotify) (md->w);
+
+ if (ms->grabIndex)
+ {
+ removeScreenGrab (md->w->screen, ms->grabIndex, NULL);
+ ms->grabIndex = 0;
+ }
+
+ if (md->moveOpacity != OPAQUE)
+ addWindowDamage (md->w);
+
+ md->w = 0;
+ md->releaseButton = 0;
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+/* creates a region containing top and bottom struts. only struts that are
+ outside the screen workarea are considered. */
+static Region
+moveGetYConstrainRegion (CompScreen *s)
+{
+ CompWindow *w;
+ Region region;
+ REGION r;
+ XRectangle workArea;
+ BoxRec extents;
+ int i;
+
+ region = XCreateRegion ();
+ if (!region)
+ return NULL;
+
+ r.rects = &r.extents;
+ r.numRects = r.size = 1;
+
+ r.extents.x1 = MINSHORT;
+ r.extents.y1 = 0;
+ r.extents.x2 = 0;
+ r.extents.y2 = s->height;
+
+ XUnionRegion (&r, region, region);
+
+ r.extents.x1 = s->width;
+ r.extents.x2 = MAXSHORT;
+
+ XUnionRegion (&r, region, region);
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ XUnionRegion (&s->outputDev[i].region, region, region);
+
+ getWorkareaForOutput (s, i, &workArea);
+ extents = s->outputDev[i].region.extents;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!w->mapNum)
+ continue;
+
+ if (w->struts)
+ {
+ r.extents.x1 = w->struts->top.x;
+ r.extents.y1 = w->struts->top.y;
+ r.extents.x2 = r.extents.x1 + w->struts->top.width;
+ r.extents.y2 = r.extents.y1 + w->struts->top.height;
+
+ if (r.extents.x1 < extents.x1)
+ r.extents.x1 = extents.x1;
+ if (r.extents.x2 > extents.x2)
+ r.extents.x2 = extents.x2;
+ if (r.extents.y1 < extents.y1)
+ r.extents.y1 = extents.y1;
+ if (r.extents.y2 > extents.y2)
+ r.extents.y2 = extents.y2;
+
+ if (r.extents.x1 < r.extents.x2 && r.extents.y1 < r.extents.y2)
+ {
+ if (r.extents.y2 <= workArea.y)
+ XSubtractRegion (region, &r, region);
+ }
+
+ r.extents.x1 = w->struts->bottom.x;
+ r.extents.y1 = w->struts->bottom.y;
+ r.extents.x2 = r.extents.x1 + w->struts->bottom.width;
+ r.extents.y2 = r.extents.y1 + w->struts->bottom.height;
+
+ if (r.extents.x1 < extents.x1)
+ r.extents.x1 = extents.x1;
+ if (r.extents.x2 > extents.x2)
+ r.extents.x2 = extents.x2;
+ if (r.extents.y1 < extents.y1)
+ r.extents.y1 = extents.y1;
+ if (r.extents.y2 > extents.y2)
+ r.extents.y2 = extents.y2;
+
+ if (r.extents.x1 < r.extents.x2 && r.extents.y1 < r.extents.y2)
+ {
+ if (r.extents.y1 >= (workArea.y + workArea.height))
+ XSubtractRegion (region, &r, region);
+ }
+ }
+ }
+ }
+
+ return region;
+}
+
+static void
+moveHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ MOVE_SCREEN (s);
+
+ if (ms->grabIndex)
+ {
+ CompWindow *w;
+ int dx, dy;
+ int wX, wY;
+ int wWidth, wHeight;
+
+ MOVE_DISPLAY (s->display);
+
+ w = md->w;
+
+ wX = w->serverX;
+ wY = w->serverY;
+ wWidth = w->serverWidth + w->serverBorderWidth * 2;
+ wHeight = w->serverHeight + w->serverBorderWidth * 2;
+
+ md->x += xRoot - lastPointerX;
+ md->y += yRoot - lastPointerY;
+
+ if (w->type & CompWindowTypeFullscreenMask)
+ {
+ dx = dy = 0;
+ }
+ else
+ {
+ XRectangle workArea;
+ int min, max;
+
+ dx = md->x;
+ dy = md->y;
+
+ getWorkareaForOutput (s,
+ outputDeviceForWindow (w),
+ &workArea);
+
+ if (md->opt[MOVE_DISPLAY_OPTION_CONSTRAIN_Y].value.b)
+ {
+ if (!md->region)
+ md->region = moveGetYConstrainRegion (s);
+
+ /* make sure that the top frame extents or the top row of
+ pixels are within what is currently our valid screen
+ region */
+ if (md->region)
+ {
+ int x, y, width, height;
+ int status;
+
+ x = wX + dx - w->input.left;
+ y = wY + dy - w->input.top;
+ width = wWidth + w->input.left + w->input.right;
+ height = w->input.top ? w->input.top : 1;
+
+ status = XRectInRegion (md->region, x, y, width, height);
+
+ /* only constrain movement if previous position was valid */
+ if (md->status == RectangleIn)
+ {
+ int xStatus = status;
+
+ while (dx && xStatus != RectangleIn)
+ {
+ xStatus = XRectInRegion (md->region,
+ x, y - dy,
+ width, height);
+
+ if (xStatus != RectangleIn)
+ dx += (dx < 0) ? 1 : -1;
+
+ x = wX + dx - w->input.left;
+ }
+
+ while (dy && status != RectangleIn)
+ {
+ status = XRectInRegion (md->region,
+ x, y,
+ width, height);
+
+ if (status != RectangleIn)
+ dy += (dy < 0) ? 1 : -1;
+
+ y = wY + dy - w->input.top;
+ }
+ }
+ else
+ {
+ md->status = status;
+ }
+ }
+ }
+
+ if (md->opt[MOVE_DISPLAY_OPTION_SNAPOFF_MAXIMIZED].value.b)
+ {
+ if (w->state & CompWindowStateMaximizedVertMask)
+ {
+ if (abs ((yRoot - workArea.y) - ms->snapOffY) >= SNAP_OFF)
+ {
+ if (!otherScreenGrabExist (s, "move", 0))
+ {
+ int width = w->serverWidth;
+
+ w->saveMask |= CWX | CWY;
+
+ if (w->saveMask & CWWidth)
+ width = w->saveWc.width;
+
+ w->saveWc.x = xRoot - (width >> 1);
+ w->saveWc.y = yRoot + (w->input.top >> 1);
+
+ md->x = md->y = 0;
+
+ maximizeWindow (w, 0);
+
+ ms->snapOffY = ms->snapBackY;
+
+ return;
+ }
+ }
+ }
+ else if (ms->origState & CompWindowStateMaximizedVertMask)
+ {
+ if (abs ((yRoot - workArea.y) - ms->snapBackY) < SNAP_BACK)
+ {
+ if (!otherScreenGrabExist (s, "move", 0))
+ {
+ int wy;
+
+ /* update server position before maximizing
+ window again so that it is maximized on
+ correct output */
+ syncWindowPosition (w);
+
+ maximizeWindow (w, ms->origState);
+
+ wy = workArea.y + (w->input.top >> 1);
+ wy += w->sizeHints.height_inc >> 1;
+
+ warpPointer (s, 0, wy - pointerY);
+
+ return;
+ }
+ }
+ }
+ }
+
+ if (w->state & CompWindowStateMaximizedVertMask)
+ {
+ min = workArea.y + w->input.top;
+ max = workArea.y + workArea.height - w->input.bottom - wHeight;
+
+ if (wY + dy < min)
+ dy = min - wY;
+ else if (wY + dy > max)
+ dy = max - wY;
+ }
+
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ {
+ if (wX > s->width || wX + w->width < 0)
+ return;
+
+ if (wX + wWidth < 0)
+ return;
+
+ min = workArea.x + w->input.left;
+ max = workArea.x + workArea.width - w->input.right - wWidth;
+
+ if (wX + dx < min)
+ dx = min - wX;
+ else if (wX + dx > max)
+ dx = max - wX;
+ }
+ }
+
+ if (dx || dy)
+ {
+ moveWindow (w,
+ wX + dx - w->attrib.x,
+ wY + dy - w->attrib.y,
+ TRUE, FALSE);
+
+ if (md->opt[MOVE_DISPLAY_OPTION_LAZY_POSITIONING].value.b)
+ {
+ /* FIXME: This form of lazy positioning is broken and should
+ be replaced asap. Current code exists just to avoid a
+ major performance regression in the 0.5.2 release. */
+ w->serverX = w->attrib.x;
+ w->serverY = w->attrib.y;
+ }
+ else
+ {
+ syncWindowPosition (w);
+ }
+
+ md->x -= dx;
+ md->y -= dy;
+ }
+ }
+}
+
+static void
+moveHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ MOVE_DISPLAY (d);
+
+ switch (event->type) {
+ case ButtonPress:
+ case ButtonRelease:
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ {
+ MOVE_SCREEN (s);
+
+ if (ms->grabIndex)
+ {
+ if (md->releaseButton == -1 ||
+ md->releaseButton == event->xbutton.button)
+ {
+ CompAction *action;
+ int opt = MOVE_DISPLAY_OPTION_INITIATE_BUTTON;
+
+ action = &md->opt[opt].value.action;
+ moveTerminate (d, action, CompActionStateTermButton,
+ NULL, 0);
+ }
+ }
+ }
+ break;
+ case KeyPress:
+ s = findScreenAtDisplay (d, event->xkey.root);
+ if (s)
+ {
+ MOVE_SCREEN (s);
+
+ if (ms->grabIndex)
+ {
+ int i;
+
+ for (i = 0; i < NUM_KEYS; i++)
+ {
+ if (event->xkey.keycode == md->key[i])
+ {
+ XWarpPointer (d->display, None, None, 0, 0, 0, 0,
+ mKeys[i].dx * KEY_MOVE_INC,
+ mKeys[i].dy * KEY_MOVE_INC);
+ break;
+ }
+ }
+ }
+ }
+ break;
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ moveHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ moveHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->wmMoveResizeAtom)
+ {
+ CompWindow *w;
+
+ if (event->xclient.data.l[2] == WmMoveResizeMove ||
+ event->xclient.data.l[2] == WmMoveResizeMoveKeyboard)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompOption o[5];
+ int xRoot, yRoot;
+ int option;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "window";
+ o[0].value.i = event->xclient.window;
+
+ if (event->xclient.data.l[2] == WmMoveResizeMoveKeyboard)
+ {
+ option = MOVE_DISPLAY_OPTION_INITIATE_KEY;
+
+ moveInitiate (d, &md->opt[option].value.action,
+ CompActionStateInitKey,
+ o, 1);
+ }
+ else
+ {
+ unsigned int mods;
+ Window root, child;
+ int i;
+
+ option = MOVE_DISPLAY_OPTION_INITIATE_BUTTON;
+
+ XQueryPointer (d->display, w->screen->root,
+ &root, &child, &xRoot, &yRoot,
+ &i, &i, &mods);
+
+ /* TODO: not only button 1 */
+ if (mods & Button1Mask)
+ {
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "modifiers";
+ o[1].value.i = mods;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "x";
+ o[2].value.i = event->xclient.data.l[0];
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "y";
+ o[3].value.i = event->xclient.data.l[1];
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "button";
+ o[4].value.i = event->xclient.data.l[3] ?
+ event->xclient.data.l[3] : -1;
+
+ moveInitiate (d,
+ &md->opt[option].value.action,
+ CompActionStateInitButton,
+ o, 5);
+
+ moveHandleMotionEvent (w->screen, xRoot, yRoot);
+ }
+ }
+ }
+ }
+ else if (md->w && event->xclient.data.l[2] == WmMoveResizeCancel)
+ {
+ if (md->w->id == event->xclient.window)
+ {
+ int option;
+
+ option = MOVE_DISPLAY_OPTION_INITIATE_BUTTON;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ CompActionStateCancel, NULL, 0);
+ option = MOVE_DISPLAY_OPTION_INITIATE_KEY;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ CompActionStateCancel, NULL, 0);
+ }
+ }
+ }
+ break;
+ case DestroyNotify:
+ if (md->w && md->w->id == event->xdestroywindow.window)
+ {
+ int option;
+
+ option = MOVE_DISPLAY_OPTION_INITIATE_BUTTON;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ 0, NULL, 0);
+ option = MOVE_DISPLAY_OPTION_INITIATE_KEY;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ 0, NULL, 0);
+ }
+ break;
+ case UnmapNotify:
+ if (md->w && md->w->id == event->xunmap.window)
+ {
+ int option;
+
+ option = MOVE_DISPLAY_OPTION_INITIATE_BUTTON;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ 0, NULL, 0);
+ option = MOVE_DISPLAY_OPTION_INITIATE_KEY;
+ moveTerminate (d,
+ &md->opt[option].value.action,
+ 0, NULL, 0);
+ }
+ default:
+ break;
+ }
+
+ UNWRAP (md, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (md, d, handleEvent, moveHandleEvent);
+}
+
+static Bool
+movePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ WindowPaintAttrib sAttrib;
+ CompScreen *s = w->screen;
+ Bool status;
+
+ MOVE_SCREEN (s);
+
+ if (ms->grabIndex)
+ {
+ MOVE_DISPLAY (s->display);
+
+ if (md->w == w && md->moveOpacity != OPAQUE)
+ {
+ /* modify opacity of windows that are not active */
+ sAttrib = *attrib;
+ attrib = &sAttrib;
+
+ sAttrib.opacity = (sAttrib.opacity * md->moveOpacity) >> 16;
+ }
+ }
+
+ UNWRAP (ms, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ms, s, paintWindow, movePaintWindow);
+
+ return status;
+}
+
+static CompOption *
+moveGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ MOVE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (md);
+ return md->opt;
+}
+
+static Bool
+moveSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ MOVE_DISPLAY (display);
+
+ o = compFindOption (md->opt, NUM_OPTIONS (md), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case MOVE_DISPLAY_OPTION_OPACITY:
+ if (compSetIntOption (o, value))
+ {
+ md->moveOpacity = (o->value.i * OPAQUE) / 100;
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo moveDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, moveInitiate, moveTerminate },
+ { "initiate_key", "key", 0, moveInitiate, moveTerminate },
+ { "opacity", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "constrain_y", "bool", 0, 0, 0 },
+ { "snapoff_maximized", "bool", 0, 0, 0 },
+ { "lazy_positioning", "bool", 0, 0, 0 }
+};
+
+static Bool
+moveInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ MoveDisplay *md;
+ int i;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ md = malloc (sizeof (MoveDisplay));
+ if (!md)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &moveMetadata,
+ moveDisplayOptionInfo,
+ md->opt,
+ MOVE_DISPLAY_OPTION_NUM))
+ {
+ free (md);
+ return FALSE;
+ }
+
+ md->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (md->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, md->opt, MOVE_DISPLAY_OPTION_NUM);
+ free (md);
+ return FALSE;
+ }
+
+ md->moveOpacity =
+ (md->opt[MOVE_DISPLAY_OPTION_OPACITY].value.i * OPAQUE) / 100;
+
+ md->w = 0;
+ md->region = NULL;
+ md->status = RectangleOut;
+ md->releaseButton = 0;
+
+ for (i = 0; i < NUM_KEYS; i++)
+ md->key[i] = XKeysymToKeycode (d->display,
+ XStringToKeysym (mKeys[i].name));
+
+ WRAP (md, d, handleEvent, moveHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = md;
+
+ return TRUE;
+}
+
+static void
+moveFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ MOVE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, md->screenPrivateIndex);
+
+ UNWRAP (md, d, handleEvent);
+
+ compFiniDisplayOptions (d, md->opt, MOVE_DISPLAY_OPTION_NUM);
+
+ free (md);
+}
+
+static Bool
+moveInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ MoveScreen *ms;
+
+ MOVE_DISPLAY (s->display);
+
+ ms = malloc (sizeof (MoveScreen));
+ if (!ms)
+ return FALSE;
+
+ ms->grabIndex = 0;
+
+ ms->moveCursor = XCreateFontCursor (s->display->display, XC_fleur);
+
+ WRAP (ms, s, paintWindow, movePaintWindow);
+
+ s->base.privates[md->screenPrivateIndex].ptr = ms;
+
+ return TRUE;
+}
+
+static void
+moveFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ MOVE_SCREEN (s);
+
+ UNWRAP (ms, s, paintWindow);
+
+ if (ms->moveCursor)
+ XFreeCursor (s->display->display, ms->moveCursor);
+
+ free (ms);
+}
+
+static CompBool
+moveInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) moveInitDisplay,
+ (InitPluginObjectProc) moveInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+moveFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) moveFiniDisplay,
+ (FiniPluginObjectProc) moveFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+moveGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) moveGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+moveSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) moveSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+moveInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&moveMetadata,
+ p->vTable->name,
+ moveDisplayOptionInfo,
+ MOVE_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&moveMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&moveMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+moveFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&moveMetadata);
+}
+
+static CompMetadata *
+moveGetMetadata (CompPlugin *plugin)
+{
+ return &moveMetadata;
+}
+
+CompPluginVTable moveVTable = {
+ "move",
+ moveGetMetadata,
+ moveInit,
+ moveFini,
+ moveInitObject,
+ moveFiniObject,
+ moveGetObjectOptions,
+ moveSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &moveVTable;
+}
diff --git a/plugins/obs.c b/plugins/obs.c
new file mode 100644
index 0000000..a8d67f1
--- /dev/null
+++ b/plugins/obs.c
@@ -0,0 +1,746 @@
+/*
+ * Copyright © 2008 Danny Baumann
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Danny Baumann not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Danny Baumann makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DANNY BAUMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Danny Baumann <dannybaumann@web.de>
+ */
+
+#include <compiz-core.h>
+
+static CompMetadata obsMetadata;
+
+static int displayPrivateIndex;
+
+#define OBS_DISPLAY_OPTION_OPACITY_INCREASE_KEY 0
+#define OBS_DISPLAY_OPTION_OPACITY_INCREASE_BUTTON 1
+#define OBS_DISPLAY_OPTION_OPACITY_DECREASE_KEY 2
+#define OBS_DISPLAY_OPTION_OPACITY_DECREASE_BUTTON 3
+#define OBS_DISPLAY_OPTION_SATURATION_INCREASE_KEY 4
+#define OBS_DISPLAY_OPTION_SATURATION_INCREASE_BUTTON 5
+#define OBS_DISPLAY_OPTION_SATURATION_DECREASE_KEY 6
+#define OBS_DISPLAY_OPTION_SATURATION_DECREASE_BUTTON 7
+#define OBS_DISPLAY_OPTION_BRIGHTNESS_INCREASE_KEY 8
+#define OBS_DISPLAY_OPTION_BRIGHTNESS_INCREASE_BUTTON 9
+#define OBS_DISPLAY_OPTION_BRIGHTNESS_DECREASE_KEY 10
+#define OBS_DISPLAY_OPTION_BRIGHTNESS_DECREASE_BUTTON 11
+#define OBS_DISPLAY_OPTION_NUM 12
+
+typedef struct _ObsDisplay
+{
+ int screenPrivateIndex;
+
+ HandleEventProc handleEvent;
+ MatchExpHandlerChangedProc matchExpHandlerChanged;
+ MatchPropertyChangedProc matchPropertyChanged;
+
+ CompOption opt[OBS_DISPLAY_OPTION_NUM];
+} ObsDisplay;
+
+#define OBS_SCREEN_OPTION_OPACITY_STEP 0
+#define OBS_SCREEN_OPTION_SATURATION_STEP 1
+#define OBS_SCREEN_OPTION_BRIGHTNESS_STEP 2
+#define OBS_SCREEN_OPTION_OPACITY_MATCHES 3
+#define OBS_SCREEN_OPTION_OPACITY_VALUES 4
+#define OBS_SCREEN_OPTION_SATURATION_MATCHES 5
+#define OBS_SCREEN_OPTION_SATURATION_VALUES 6
+#define OBS_SCREEN_OPTION_BRIGHTNESS_MATCHES 7
+#define OBS_SCREEN_OPTION_BRIGHTNESS_VALUES 8
+#define OBS_SCREEN_OPTION_NUM 9
+
+#define MODIFIER_OPACITY 0
+#define MODIFIER_SATURATION 1
+#define MODIFIER_BRIGHTNESS 2
+#define MODIFIER_COUNT 3
+
+typedef struct _ObsScreen
+{
+ int windowPrivateIndex;
+
+ PaintWindowProc paintWindow;
+ DrawWindowProc drawWindow;
+
+ CompOption *stepOptions[MODIFIER_COUNT];
+ CompOption *matchOptions[MODIFIER_COUNT];
+ CompOption *valueOptions[MODIFIER_COUNT];
+
+ CompOption opt[OBS_SCREEN_OPTION_NUM];
+} ObsScreen;
+
+typedef struct _ObsWindow
+{
+ int customFactor[MODIFIER_COUNT];
+ int matchFactor[MODIFIER_COUNT];
+} ObsWindow;
+
+#define GET_OBS_DISPLAY(d) \
+ ((ObsDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+#define OBS_DISPLAY(d) \
+ ObsDisplay *od = GET_OBS_DISPLAY (d)
+
+#define GET_OBS_SCREEN(s, od) \
+ ((ObsScreen *) (s)->base.privates[(od)->screenPrivateIndex].ptr)
+#define OBS_SCREEN(s) \
+ ObsScreen *os = GET_OBS_SCREEN (s, GET_OBS_DISPLAY (s->display))
+
+#define GET_OBS_WINDOW(w, os) \
+ ((ObsWindow *) (w)->base.privates[(os)->windowPrivateIndex].ptr)
+#define OBS_WINDOW(w) \
+ ObsWindow *ow = GET_OBS_WINDOW (w, \
+ GET_OBS_SCREEN (w->screen, \
+ GET_OBS_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static void
+changePaintModifier (CompWindow *w,
+ int modifier,
+ int direction)
+{
+ int value;
+
+ OBS_SCREEN (w->screen);
+ OBS_WINDOW (w);
+
+ if (w->attrib.override_redirect)
+ return;
+
+ if (modifier == MODIFIER_OPACITY && (w->type & CompWindowTypeDesktopMask))
+ return;
+
+ value = ow->customFactor[modifier];
+ value += os->stepOptions[modifier]->value.i * direction;
+
+ value = MIN (value, 100);
+ value = MAX (value, os->stepOptions[modifier]->value.i);
+
+ if (value != ow->customFactor[modifier])
+ {
+ ow->customFactor[modifier] = value;
+ addWindowDamage (w);
+ }
+}
+
+static void
+updatePaintModifier (CompWindow *w,
+ int modifier)
+{
+ int lastFactor;
+
+ OBS_WINDOW (w);
+ OBS_SCREEN (w->screen);
+
+ lastFactor = ow->customFactor[modifier];
+
+ if ((w->type & CompWindowTypeDesktopMask) && (modifier == MODIFIER_OPACITY))
+ {
+ ow->customFactor[modifier] = 100;
+ ow->matchFactor[modifier] = 100;
+ }
+ else
+ {
+ int i, min, lastMatchFactor;
+ CompOption *matches, *values;
+
+ matches = os->matchOptions[modifier];
+ values = os->valueOptions[modifier];
+ min = MIN (matches->value.list.nValue, values->value.list.nValue);
+
+ lastMatchFactor = ow->matchFactor[modifier];
+ ow->matchFactor[modifier] = 100;
+
+ for (i = 0; i < min; i++)
+ {
+ if (matchEval (&matches->value.list.value[i].match, w))
+ {
+ ow->matchFactor[modifier] = values->value.list.value[i].i;
+ break;
+ }
+ }
+
+ if (ow->customFactor[modifier] == lastMatchFactor)
+ ow->customFactor[modifier] = ow->matchFactor[modifier];
+ }
+
+ if (ow->customFactor[modifier] != lastFactor)
+ addWindowDamage (w);
+}
+
+static Bool
+alterPaintModifier (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+ w = findTopLevelWindowAtDisplay (d, xid);
+
+ if (w)
+ changePaintModifier (w, abs (action->priv.val) - 1,
+ (action->priv.val < 0) ? -1 : 1);
+
+ return TRUE;
+}
+
+static Bool
+obsPaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ OBS_SCREEN (s);
+ OBS_WINDOW (w);
+
+ if (ow->customFactor[MODIFIER_OPACITY] != 100)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ UNWRAP (os, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (os, s, paintWindow, obsPaintWindow);
+
+ return status;
+}
+
+/* Note: Normally plugins should wrap into PaintWindow to modify opacity,
+ brightness and saturation. As some plugins bypass paintWindow when
+ they draw windows and our custom values always need to be applied,
+ we wrap into DrawWindow here */
+
+static Bool
+obsDrawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *attrib,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool hasCustomFactor = FALSE;
+ Bool status;
+ int i;
+
+ OBS_SCREEN (s);
+ OBS_WINDOW (w);
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ if (ow->customFactor[i] != 100)
+ {
+ hasCustomFactor = TRUE;
+ break;
+ }
+
+ if (hasCustomFactor)
+ {
+ FragmentAttrib fragment = *attrib;
+ int factor;
+
+ factor = ow->customFactor[MODIFIER_OPACITY];
+ if (factor != 100)
+ {
+ fragment.opacity = (int) fragment.opacity * factor / 100;
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+ }
+
+ factor = ow->customFactor[MODIFIER_BRIGHTNESS];
+ if (factor != 100)
+ fragment.brightness = (int) fragment.brightness * factor / 100;
+
+ factor = ow->customFactor[MODIFIER_SATURATION];
+ if (factor != 100)
+ fragment.saturation = (int) fragment.saturation * factor / 100;
+
+ UNWRAP (os, s, drawWindow);
+ status = (*s->drawWindow) (w, transform, &fragment, region, mask);
+ WRAP (os, s, drawWindow, obsDrawWindow);
+ }
+ else
+ {
+ UNWRAP (os, s, drawWindow);
+ status = (*s->drawWindow) (w, transform, attrib, region, mask);
+ WRAP (os, s, drawWindow, obsDrawWindow);
+ }
+
+ return status;
+}
+
+static void
+obsMatchExpHandlerChanged (CompDisplay *d)
+{
+ CompScreen *s;
+ CompWindow *w;
+ int i;
+
+ OBS_DISPLAY (d);
+
+ UNWRAP (od, d, matchExpHandlerChanged);
+ (*d->matchExpHandlerChanged) (d);
+ WRAP (od, d, matchExpHandlerChanged, obsMatchExpHandlerChanged);
+
+ /* match options are up to date after the call to matchExpHandlerChanged */
+ for (s = d->screens; s; s = s->next)
+ for (w = s->windows; w; w = w->next)
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ updatePaintModifier (w, i);
+}
+
+static void
+obsMatchPropertyChanged (CompDisplay *d,
+ CompWindow *w)
+{
+ int i;
+
+ OBS_DISPLAY (d);
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ updatePaintModifier (w, i);
+
+ UNWRAP (od, d, matchPropertyChanged);
+ (*d->matchPropertyChanged) (d, w);
+ WRAP (od, d, matchPropertyChanged, obsMatchPropertyChanged);
+}
+
+static CompOption *
+obsGetDisplayOptions (CompPlugin *p,
+ CompDisplay *display,
+ int *count)
+{
+ OBS_DISPLAY (display);
+
+ *count = NUM_OPTIONS (od);
+ return od->opt;
+}
+
+static Bool
+obsSetDisplayOption (CompPlugin *p,
+ CompDisplay *display,
+ char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ OBS_DISPLAY (display);
+
+ o = compFindOption (od->opt, NUM_OPTIONS (od), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static CompOption *
+obsGetScreenOptions (CompPlugin *p,
+ CompScreen *screen,
+ int *count)
+{
+ OBS_SCREEN (screen);
+
+ *count = NUM_OPTIONS (os);
+ return os->opt;
+}
+
+static Bool
+obsSetScreenOption (CompPlugin *p,
+ CompScreen *s,
+ char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int i;
+
+ OBS_SCREEN (s);
+
+ o = compFindOption (os->opt, NUM_OPTIONS (os), name, NULL);
+ if (!o)
+ return FALSE;
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ {
+ if (o == os->matchOptions[i])
+ {
+ if (compSetOptionList (o, value))
+ {
+ CompWindow *w;
+ int j;
+
+ for (j = 0; j < o->value.list.nValue; j++)
+ matchUpdate (s->display, &o->value.list.value[j].match);
+
+ for (w = s->windows; w; w = w->next)
+ updatePaintModifier (w, i);
+
+ return TRUE;
+ }
+ }
+ else if (o == os->valueOptions[i])
+ {
+ if (compSetOptionList (o, value))
+ {
+ CompWindow *w;
+
+ for (w = s->windows; w; w = w->next)
+ updatePaintModifier (w, i);
+
+ return TRUE;
+ }
+ }
+ }
+
+ return compSetScreenOption (s, o, value);
+}
+
+static CompOption *
+obsGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) obsGetDisplayOptions,
+ (GetPluginObjectOptionsProc) obsGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+obsSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) obsSetDisplayOption,
+ (SetPluginObjectOptionProc) obsSetScreenOption
+
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static const CompMetadataOptionInfo obsDisplayOptionInfo[] = {
+ { "opacity_increase_key", "key", 0, alterPaintModifier, 0 },
+ { "opacity_increase_button", "button", 0, alterPaintModifier, 0 },
+ { "opacity_decrease_key", "key", 0, alterPaintModifier, 0 },
+ { "opacity_decrease_button", "button", 0, alterPaintModifier, 0 },
+ { "saturation_increase_key", "key", 0, alterPaintModifier, 0 },
+ { "saturation_increase_button", "button", 0, alterPaintModifier, 0 },
+ { "saturation_decrease_key", "key", 0, alterPaintModifier, 0 },
+ { "saturation_decrease_button", "button", 0, alterPaintModifier, 0 },
+ { "brightness_increase_key", "key", 0, alterPaintModifier, 0 },
+ { "brightness_increase_button", "button", 0, alterPaintModifier, 0 },
+ { "brightness_decrease_key", "key", 0, alterPaintModifier, 0 },
+ { "brightness_decrease_button", "button", 0, alterPaintModifier, 0 }
+};
+
+static CompBool
+obsInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ObsDisplay *od;
+ int opt;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ od = malloc (sizeof (ObsDisplay));
+ if (!od)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &obsMetadata,
+ obsDisplayOptionInfo,
+ od->opt,
+ OBS_DISPLAY_OPTION_NUM))
+ {
+ free (od);
+ return FALSE;
+ }
+
+ od->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (od->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, od->opt, OBS_DISPLAY_OPTION_NUM);
+ free (od);
+ return FALSE;
+ }
+
+ opt = OBS_DISPLAY_OPTION_OPACITY_INCREASE_KEY;
+ od->opt[opt].value.action.priv.val = MODIFIER_OPACITY + 1;
+ opt = OBS_DISPLAY_OPTION_OPACITY_DECREASE_KEY;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_OPACITY + 1);
+ opt = OBS_DISPLAY_OPTION_OPACITY_INCREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = MODIFIER_OPACITY + 1;
+ opt = OBS_DISPLAY_OPTION_OPACITY_DECREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_OPACITY + 1);
+
+ opt = OBS_DISPLAY_OPTION_SATURATION_INCREASE_KEY;
+ od->opt[opt].value.action.priv.val = MODIFIER_SATURATION + 1;
+ opt = OBS_DISPLAY_OPTION_SATURATION_DECREASE_KEY;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_SATURATION + 1);
+ opt = OBS_DISPLAY_OPTION_SATURATION_INCREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = MODIFIER_SATURATION + 1;
+ opt = OBS_DISPLAY_OPTION_SATURATION_DECREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_SATURATION + 1);
+
+ opt = OBS_DISPLAY_OPTION_BRIGHTNESS_INCREASE_KEY;
+ od->opt[opt].value.action.priv.val = MODIFIER_BRIGHTNESS + 1;
+ opt = OBS_DISPLAY_OPTION_BRIGHTNESS_DECREASE_KEY;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_BRIGHTNESS + 1);
+ opt = OBS_DISPLAY_OPTION_BRIGHTNESS_INCREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = MODIFIER_BRIGHTNESS + 1;
+ opt = OBS_DISPLAY_OPTION_BRIGHTNESS_DECREASE_BUTTON;
+ od->opt[opt].value.action.priv.val = -(MODIFIER_BRIGHTNESS + 1);
+
+ WRAP (od, d, matchExpHandlerChanged, obsMatchExpHandlerChanged);
+ WRAP (od, d, matchPropertyChanged, obsMatchPropertyChanged);
+
+ d->base.privates[displayPrivateIndex].ptr = od;
+
+ return TRUE;
+}
+
+static void
+obsFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ OBS_DISPLAY (d);
+
+ UNWRAP (od, d, matchExpHandlerChanged);
+ UNWRAP (od, d, matchPropertyChanged);
+
+ freeScreenPrivateIndex (d, od->screenPrivateIndex);
+ compFiniDisplayOptions (d, od->opt, OBS_DISPLAY_OPTION_NUM);
+
+ free (od);
+}
+
+static const CompMetadataOptionInfo obsScreenOptionInfo[] = {
+ { "opacity_step", "int", 0, 0, 0 },
+ { "saturation_step", "int", 0, 0, 0 },
+ { "brightness_step", "int", 0, 0, 0 },
+ { "opacity_matches", "list", "<type>match</type>", 0, 0 },
+ { "opacity_values", "list", "<type>int</type>", 0, 0 },
+ { "saturation_matches", "list", "<type>match</type>", 0, 0 },
+ { "saturation_values", "list", "<type>int</type>", 0, 0 },
+ { "brightness_matches", "list", "<type>match</type>", 0, 0 },
+ { "brightness_values", "list", "<type>int</type>", 0, 0 }
+};
+
+static CompBool
+obsInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ObsScreen *os;
+ int mod;
+
+ OBS_DISPLAY (s->display);
+
+ os = malloc (sizeof (ObsScreen));
+ if (!os)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &obsMetadata,
+ obsScreenOptionInfo,
+ os->opt,
+ OBS_SCREEN_OPTION_NUM))
+ {
+ free (os);
+ return FALSE;
+ }
+
+ os->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (os->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, os->opt, OBS_SCREEN_OPTION_NUM);
+ free (os);
+ return FALSE;
+ }
+
+ mod = MODIFIER_OPACITY;
+ os->stepOptions[mod] = &os->opt[OBS_SCREEN_OPTION_OPACITY_STEP];
+ os->matchOptions[mod] = &os->opt[OBS_SCREEN_OPTION_OPACITY_MATCHES];
+ os->valueOptions[mod] = &os->opt[OBS_SCREEN_OPTION_OPACITY_VALUES];
+
+ mod = MODIFIER_SATURATION;
+ os->stepOptions[mod] = &os->opt[OBS_SCREEN_OPTION_SATURATION_STEP];
+ os->matchOptions[mod] = &os->opt[OBS_SCREEN_OPTION_SATURATION_MATCHES];
+ os->valueOptions[mod] = &os->opt[OBS_SCREEN_OPTION_SATURATION_VALUES];
+
+ mod = MODIFIER_BRIGHTNESS;
+ os->stepOptions[mod] = &os->opt[OBS_SCREEN_OPTION_BRIGHTNESS_STEP];
+ os->matchOptions[mod] = &os->opt[OBS_SCREEN_OPTION_BRIGHTNESS_MATCHES];
+ os->valueOptions[mod] = &os->opt[OBS_SCREEN_OPTION_BRIGHTNESS_VALUES];
+
+ s->base.privates[od->screenPrivateIndex].ptr = os;
+
+ WRAP (os, s, paintWindow, obsPaintWindow);
+ WRAP (os, s, drawWindow, obsDrawWindow);
+
+ return TRUE;
+}
+
+static void
+obsFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ OBS_SCREEN (s);
+
+ UNWRAP (os, s, paintWindow);
+ UNWRAP (os, s, drawWindow);
+
+ damageScreen (s);
+
+ compFiniScreenOptions (s, os->opt, OBS_SCREEN_OPTION_NUM);
+
+ free (os);
+}
+
+static CompBool
+obsInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ ObsWindow *ow;
+ int i;
+
+ OBS_SCREEN (w->screen);
+
+ ow = malloc (sizeof (ObsWindow));
+ if (!ow)
+ return FALSE;
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ {
+ ow->customFactor[i] = 100;
+ ow->matchFactor[i] = 100;
+ }
+
+ w->base.privates[os->windowPrivateIndex].ptr = ow;
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ updatePaintModifier (w, i);
+
+ return TRUE;
+}
+
+static void
+obsFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ OBS_WINDOW (w);
+
+ free (ow);
+}
+
+static CompBool
+obsInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) obsInitDisplay,
+ (InitPluginObjectProc) obsInitScreen,
+ (InitPluginObjectProc) obsInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+
+}
+
+static void
+obsFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) obsFiniDisplay,
+ (FiniPluginObjectProc) obsFiniScreen,
+ (FiniPluginObjectProc) obsFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompBool
+obsInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&obsMetadata,
+ p->vTable->name,
+ obsDisplayOptionInfo,
+ OBS_DISPLAY_OPTION_NUM,
+ obsScreenOptionInfo,
+ OBS_SCREEN_OPTION_NUM))
+ {
+ return FALSE;
+ }
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&obsMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&obsMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+obsFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+
+ compFiniMetadata (&obsMetadata);
+}
+
+static CompMetadata *
+obsGetMetadata (CompPlugin *plugin)
+{
+ return &obsMetadata;
+}
+
+CompPluginVTable obsVTable = {
+ "obs",
+ obsGetMetadata,
+ obsInit,
+ obsFini,
+ obsInitObject,
+ obsFiniObject,
+ obsGetObjectOptions,
+ obsSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &obsVTable;
+}
diff --git a/plugins/place.c b/plugins/place.c
new file mode 100644
index 0000000..74ac388
--- /dev/null
+++ b/plugins/place.c
@@ -0,0 +1,1762 @@
+/*
+ * Copyright (C) 2001 Havoc Pennington
+ * Copyright (C) 2002, 2003 Red Hat, Inc.
+ * Copyright (C) 2003 Rob Adams
+ * Copyright (C) 2005 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compiz-core.h>
+
+static CompMetadata placeMetadata;
+
+static int displayPrivateIndex;
+
+typedef struct _PlaceDisplay {
+ int screenPrivateIndex;
+
+ HandleEventProc handleEvent;
+} PlaceDisplay;
+
+#define PLACE_MODE_CASCADE 0
+#define PLACE_MODE_CENTERED 1
+#define PLACE_MODE_SMART 2
+#define PLACE_MODE_MAXIMIZE 3
+#define PLACE_MODE_RANDOM 4
+#define PLACE_MODE_LAST PLACE_MODE_RANDOM
+
+#define PLACE_MOMODE_CURRENT 0
+#define PLACE_MOMODE_POINTER 1
+#define PLACE_MOMODE_ACTIVEWIN 2
+#define PLACE_MOMODE_FULLSCREEN 3
+#define PLACE_MOMODE_LAST PLACE_MOMODE_FULLSCREEN
+
+#define PLACE_SCREEN_OPTION_WORKAROUND 0
+#define PLACE_SCREEN_OPTION_MODE 1
+#define PLACE_SCREEN_OPTION_MULTIOUTPUT_MODE 2
+#define PLACE_SCREEN_OPTION_FORCE_PLACEMENT 3
+#define PLACE_SCREEN_OPTION_POSITION_MATCHES 4
+#define PLACE_SCREEN_OPTION_POSITION_X_VALUES 5
+#define PLACE_SCREEN_OPTION_POSITION_Y_VALUES 6
+#define PLACE_SCREEN_OPTION_POSITION_CONSTRAIN 7
+#define PLACE_SCREEN_OPTION_VIEWPORT_MATCHES 8
+#define PLACE_SCREEN_OPTION_VIEWPORT_X_VALUES 9
+#define PLACE_SCREEN_OPTION_VIEWPORT_Y_VALUES 10
+#define PLACE_SCREEN_OPTION_NUM 11
+
+typedef struct _PlaceScreen {
+ CompOption opt[PLACE_SCREEN_OPTION_NUM];
+
+ PlaceWindowProc placeWindow;
+ ValidateWindowResizeRequestProc validateWindowResizeRequest;
+} PlaceScreen;
+
+#define GET_PLACE_DISPLAY(d) \
+ ((PlaceDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define PLACE_DISPLAY(d) \
+ PlaceDisplay *pd = GET_PLACE_DISPLAY (d)
+
+#define GET_PLACE_SCREEN(s, pd) \
+ ((PlaceScreen *) (s)->base.privates[(pd)->screenPrivateIndex].ptr)
+
+#define PLACE_SCREEN(s) \
+ PlaceScreen *ps = GET_PLACE_SCREEN (s, GET_PLACE_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+typedef enum {
+ NoPlacement = 0,
+ PlaceOnly,
+ ConstrainOnly,
+ PlaceAndConstrain,
+ PlaceOverParent,
+ PlaceCenteredOnScreen
+} PlacementStrategy;
+
+/* helper macro that filters out windows irrelevant for placement */
+#define IS_PLACE_RELEVANT(wi, w) \
+ ((w != wi) && \
+ (wi->attrib.map_state == IsViewable || wi->shaded) && \
+ (!wi->attrib.override_redirect) && \
+ (!(wi->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))))
+
+/* helper macros to get the full dimensions of a window,
+ including decorations */
+#define WIN_FULL_X(w) ((w)->serverX - (w)->input.left)
+#define WIN_FULL_Y(w) ((w)->serverY - (w)->input.top)
+#define WIN_FULL_W(w) ((w)->serverWidth + 2 * (w)->serverBorderWidth + \
+ (w)->input.left + (w)->input.right)
+#define WIN_FULL_H(w) ((w)->serverHeight + 2 * (w)->serverBorderWidth + \
+ (w)->input.top + (w)->input.bottom)
+
+static Bool
+placeMatchXYValue (CompWindow *w,
+ CompOption *matches,
+ CompOption *xValues,
+ CompOption *yValues,
+ CompOption *constrain,
+ int *x,
+ int *y,
+ Bool *keepInWorkarea)
+{
+ int i, min;
+
+ if (w->type & CompWindowTypeDesktopMask)
+ return FALSE;
+
+ min = MIN (matches->value.list.nValue, xValues->value.list.nValue);
+ min = MIN (min, yValues->value.list.nValue);
+
+ for (i = 0; i < min; i++)
+ {
+ if (matchEval (&matches->value.list.value[i].match, w))
+ {
+ *x = xValues->value.list.value[i].i;
+ *y = yValues->value.list.value[i].i;
+
+ if (keepInWorkarea)
+ {
+ if (constrain && constrain->value.list.nValue > i)
+ *keepInWorkarea = constrain->value.list.value[i].b;
+ else
+ *keepInWorkarea = TRUE;
+ }
+
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+placeMatchPosition (CompWindow *w,
+ int *x,
+ int *y,
+ Bool *keepInWorkarea)
+{
+ PLACE_SCREEN (w->screen);
+
+ return placeMatchXYValue (w,
+ &ps->opt[PLACE_SCREEN_OPTION_POSITION_MATCHES],
+ &ps->opt[PLACE_SCREEN_OPTION_POSITION_X_VALUES],
+ &ps->opt[PLACE_SCREEN_OPTION_POSITION_Y_VALUES],
+ &ps->opt[PLACE_SCREEN_OPTION_POSITION_CONSTRAIN],
+ x,
+ y,
+ keepInWorkarea);
+}
+
+static Bool
+placeMatchViewport (CompWindow *w,
+ int *x,
+ int *y)
+{
+ PLACE_SCREEN (w->screen);
+
+ if (placeMatchXYValue (w,
+ &ps->opt[PLACE_SCREEN_OPTION_VIEWPORT_MATCHES],
+ &ps->opt[PLACE_SCREEN_OPTION_VIEWPORT_X_VALUES],
+ &ps->opt[PLACE_SCREEN_OPTION_VIEWPORT_Y_VALUES],
+ NULL,
+ x,
+ y,
+ NULL))
+ {
+ /* Viewport matches are given 1-based, so we need to adjust that */
+ *x -= 1;
+ *y -= 1;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static CompOption *
+placeGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ PLACE_SCREEN (screen);
+
+ *count = NUM_OPTIONS (ps);
+ return ps->opt;
+}
+
+static Bool
+placeSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ PLACE_SCREEN (screen);
+
+ o = compFindOption (ps->opt, NUM_OPTIONS (ps), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case PLACE_SCREEN_OPTION_POSITION_MATCHES:
+ case PLACE_SCREEN_OPTION_VIEWPORT_MATCHES:
+ if (compSetOptionList (o, value))
+ {
+ int i;
+
+ for (i = 0; i < o->value.list.nValue; i++)
+ matchUpdate (screen->display, &o->value.list.value[i].match);
+
+ return TRUE;
+ }
+ break;
+ default:
+ if (compSetOption (o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+placeSendWindowMaximizationRequest (CompWindow *w)
+{
+ XEvent xev;
+ CompDisplay *d = w->screen->display;
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = d->display;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = d->winStateAtom;
+ xev.xclient.window = w->id;
+
+ xev.xclient.data.l[0] = 1;
+ xev.xclient.data.l[1] = d->winStateMaximizedHorzAtom;
+ xev.xclient.data.l[2] = d->winStateMaximizedVertAtom;
+ xev.xclient.data.l[3] = 0;
+ xev.xclient.data.l[4] = 0;
+
+ XSendEvent (d->display, w->screen->root, FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask, &xev);
+}
+
+static Bool
+rectangleIntersect (XRectangle *src1,
+ XRectangle *src2,
+ XRectangle *dest)
+{
+ int destX, destY;
+ int destW, destH;
+
+ destX = MAX (src1->x, src2->x);
+ destY = MAX (src1->y, src2->y);
+ destW = MIN (src1->x + src1->width, src2->x + src2->width) - destX;
+ destH = MIN (src1->y + src1->height, src2->y + src2->height) - destY;
+
+ if (destW <= 0 || destH <= 0)
+ {
+ dest->width = 0;
+ dest->height = 0;
+ return FALSE;
+ }
+
+ dest->x = destX;
+ dest->y = destY;
+ dest->width = destW;
+ dest->height = destH;
+
+ return TRUE;
+}
+
+static void
+getWindowExtentsRect (CompWindow *w,
+ XRectangle *rect)
+{
+ rect->x = WIN_FULL_X (w);
+ rect->y = WIN_FULL_Y (w);
+ rect->width = WIN_FULL_W (w);
+ rect->height = WIN_FULL_H (w);
+}
+
+static Bool
+rectOverlapsWindow (XRectangle *rect,
+ CompWindow **windows,
+ unsigned int winCount)
+{
+ unsigned int i;
+ XRectangle dest;
+
+ for (i = 0; i < winCount; i++)
+ {
+ CompWindow *other = windows[i];
+ XRectangle otherRect;
+
+ switch (other->type) {
+ case CompWindowTypeDockMask:
+ case CompWindowTypeSplashMask:
+ case CompWindowTypeDesktopMask:
+ case CompWindowTypeDialogMask:
+ case CompWindowTypeModalDialogMask:
+ case CompWindowTypeFullscreenMask:
+ case CompWindowTypeUnknownMask:
+ break;
+ case CompWindowTypeNormalMask:
+ case CompWindowTypeUtilMask:
+ case CompWindowTypeToolbarMask:
+ case CompWindowTypeMenuMask:
+ getWindowExtentsRect (other, &otherRect);
+
+ if (rectangleIntersect (rect, &otherRect, &dest))
+ return TRUE;
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+static int
+compareLeftmost (const void *a,
+ const void *b)
+{
+ CompWindow *aw = *((CompWindow **) a);
+ CompWindow *bw = *((CompWindow **) b);
+ int ax, bx;
+
+ ax = WIN_FULL_X (aw);
+ bx = WIN_FULL_X (bw);
+
+ if (ax < bx)
+ return -1;
+ else if (ax > bx)
+ return 1;
+ else
+ return 0;
+}
+
+static int
+compareTopmost (const void *a,
+ const void *b)
+{
+ CompWindow *aw = *((CompWindow **) a);
+ CompWindow *bw = *((CompWindow **) b);
+ int ay, by;
+
+ ay = WIN_FULL_Y (aw);
+ by = WIN_FULL_Y (bw);
+
+ if (ay < by)
+ return -1;
+ else if (ay > by)
+ return 1;
+ else
+ return 0;
+}
+
+static int
+compareNorthWestCorner (const void *a,
+ const void *b)
+{
+ CompWindow *aw = *((CompWindow **) a);
+ CompWindow *bw = *((CompWindow **) b);
+ int fromOriginA;
+ int fromOriginB;
+ int ax, ay, bx, by;
+
+ ax = WIN_FULL_X (aw);
+ ay = WIN_FULL_Y (aw);
+
+ bx = WIN_FULL_X (bw);
+ by = WIN_FULL_Y (bw);
+
+ /* probably there's a fast good-enough-guess we could use here. */
+ fromOriginA = sqrt (ax * ax + ay * ay);
+ fromOriginB = sqrt (bx * bx + by * by);
+
+ if (fromOriginA < fromOriginB)
+ return -1;
+ else if (fromOriginA > fromOriginB)
+ return 1;
+ else
+ return 0;
+}
+
+static void
+centerTileRectInArea (XRectangle *rect,
+ XRectangle *workArea)
+{
+ int fluff;
+
+ /* The point here is to tile a window such that "extra"
+ * space is equal on either side (i.e. so a full screen
+ * of windows tiled this way would center the windows
+ * as a group)
+ */
+
+ fluff = (workArea->width % (rect->width + 1)) / 2;
+ rect->x = workArea->x + fluff;
+
+ fluff = (workArea->height % (rect->height + 1)) / 3;
+ rect->y = workArea->y + fluff;
+}
+
+static Bool
+rectFitsInWorkarea (XRectangle *workArea,
+ XRectangle *rect)
+{
+ if (rect->x < workArea->x)
+ return FALSE;
+
+ if (rect->y < workArea->y)
+ return FALSE;
+
+ if (rect->x + rect->width > workArea->x + workArea->width)
+ return FALSE;
+
+ if (rect->y + rect->height > workArea->y + workArea->height)
+ return FALSE;
+
+ return TRUE;
+}
+
+/* Find the leftmost, then topmost, empty area on the workspace
+ * that can contain the new window.
+ *
+ * Cool feature to have: if we can't fit the current window size,
+ * try shrinking the window (within geometry constraints). But
+ * beware windows such as Emacs with no sane minimum size, we
+ * don't want to create a 1x1 Emacs.
+ */
+static Bool
+placeCascadeFindFirstFit (CompWindow *w,
+ CompWindow **windows,
+ unsigned int winCount,
+ XRectangle *workArea,
+ int x,
+ int y,
+ int *newX,
+ int *newY)
+{
+ /* This algorithm is limited - it just brute-force tries
+ * to fit the window in a small number of locations that are aligned
+ * with existing windows. It tries to place the window on
+ * the bottom of each existing window, and then to the right
+ * of each existing window, aligned with the left/top of the
+ * existing window in each of those cases.
+ */
+ Bool retval = FALSE;
+ unsigned int i, allocSize = winCount * sizeof (CompWindow *);
+ CompWindow **belowSorted, **rightSorted;
+ XRectangle rect;
+
+ belowSorted = malloc (allocSize);
+ if (!belowSorted)
+ return FALSE;
+
+ rightSorted = malloc (allocSize);
+ if (!rightSorted)
+ {
+ free (belowSorted);
+ return FALSE;
+ }
+
+ /* Below each window */
+ memcpy (belowSorted, windows, allocSize);
+ qsort (belowSorted, winCount, sizeof (CompWindow *), compareLeftmost);
+ qsort (belowSorted, winCount, sizeof (CompWindow *), compareTopmost);
+
+ /* To the right of each window */
+ memcpy (rightSorted, windows, allocSize);
+ qsort (rightSorted, winCount, sizeof (CompWindow *), compareTopmost);
+ qsort (rightSorted, winCount, sizeof (CompWindow *), compareLeftmost);
+
+ getWindowExtentsRect (w, &rect);
+
+ centerTileRectInArea (&rect, workArea);
+
+ if (rectFitsInWorkarea (workArea, &rect) &&
+ !rectOverlapsWindow (&rect, windows, winCount))
+ {
+ *newX = rect.x + w->input.left;
+ *newY = rect.y + w->input.top;
+
+ retval = TRUE;
+ }
+
+ if (!retval)
+ {
+ /* try below each window */
+ for (i = 0; i < winCount && !retval; i++)
+ {
+ XRectangle outerRect;
+
+ getWindowExtentsRect (belowSorted[i], &outerRect);
+
+ rect.x = outerRect.x;
+ rect.y = outerRect.y + outerRect.height;
+
+ if (rectFitsInWorkarea (workArea, &rect) &&
+ !rectOverlapsWindow (&rect, belowSorted, winCount))
+ {
+ *newX = rect.x + w->input.left;
+ *newY = rect.y + w->input.top;
+ retval = TRUE;
+ }
+ }
+ }
+
+ if (!retval)
+ {
+ /* try to the right of each window */
+ for (i = 0; i < winCount && !retval; i++)
+ {
+ XRectangle outerRect;
+
+ getWindowExtentsRect (rightSorted[i], &outerRect);
+
+ rect.x = outerRect.x + outerRect.width;
+ rect.y = outerRect.y;
+
+ if (rectFitsInWorkarea (workArea, &rect) &&
+ !rectOverlapsWindow (&rect, rightSorted, winCount))
+ {
+ *newX = rect.x + w->input.left;
+ *newY = rect.y + w->input.top;
+ retval = TRUE;
+ }
+ }
+ }
+
+ free (belowSorted);
+ free (rightSorted);
+
+ return retval;
+}
+
+static void
+placeCascadeFindNext (CompWindow *w,
+ CompWindow **windows,
+ unsigned int winCount,
+ XRectangle *workArea,
+ int x,
+ int y,
+ int *newX,
+ int *newY)
+{
+ CompWindow **sorted;
+ unsigned int allocSize = winCount * sizeof (CompWindow *);
+ int cascadeX, cascadeY;
+ int xThreshold, yThreshold;
+ int winWidth, winHeight;
+ int i, cascadeStage;
+
+ sorted = malloc (allocSize);
+ if (!sorted)
+ return;
+
+ memcpy (sorted, windows, allocSize);
+ qsort (sorted, winCount, sizeof (CompWindow *), compareNorthWestCorner);
+
+ /* This is a "fuzzy" cascade algorithm.
+ * For each window in the list, we find where we'd cascade a
+ * new window after it. If a window is already nearly at that
+ * position, we move on.
+ */
+
+ /* arbitrary-ish threshold, honors user attempts to
+ * manually cascade.
+ */
+#define CASCADE_FUZZ 15
+
+ xThreshold = MAX (w->input.left, CASCADE_FUZZ);
+ yThreshold = MAX (w->input.top, CASCADE_FUZZ);
+
+ /* Find furthest-SE origin of all workspaces.
+ * cascade_x, cascade_y are the target position
+ * of NW corner of window frame.
+ */
+
+ cascadeX = MAX (0, workArea->x);
+ cascadeY = MAX (0, workArea->y);
+
+ /* Find first cascade position that's not used. */
+
+ winWidth = WIN_FULL_W (w);
+ winHeight = WIN_FULL_H (w);
+
+ cascadeStage = 0;
+ for (i = 0; i < winCount; i++)
+ {
+ CompWindow *wi = sorted[i];
+ int wx, wy;
+
+ /* we want frame position, not window position */
+ wx = WIN_FULL_X (wi);
+ wy = WIN_FULL_Y (wi);
+
+ if (abs (wx - cascadeX) < xThreshold &&
+ abs (wy - cascadeY) < yThreshold)
+ {
+ /* This window is "in the way", move to next cascade
+ * point. The new window frame should go at the origin
+ * of the client window we're stacking above.
+ */
+ wx = cascadeX = wi->serverX;
+ wy = cascadeY = wi->serverY;
+
+ /* If we go off the screen, start over with a new cascade */
+ if ((cascadeX + winWidth > workArea->x + workArea->width) ||
+ (cascadeY + winHeight > workArea->y + workArea->height))
+ {
+ cascadeX = MAX (0, workArea->x);
+ cascadeY = MAX (0, workArea->y);
+
+#define CASCADE_INTERVAL 50 /* space between top-left corners of cascades */
+
+ cascadeStage += 1;
+ cascadeX += CASCADE_INTERVAL * cascadeStage;
+
+ /* start over with a new cascade translated to the right,
+ * unless we are out of space
+ */
+ if (cascadeX + winWidth < workArea->x + workArea->width)
+ {
+ i = 0;
+ continue;
+ }
+ else
+ {
+ /* All out of space, this cascade_x won't work */
+ cascadeX = MAX (0, workArea->x);
+ break;
+ }
+ }
+ }
+ else
+ {
+ /* Keep searching for a further-down-the-diagonal window. */
+ }
+ }
+
+ /* cascade_x and cascade_y will match the last window in the list
+ * that was "in the way" (in the approximate cascade diagonal)
+ */
+
+ free (sorted);
+
+ /* Convert coords to position of window, not position of frame. */
+ *newX = cascadeX + w->input.left;
+ *newY = cascadeY + w->input.top;
+}
+
+static void
+placeCascade (CompWindow *w,
+ XRectangle *workArea,
+ int *x,
+ int *y)
+{
+ CompWindow **windows;
+ CompWindow *wi;
+ unsigned int count = 0;
+
+ /* get the total window count */
+ for (wi = w->screen->windows; wi; wi = wi->next)
+ count++;
+
+ windows = malloc (sizeof (CompWindow *) * count);
+ if (!windows)
+ return;
+
+ /* Find windows that matter (not minimized, on same workspace
+ * as placed window, may be shaded - if shaded we pretend it isn't
+ * for placement purposes)
+ */
+ for (wi = w->screen->windows, count = 0; wi; wi = wi->next)
+ {
+ if (!IS_PLACE_RELEVANT (wi, w))
+ continue;
+
+ if (wi->type & (CompWindowTypeFullscreenMask |
+ CompWindowTypeUnknownMask))
+ continue;
+
+ if (wi->serverX >= workArea->x + workArea->width ||
+ wi->serverX + wi->serverWidth <= workArea->x ||
+ wi->serverY >= workArea->y + workArea->height ||
+ wi->serverY + wi->serverHeight <= workArea->y)
+ continue;
+
+ windows[count++] = wi;
+ }
+
+ if (!placeCascadeFindFirstFit (w, windows, count, workArea, *x, *y, x, y))
+ {
+ /* if the window wasn't placed at the origin of screen,
+ * cascade it onto the current screen
+ */
+ placeCascadeFindNext (w, windows, count, workArea, *x, *y, x, y);
+ }
+
+ free (windows);
+}
+
+static void
+placeCentered (CompWindow *w,
+ XRectangle *workArea,
+ int *x,
+ int *y)
+{
+ *x = workArea->x + (workArea->width - w->serverWidth) / 2;
+ *y = workArea->y + (workArea->height - w->serverHeight) / 2;
+}
+
+static void
+placeRandom (CompWindow *w,
+ XRectangle *workArea,
+ int *x,
+ int *y)
+{
+ int remainX, remainY;
+
+ *x = workArea->x;
+ *y = workArea->y;
+
+ remainX = workArea->width - w->serverWidth;
+ if (remainX > 0)
+ *x += rand () % remainX;
+
+ remainY = workArea->height - w->serverHeight;
+ if (remainY > 0)
+ *y += rand () % remainY;
+}
+
+/* overlap types */
+#define NONE 0
+#define H_WRONG -1
+#define W_WRONG -2
+
+static void
+placeSmart (CompWindow *w,
+ XRectangle *workArea,
+ int *x,
+ int *y)
+{
+ /*
+ * SmartPlacement by Cristian Tibirna (tibirna@kde.org)
+ * adapted for kwm (16-19jan98) and for kwin (16Nov1999) using (with
+ * permission) ideas from fvwm, authored by
+ * Anthony Martin (amartin@engr.csulb.edu).
+ * Xinerama supported added by Balaji Ramani (balaji@yablibli.com)
+ * with ideas from xfce.
+ * adapted for Compiz by Bellegarde Cedric (gnumdk(at)gmail.com)
+ */
+ CompWindow *wi;
+ int overlap, minOverlap = 0;
+ int xOptimal, yOptimal;
+ int possible;
+
+ /* temp coords */
+ int cxl, cxr, cyt, cyb;
+ /* temp coords */
+ int xl, xr, yt, yb;
+ /* temp holder */
+ int basket;
+ /* CT lame flag. Don't like it. What else would do? */
+ Bool firstPass = TRUE;
+
+ /* get the maximum allowed windows space */
+ int xTmp = workArea->x;
+ int yTmp = workArea->y;
+
+ /* client gabarit */
+ int cw = WIN_FULL_W (w) - 1;
+ int ch = WIN_FULL_H (w) - 1;
+
+ xOptimal = xTmp;
+ yOptimal = yTmp;
+
+ /* loop over possible positions */
+ do
+ {
+ /* test if enough room in x and y directions */
+ if (yTmp + ch > workArea->y + workArea->height && ch < workArea->height)
+ overlap = H_WRONG; /* this throws the algorithm to an exit */
+ else if (xTmp + cw > workArea->x + workArea->width)
+ overlap = W_WRONG;
+ else
+ {
+ overlap = NONE; /* initialize */
+
+ cxl = xTmp;
+ cxr = xTmp + cw;
+ cyt = yTmp;
+ cyb = yTmp + ch;
+
+ for (wi = w->screen->windows; wi; wi = wi->next)
+ {
+ if (!IS_PLACE_RELEVANT (wi, w))
+ continue;
+
+ xl = WIN_FULL_X (wi);
+ yt = WIN_FULL_Y (wi);
+ xr = WIN_FULL_X (wi) + WIN_FULL_W (wi);
+ yb = WIN_FULL_Y (wi) + WIN_FULL_H (wi);
+
+ /* if windows overlap, calc the overall overlapping */
+ if (cxl < xr && cxr > xl && cyt < yb && cyb > yt)
+ {
+ xl = MAX (cxl, xl);
+ xr = MIN (cxr, xr);
+ yt = MAX (cyt, yt);
+ yb = MIN (cyb, yb);
+
+ if (wi->state & CompWindowStateAboveMask)
+ overlap += 16 * (xr - xl) * (yb - yt);
+ else if (wi->state & CompWindowStateBelowMask)
+ overlap += 0;
+ else
+ overlap += (xr - xl) * (yb - yt);
+ }
+ }
+ }
+
+ /* CT first time we get no overlap we stop */
+ if (overlap == NONE)
+ {
+ xOptimal = xTmp;
+ yOptimal = yTmp;
+ break;
+ }
+
+ if (firstPass)
+ {
+ firstPass = FALSE;
+ minOverlap = overlap;
+ }
+ /* CT save the best position and the minimum overlap up to now */
+ else if (overlap >= NONE && overlap < minOverlap)
+ {
+ minOverlap = overlap;
+ xOptimal = xTmp;
+ yOptimal = yTmp;
+ }
+
+ /* really need to loop? test if there's any overlap */
+ if (overlap > NONE)
+ {
+ possible = workArea->x + workArea->width;
+
+ if (possible - cw > xTmp)
+ possible -= cw;
+
+ /* compare to the position of each client on the same desk */
+ for (wi = w->screen->windows; wi; wi = wi->next)
+ {
+ if (!IS_PLACE_RELEVANT (wi, w))
+ continue;
+
+ xl = WIN_FULL_X (wi);
+ yt = WIN_FULL_Y (wi);
+ xr = WIN_FULL_X (wi) + WIN_FULL_W (wi);
+ yb = WIN_FULL_X (wi) + WIN_FULL_H (wi);
+
+ /* if not enough room above or under the current
+ * client determine the first non-overlapped x position
+ */
+ if (yTmp < yb && yt < ch + yTmp)
+ {
+ if (xr > xTmp && possible > xr)
+ possible = xr;
+
+ basket = xl - cw;
+ if (basket > xTmp && possible > basket)
+ possible = basket;
+ }
+ }
+ xTmp = possible;
+ }
+ /* else ==> not enough x dimension (overlap was wrong on horizontal) */
+ else if (overlap == W_WRONG)
+ {
+ xTmp = workArea->x;
+ possible = workArea->y + workArea->height;
+
+ if (possible - ch > yTmp)
+ possible -= ch;
+
+ /* test the position of each window on the desk */
+ for (wi = w->screen->windows; wi; wi = wi->next)
+ {
+ if (!IS_PLACE_RELEVANT (wi, w))
+ continue;
+
+ xl = WIN_FULL_X (wi);
+ yt = WIN_FULL_Y (wi);
+ xr = WIN_FULL_X (wi) + WIN_FULL_W (wi);
+ yb = WIN_FULL_X (wi) + WIN_FULL_H (wi);
+
+ /* if not enough room to the left or right of the current
+ * client determine the first non-overlapped y position
+ */
+ if (yb > yTmp && possible > yb)
+ possible = yb;
+
+ basket = yt - ch;
+ if (basket > yTmp && possible > basket)
+ possible = basket;
+ }
+ yTmp = possible;
+ }
+ }
+ while (overlap != NONE && overlap != H_WRONG &&
+ yTmp < workArea->y + workArea->height);
+
+ if (ch >= workArea->height)
+ yOptimal = workArea->y;
+
+ *x = xOptimal + w->input.left;
+ *y = yOptimal + w->input.top;
+}
+
+static PlacementStrategy
+placeGetStrategyForWindow (CompWindow *w)
+{
+ CompMatch *match;
+
+ PLACE_SCREEN (w->screen);
+
+ if (w->type & (CompWindowTypeDockMask | CompWindowTypeDesktopMask |
+ CompWindowTypeUtilMask | CompWindowTypeToolbarMask |
+ CompWindowTypeMenuMask | CompWindowTypeFullscreenMask |
+ CompWindowTypeUnknownMask))
+ {
+ /* assume the app knows best how to place these */
+ return NoPlacement;
+ }
+
+ if (w->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))
+ {
+ /* see above */
+ return NoPlacement;
+ }
+
+ /* no placement for unmovable windows */
+ if (!(w->actions & CompWindowActionMoveMask))
+ return NoPlacement;
+
+ match = &ps->opt[PLACE_SCREEN_OPTION_FORCE_PLACEMENT].value.match;
+ if (!matchEval (match, w))
+ {
+ if ((w->type & CompWindowTypeNormalMask) ||
+ ps->opt[PLACE_SCREEN_OPTION_WORKAROUND].value.b)
+ {
+ /* Only accept USPosition on non-normal windows if workarounds are
+ * enabled because apps claiming the user set -geometry for a
+ * dialog or dock are most likely wrong
+ */
+ if (w->sizeHints.flags & USPosition)
+ return ConstrainOnly;
+ }
+
+ if (w->sizeHints.flags & PPosition)
+ return ConstrainOnly;
+ }
+
+ if (w->transientFor &&
+ (w->type & (CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask)))
+ {
+ CompWindow *parent = findWindowAtScreen (w->screen, w->transientFor);
+ if (parent && parent->managed)
+ return PlaceOverParent;
+ }
+
+ if (w->type & (CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask |
+ CompWindowTypeSplashMask))
+ {
+ return PlaceCenteredOnScreen;
+ }
+
+ return PlaceAndConstrain;
+}
+
+static CompOutput *
+placeGetPlacementOutput (CompWindow *w,
+ PlacementStrategy strategy,
+ int x,
+ int y)
+{
+ CompScreen *s = w->screen;
+ int output = -1;
+
+ PLACE_SCREEN (s);
+
+ switch (strategy) {
+ case PlaceOverParent:
+ {
+ CompWindow *parent;
+
+ parent = findWindowAtScreen (s, w->transientFor);
+ if (parent)
+ output = outputDeviceForWindow (parent);
+ }
+ break;
+ case ConstrainOnly:
+ output = outputDeviceForGeometry (s, x, y,
+ w->serverWidth,
+ w->serverHeight,
+ w->serverBorderWidth);
+ break;
+ default:
+ break;
+ }
+
+ if (output >= 0)
+ return &s->outputDev[output];
+
+ switch (ps->opt[PLACE_SCREEN_OPTION_MULTIOUTPUT_MODE].value.i) {
+ case PLACE_MOMODE_CURRENT:
+ output = s->currentOutputDev;
+ break;
+ case PLACE_MOMODE_POINTER:
+ {
+ Window wDummy;
+ int iDummy, xPointer, yPointer;
+ unsigned int uiDummy;
+
+ /* this means a server roundtrip, which kind of sucks; thus
+ this code should be replaced as soon as we have software
+ cursor rendering and thus have a cached pointer coordinate */
+ if (XQueryPointer (s->display->display, s->root,
+ &wDummy, &wDummy, &xPointer, &yPointer,
+ &iDummy, &iDummy, &uiDummy))
+ {
+ output = outputDeviceForPoint (s, xPointer, yPointer);
+ }
+ }
+ break;
+ case PLACE_MOMODE_ACTIVEWIN:
+ {
+ CompWindow *active;
+
+ active = findWindowAtScreen (s, s->display->activeWindow);
+ if (active)
+ output = outputDeviceForWindow (active);
+ }
+ break;
+ case PLACE_MOMODE_FULLSCREEN:
+ /* only place on fullscreen output if not placing centered, as the
+ constraining will move the window away from the center otherwise */
+ if (strategy != PlaceCenteredOnScreen)
+ return &s->fullscreenOutput;
+ break;
+ }
+
+ if (output < 0)
+ output = s->currentOutputDev;
+
+ return &s->outputDev[output];
+}
+
+static void
+placeConstrainToWorkarea (CompWindow *w,
+ XRectangle *workArea,
+ int *x,
+ int *y)
+{
+ CompWindowExtents extents;
+ int delta;
+
+ extents.left = *x - w->input.left;
+ extents.top = *y - w->input.top;
+ extents.right = *x + w->serverWidth + w->input.right;
+ extents.bottom = *y + w->serverHeight + w->input.bottom;
+
+ delta = workArea->x + workArea->width - extents.right;
+ if (delta < 0)
+ extents.left += delta;
+
+ delta = workArea->x - extents.left;
+ if (delta > 0)
+ extents.left += delta;
+
+ delta = workArea->y + workArea->height - extents.bottom;
+ if (delta < 0)
+ extents.top += delta;
+
+ delta = workArea->y - extents.top;
+ if (delta > 0)
+ extents.top += delta;
+
+ *x = extents.left + w->input.left;
+ *y = extents.top + w->input.top;
+}
+
+static Bool
+placeDoWindowPlacement (CompWindow *w,
+ int x,
+ int y,
+ int *newX,
+ int *newY)
+{
+ CompScreen *s = w->screen;
+ XRectangle workArea;
+ int targetVpX, targetVpY;
+ CompOutput *output;
+ PlacementStrategy strategy;
+ Bool keepInWorkarea;
+
+ PLACE_SCREEN (s);
+
+ if (placeMatchPosition (w, &x, &y, &keepInWorkarea))
+ {
+ strategy = keepInWorkarea ? ConstrainOnly : NoPlacement;
+ }
+ else
+ {
+ strategy = placeGetStrategyForWindow (w);
+ if (strategy == NoPlacement)
+ return FALSE;
+ }
+
+ output = placeGetPlacementOutput (w, strategy, x, y);
+ workArea = output->workArea;
+
+ targetVpX = w->initialViewportX;
+ targetVpY = w->initialViewportY;
+
+ if (strategy == PlaceOverParent)
+ {
+ CompWindow *parent;
+
+ parent = findWindowAtScreen (s, w->transientFor);
+ if (parent)
+ {
+ /* center over parent horizontally */
+ x = parent->serverX + (parent->serverWidth / 2) -
+ (w->serverWidth / 2);
+
+ /* "visually" center vertically, leaving twice as much space below
+ as on top */
+ y = parent->serverY + (parent->serverHeight - w->serverHeight) / 3;
+
+ /* put top of child's frame, not top of child's client */
+ y += w->input.top;
+
+ /* if parent is visible on current viewport, clip to work area;
+ don't constrain further otherwise */
+ if (parent->serverX < parent->screen->width &&
+ parent->serverX + parent->serverWidth > 0 &&
+ parent->serverY < parent->screen->height &&
+ parent->serverY + parent->serverHeight > 0)
+ {
+ defaultViewportForWindow (parent, &targetVpX, &targetVpY);
+ strategy = ConstrainOnly;
+ }
+ else
+ {
+ strategy = NoPlacement;
+ }
+ }
+ }
+
+ if (strategy == PlaceCenteredOnScreen)
+ {
+ /* center window on current output device */
+
+ x = output->region.extents.x1;
+ y = output->region.extents.y1;
+
+ x += (output->width - w->serverWidth) / 2;
+ y += (output->height - w->serverHeight) / 2;
+
+ strategy = ConstrainOnly;
+ }
+
+ workArea.x += (targetVpX - s->x) * s->width;
+ workArea.y += (targetVpY - s->y) * s->height;
+
+ if (strategy == PlaceOnly || strategy == PlaceAndConstrain)
+ {
+ switch (ps->opt[PLACE_SCREEN_OPTION_MODE].value.i) {
+ case PLACE_MODE_CASCADE:
+ placeCascade (w, &workArea, &x, &y);
+ break;
+ case PLACE_MODE_CENTERED:
+ placeCentered (w, &workArea, &x, &y);
+ break;
+ case PLACE_MODE_RANDOM:
+ placeRandom (w, &workArea, &x, &y);
+ break;
+ case PLACE_MODE_MAXIMIZE:
+ placeSendWindowMaximizationRequest (w);
+ break;
+ case PLACE_MODE_SMART:
+ placeSmart (w, &workArea, &x, &y);
+ break;
+ }
+
+ /* When placing to the fullscreen output, constrain to one
+ output nevertheless */
+ if (output->id == ~0)
+ {
+ int id;
+
+ id = outputDeviceForGeometry (s, x, y,
+ w->serverWidth,
+ w->serverHeight,
+ w->serverBorderWidth);
+ getWorkareaForOutput (s, id, &workArea);
+
+ workArea.x += (targetVpX - s->x) * s->width;
+ workArea.y += (targetVpY - s->y) * s->height;
+ }
+
+ /* Maximize windows if they are too big for their work area (bit of
+ * a hack here). Assume undecorated windows probably don't intend to
+ * be maximized.
+ */
+ if ((w->actions & MAXIMIZE_STATE) == MAXIMIZE_STATE &&
+ (w->mwmDecor & (MwmDecorAll | MwmDecorTitle)) &&
+ !(w->state & CompWindowStateFullscreenMask))
+ {
+ if (WIN_FULL_W (w) >= workArea.width &&
+ WIN_FULL_H (w) >= workArea.height)
+ {
+ placeSendWindowMaximizationRequest (w);
+ }
+ }
+ }
+
+ if (strategy == ConstrainOnly || strategy == PlaceAndConstrain)
+ placeConstrainToWorkarea (w, &workArea, &x, &y);
+
+ *newX = x;
+ *newY = y;
+
+ return TRUE;
+}
+
+static void
+placeValidateWindowResizeRequest (CompWindow *w,
+ unsigned int *mask,
+ XWindowChanges *xwc,
+ unsigned int source)
+{
+ CompScreen *s = w->screen;
+ XRectangle workArea;
+ int x, y, left, right, top, bottom;
+ int output;
+ Bool sizeOnly = FALSE;
+
+ PLACE_SCREEN (s);
+
+ UNWRAP (ps, s, validateWindowResizeRequest);
+ (*s->validateWindowResizeRequest) (w, mask, xwc, source);
+ WRAP (ps, s, validateWindowResizeRequest,
+ placeValidateWindowResizeRequest);
+
+ if (*mask == 0)
+ return;
+
+ if (source == ClientTypePager)
+ return;
+
+ if (w->state & CompWindowStateFullscreenMask)
+ return;
+
+ if (w->wmType & (CompWindowTypeDockMask |
+ CompWindowTypeDesktopMask))
+ return;
+
+ if (w->sizeHints.flags & USPosition)
+ {
+ /* only respect USPosition on normal windows if
+ workarounds are disabled, reason see above */
+ if (ps->opt[PLACE_SCREEN_OPTION_WORKAROUND].value.b ||
+ (w->type & CompWindowTypeNormalMask))
+ {
+ /* try to keep the window position intact for USPosition -
+ obviously we can't do that if we need to change the size */
+ sizeOnly = TRUE;
+ }
+ }
+
+ /* left, right, top, bottom target coordinates, clamped to viewport
+ sizes as we don't need to validate movements to other viewports;
+ we are only interested in inner-viewport movements */
+ x = xwc->x % s->width;
+ if ((x + xwc->width) < 0)
+ x += s->width;
+
+ y = xwc->y % s->height;
+ if ((y + xwc->height) < 0)
+ y += s->height;
+
+ left = x - w->input.left;
+ right = x + xwc->width + w->input.right;
+ top = y - w->input.top;
+ bottom = y + xwc->height + w->input.bottom;
+
+ output = outputDeviceForGeometry (s,
+ xwc->x, xwc->y,
+ xwc->width, xwc->height,
+ w->serverBorderWidth);
+
+ getWorkareaForOutput (s, output, &workArea);
+
+ if (xwc->width >= workArea.width &&
+ xwc->height >= workArea.height)
+ {
+ if ((w->actions & MAXIMIZE_STATE) == MAXIMIZE_STATE &&
+ (w->mwmDecor & (MwmDecorAll | MwmDecorTitle)) &&
+ !(w->state & CompWindowStateFullscreenMask))
+ {
+ placeSendWindowMaximizationRequest (w);
+ }
+ }
+
+ if ((right - left) > workArea.width)
+ {
+ left = workArea.x;
+ right = left + workArea.width;
+ }
+ else
+ {
+ if (left < workArea.x)
+ {
+ right += workArea.x - left;
+ left = workArea.x;
+ }
+
+ if (right > (workArea.x + workArea.width))
+ {
+ left -= right - (workArea.x + workArea.width);
+ right = workArea.x + workArea.width;
+ }
+ }
+
+ if ((bottom - top) > workArea.height)
+ {
+ top = workArea.y;
+ bottom = top + workArea.height;
+ }
+ else
+ {
+ if (top < workArea.y)
+ {
+ bottom += workArea.y - top;
+ top = workArea.y;
+ }
+
+ if (bottom > (workArea.y + workArea.height))
+ {
+ top -= bottom - (workArea.y + workArea.height);
+ bottom = workArea.y + workArea.height;
+ }
+ }
+
+ /* bring left/right/top/bottom to actual window coordinates */
+ left += w->input.left;
+ right -= w->input.right;
+ top += w->input.top;
+ bottom -= w->input.bottom;
+
+ if ((right - left) != xwc->width)
+ {
+ xwc->width = right - left;
+ *mask |= CWWidth;
+ sizeOnly = FALSE;
+ }
+
+ if ((bottom - top) != xwc->height)
+ {
+ xwc->height = bottom - top;
+ *mask |= CWHeight;
+ sizeOnly = FALSE;
+ }
+
+ if (!sizeOnly)
+ {
+ if (left != x)
+ {
+ xwc->x += left - x;
+ *mask |= CWX;
+ }
+
+ if (top != y)
+ {
+ xwc->y += top - y;
+ *mask |= CWY;
+ }
+ }
+}
+
+static Bool
+placePlaceWindow (CompWindow *w,
+ int x,
+ int y,
+ int *newX,
+ int *newY)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ PLACE_SCREEN (s);
+
+ UNWRAP (ps, s, placeWindow);
+ status = (*s->placeWindow) (w, x, y, newX, newY);
+ WRAP (ps, s, placeWindow, placePlaceWindow);
+
+ if (!status)
+ {
+ int viewportX, viewportY;
+
+ if (!placeDoWindowPlacement (w, x, y, newX, newY))
+ {
+ *newX = x;
+ *newY = y;
+ }
+
+ if (placeMatchViewport (w, &viewportX, &viewportY))
+ {
+ viewportX = MAX (MIN (viewportX, s->hsize), 0);
+ viewportY = MAX (MIN (viewportY, s->vsize), 0);
+
+ x = *newX % s->width;
+ if (x < 0)
+ x += s->width;
+ y = *newY % s->height;
+ if (y < 0)
+ y += s->height;
+
+ *newX = x + (viewportX - s->x) * s->width;
+ *newY = y + (viewportY - s->y) * s->height;
+ }
+ }
+
+ return TRUE;
+}
+
+static void
+placeHandleScreenSizeChange (CompScreen *s,
+ int width,
+ int height)
+{
+ CompWindow *w;
+ int vpX, vpY, shiftX, shiftY;
+ XRectangle extents;
+ unsigned int mask;
+ XWindowChanges xwc;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!w->managed)
+ continue;
+
+ if (w->wmType & (CompWindowTypeDockMask |
+ CompWindowTypeDesktopMask))
+ continue;
+
+ mask = 0;
+ getWindowExtentsRect (w, &extents);
+
+ vpX = extents.x / s->width;
+ if (extents.x < 0)
+ vpX -= 1;
+ vpY = extents.y / s->height;
+ if (extents.y < 0)
+ vpY -= 1;
+
+ shiftX = vpX * (width - s->width);
+ shiftY = vpY * (height - s->height);
+
+ extents.x = extents.x % s->width;
+ if (extents.x < 0)
+ extents.x += s->width;
+ extents.y = extents.y % s->height;
+ if (extents.y < 0)
+ extents.y += s->height;
+
+ if (extents.x + extents.width > width)
+ shiftX += width - extents.x - extents.width;
+ if (extents.y + extents.height > height)
+ shiftY += height - extents.y - extents.height;
+
+ if (shiftX)
+ {
+ mask |= CWX;
+ xwc.x = w->serverX + shiftX;
+ }
+
+ if (shiftY)
+ {
+ mask |= CWY;
+ xwc.y = w->serverY + shiftY;
+ }
+
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+ }
+}
+
+static void
+placeHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ PLACE_DISPLAY (d);
+
+ switch (event->type) {
+ case ConfigureNotify:
+ {
+ CompScreen *s;
+
+ s = findScreenAtDisplay (d, event->xconfigure.window);
+ if (s)
+ placeHandleScreenSizeChange (s,
+ event->xconfigure.width,
+ event->xconfigure.height);
+ }
+ break;
+ default:
+ break;
+ }
+
+ UNWRAP (pd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (pd, d, handleEvent, placeHandleEvent);
+}
+
+static Bool
+placeInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ PlaceDisplay *pd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ pd = malloc (sizeof (PlaceDisplay));
+ if (!pd)
+ return FALSE;
+
+ pd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (pd->screenPrivateIndex < 0)
+ {
+ free (pd);
+ return FALSE;
+ }
+
+ d->base.privates[displayPrivateIndex].ptr = pd;
+
+ WRAP (pd, d, handleEvent, placeHandleEvent);
+
+ return TRUE;
+}
+
+static void
+placeFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ PLACE_DISPLAY (d);
+
+ UNWRAP (pd, d, handleEvent);
+
+ freeScreenPrivateIndex (d, pd->screenPrivateIndex);
+
+ free (pd);
+}
+
+static const CompMetadataOptionInfo placeScreenOptionInfo[] = {
+ { "workarounds", "bool", 0, 0, 0 },
+ { "mode", "int", RESTOSTRING (0, PLACE_MODE_LAST), 0, 0 },
+ { "multioutput_mode", "int", RESTOSTRING (0, PLACE_MOMODE_LAST), 0, 0 },
+ { "force_placement_match", "match", 0, 0, 0 },
+ { "position_matches", "list", "<type>match</type>", 0, 0 },
+ { "position_x_values", "list", "<type>int</type>", 0, 0 },
+ { "position_y_values", "list", "<type>int</type>", 0, 0 },
+ { "position_constrain_workarea", "list", "<type>bool</type>", 0, 0 },
+ { "viewport_matches", "list", "<type>match</type>", 0, 0 },
+ { "viewport_x_values", "list",
+ "<type>int</type><min>1</min><max>32</max>", 0, 0 },
+ { "viewport_y_values", "list",
+ "<type>int</type><min>1</min><max>32</max>", 0, 0 },
+};
+
+static Bool
+placeInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ PlaceScreen *ps;
+
+ PLACE_DISPLAY (s->display);
+
+ ps = malloc (sizeof (PlaceScreen));
+ if (!ps)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &placeMetadata,
+ placeScreenOptionInfo,
+ ps->opt,
+ PLACE_SCREEN_OPTION_NUM))
+ {
+ free (ps);
+ return FALSE;
+ }
+
+ WRAP (ps, s, placeWindow, placePlaceWindow);
+ WRAP (ps, s, validateWindowResizeRequest,
+ placeValidateWindowResizeRequest);
+
+ s->base.privates[pd->screenPrivateIndex].ptr = ps;
+
+ return TRUE;
+}
+
+static void
+placeFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ PLACE_SCREEN (s);
+
+ UNWRAP (ps, s, placeWindow);
+ UNWRAP (ps, s, validateWindowResizeRequest);
+
+ compFiniScreenOptions (s, ps->opt, PLACE_SCREEN_OPTION_NUM);
+
+ free (ps);
+}
+
+static CompBool
+placeInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) placeInitDisplay,
+ (InitPluginObjectProc) placeInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+placeFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) placeFiniDisplay,
+ (FiniPluginObjectProc) placeFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+placeGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) 0, /* GetDisplayOptions */
+ (GetPluginObjectOptionsProc) placeGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+placeSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) 0, /* SetDisplayOption */
+ (SetPluginObjectOptionProc) placeSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+placeInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&placeMetadata,
+ p->vTable->name, 0, 0,
+ placeScreenOptionInfo,
+ PLACE_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&placeMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&placeMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+placeFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&placeMetadata);
+}
+
+static CompMetadata *
+placeGetMetadata (CompPlugin *plugin)
+{
+ return &placeMetadata;
+}
+
+static CompPluginVTable placeVTable = {
+ "place",
+ placeGetMetadata,
+ placeInit,
+ placeFini,
+ placeInitObject,
+ placeFiniObject,
+ placeGetObjectOptions,
+ placeSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &placeVTable;
+}
diff --git a/plugins/png.c b/plugins/png.c
new file mode 100644
index 0000000..741cf01
--- /dev/null
+++ b/plugins/png.c
@@ -0,0 +1,575 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <png.h>
+#include <setjmp.h>
+
+#include <compiz-core.h>
+
+static CompMetadata pngMetadata;
+
+#define PNG_SIG_SIZE 8
+
+static int displayPrivateIndex;
+
+typedef struct _PngDisplay {
+ FileToImageProc fileToImage;
+ ImageToFileProc imageToFile;
+} PngDisplay;
+
+#define GET_PNG_DISPLAY(d) \
+ ((PngDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define PNG_DISPLAY(d) \
+ PngDisplay *pd = GET_PNG_DISPLAY (d)
+
+
+static void
+premultiplyData (png_structp png,
+ png_row_infop row_info,
+ png_bytep data)
+{
+ unsigned int i;
+
+ for (i = 0; i < row_info->rowbytes; i += 4)
+ {
+ unsigned char *base = &data[i];
+ unsigned char blue = base[0];
+ unsigned char green = base[1];
+ unsigned char red = base[2];
+ unsigned char alpha = base[3];
+ int p;
+
+ red = (unsigned) red * (unsigned) alpha / 255;
+ green = (unsigned) green * (unsigned) alpha / 255;
+ blue = (unsigned) blue * (unsigned) alpha / 255;
+
+ p = (alpha << 24) | (red << 16) | (green << 8) | (blue << 0);
+ memcpy (base, &p, sizeof (int));
+ }
+}
+
+static Bool
+readPngData (png_struct *png,
+ png_info *info,
+ void **data,
+ int *width,
+ int *height)
+{
+ png_uint_32 png_width, png_height;
+ int depth, color_type, interlace, i;
+ unsigned int pixel_size;
+ png_byte **row_pointers;
+ char *d;
+
+ png_read_info (png, info);
+
+ png_get_IHDR (png, info,
+ &png_width, &png_height, &depth,
+ &color_type, &interlace, NULL, NULL);
+
+ *width = (int) png_width;
+ *height = (int) png_height;
+
+ /* convert palette/gray image to rgb */
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb (png);
+
+ /* expand gray bit depth if needed */
+ if (color_type == PNG_COLOR_TYPE_GRAY && depth < 8)
+ png_set_gray_1_2_4_to_8 (png);
+
+ /* transform transparency to alpha */
+ if (png_get_valid(png, info, PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha (png);
+
+ if (depth == 16)
+ png_set_strip_16 (png);
+
+ if (depth < 8)
+ png_set_packing (png);
+
+ /* convert grayscale to RGB */
+ if (color_type == PNG_COLOR_TYPE_GRAY ||
+ color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ png_set_gray_to_rgb (png);
+
+ if (interlace != PNG_INTERLACE_NONE)
+ png_set_interlace_handling (png);
+
+ png_set_bgr (png);
+ png_set_filler (png, 0xff, PNG_FILLER_AFTER);
+
+ png_set_read_user_transform_fn (png, premultiplyData);
+
+ png_read_update_info (png, info);
+
+ pixel_size = 4;
+ d = (char *) malloc (png_width * png_height * pixel_size);
+ if (!d)
+ return FALSE;
+
+ *data = d;
+
+ row_pointers = (png_byte **) malloc (png_height * sizeof (char *));
+ if (!row_pointers)
+ {
+ free (d);
+ return FALSE;
+ }
+
+ for (i = 0; i < png_height; i++)
+ row_pointers[i] = (png_byte *) (d + i * png_width * pixel_size);
+
+ png_read_image (png, row_pointers);
+ png_read_end (png, info);
+
+ free (row_pointers);
+
+ return TRUE;
+}
+
+static Bool
+readPngFileToImage (FILE *file,
+ int *width,
+ int *height,
+ void **data)
+{
+ unsigned char png_sig[PNG_SIG_SIZE];
+ int sig_bytes;
+ png_struct *png;
+ png_info *info;
+ Bool status;
+
+ sig_bytes = fread (png_sig, 1, PNG_SIG_SIZE, file);
+ if (png_check_sig (png_sig, sig_bytes) == 0)
+ return FALSE;
+
+ png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (!png)
+ return FALSE;
+
+ info = png_create_info_struct (png);
+ if (!info)
+ {
+ png_destroy_read_struct (&png, NULL, NULL);
+
+ return FALSE;
+ }
+
+ png_init_io (png, file);
+ png_set_sig_bytes (png, sig_bytes);
+
+ status = readPngData (png, info, data, width, height);
+
+ png_destroy_read_struct (&png, &info, NULL);
+
+ return status;
+}
+
+#if 0
+static void
+userReadData (png_structp png_ptr,
+ png_bytep data,
+ png_size_t length)
+{
+ const unsigned char **buffer = (const unsigned char **)
+ png_get_io_ptr (png_ptr);
+
+ memcpy (data, *buffer, length);
+ *buffer += length;
+}
+
+static Bool
+readPngBuffer (const unsigned char *buffer,
+ char **data,
+ unsigned int *width,
+ unsigned int *height)
+{
+ unsigned char png_sig[PNG_SIG_SIZE];
+ png_struct *png;
+ png_info *info;
+ const unsigned char *b = buffer + PNG_SIG_SIZE;
+ Bool status;
+
+ memcpy (png_sig, buffer, PNG_SIG_SIZE);
+ if (png_check_sig (png_sig, PNG_SIG_SIZE) == 0)
+ return FALSE;
+
+ png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (!png)
+ return FALSE;
+
+ info = png_create_info_struct (png);
+ if (!info)
+ {
+ png_destroy_read_struct (&png, NULL, NULL);
+ return FALSE;
+ }
+
+ png_set_read_fn (png, (void *) &b, userReadData);
+ png_set_sig_bytes (png, PNG_SIG_SIZE);
+
+ status = readPngData (png, info, data, width, height);
+
+ png_destroy_read_struct (&png, &info, NULL);
+
+ return status;
+}
+#endif
+
+static Bool
+writePng (unsigned char *buffer,
+ png_rw_ptr writeFunc,
+ void *closure,
+ int width,
+ int height,
+ int stride)
+{
+ png_struct *png;
+ png_info *info;
+ png_byte **rows;
+ png_color_16 white;
+ int i;
+
+ rows = malloc (height * sizeof (png_byte *));
+ if (!rows)
+ return FALSE;
+
+ for (i = 0; i < height; i++)
+ rows[height - i - 1] = buffer + i * stride;
+
+ png = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ if (!png)
+ {
+ free (rows);
+
+ return FALSE;
+ }
+
+ info = png_create_info_struct (png);
+ if (!info)
+ {
+ png_destroy_read_struct (&png, NULL, NULL);
+ free (rows);
+
+ return FALSE;
+ }
+
+ if (setjmp (png_jmpbuf (png)))
+ {
+ png_destroy_read_struct (&png, NULL, NULL);
+ free (rows);
+
+ return FALSE;
+ }
+
+ png_set_write_fn (png, closure, writeFunc, NULL);
+
+ png_set_IHDR (png, info,
+ width, height, 8,
+ PNG_COLOR_TYPE_RGB_ALPHA,
+ PNG_INTERLACE_NONE,
+ PNG_COMPRESSION_TYPE_DEFAULT,
+ PNG_FILTER_TYPE_DEFAULT);
+
+ white.red = 0xff;
+ white.blue = 0xff;
+ white.green = 0xff;
+
+ png_set_bKGD (png, info, &white);
+
+ png_write_info (png, info);
+ png_write_image (png, rows);
+ png_write_end (png, info);
+
+ png_destroy_write_struct (&png, &info);
+ free (rows);
+
+ return TRUE;
+}
+
+static void
+stdioWriteFunc (png_structp png,
+ png_bytep data,
+ png_size_t size)
+{
+ FILE *fp;
+
+ fp = png_get_io_ptr (png);
+ if (fwrite (data, 1, size, fp) != size)
+ png_error (png, "Write Error");
+}
+
+static char *
+pngExtension (const char *name)
+{
+
+ if (strlen (name) > 4)
+ {
+ if (strcasecmp (name + (strlen (name) - 4), ".png") == 0)
+ return "";
+ }
+
+ return ".png";
+}
+
+static Bool
+pngImageToFile (CompDisplay *d,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ int stride,
+ void *data)
+{
+ Bool status = FALSE;
+ char *extension = pngExtension (name);
+ char *file;
+ FILE *fp;
+ int len;
+
+ PNG_DISPLAY (d);
+
+ len = (path ? strlen (path) : 0) + strlen (name) + strlen (extension) + 2;
+
+ file = malloc (len);
+ if (file)
+ {
+ if (path)
+ sprintf (file, "%s/%s%s", path, name, extension);
+ else
+ sprintf (file, "%s%s", name, extension);
+ }
+
+ if (file && strcasecmp (format, "png") == 0)
+ {
+ fp = fopen (file, "wb");
+ if (fp)
+ {
+ status = writePng (data, stdioWriteFunc, fp, width, height, stride);
+ fclose (fp);
+ }
+
+ if (status)
+ {
+ free (file);
+ return TRUE;
+ }
+ }
+
+ UNWRAP (pd, d, imageToFile);
+ status = (*d->imageToFile) (d, path, name, format, width, height, stride,
+ data);
+ WRAP (pd, d, imageToFile, pngImageToFile);
+
+ if (!status && file)
+ {
+ fp = fopen (file, "wb");
+ if (fp)
+ {
+ status = writePng (data, stdioWriteFunc, fp, width, height, stride);
+ fclose (fp);
+ }
+ }
+
+ if (file)
+ free (file);
+
+ return status;
+}
+
+static Bool
+pngFileToImage (CompDisplay *d,
+ const char *path,
+ const char *name,
+ int *width,
+ int *height,
+ int *stride,
+ void **data)
+{
+ Bool status = FALSE;
+ char *extension = pngExtension (name);
+ char *file;
+ int len;
+
+ PNG_DISPLAY (d);
+
+ len = (path ? strlen (path) : 0) + strlen (name) + strlen (extension) + 2;
+
+ file = malloc (len);
+ if (file)
+ {
+ FILE *fp;
+
+ if (path)
+ sprintf (file, "%s/%s%s", path, name, extension);
+ else
+ sprintf (file, "%s%s", name, extension);
+
+ fp = fopen (file, "r");
+ if (fp)
+ {
+ status = readPngFileToImage (fp,
+ width,
+ height,
+ data);
+ fclose (fp);
+ }
+
+ free (file);
+
+ if (status)
+ {
+ *stride = *width * 4;
+ return TRUE;
+ }
+ }
+
+ UNWRAP (pd, d, fileToImage);
+ status = (*d->fileToImage) (d, path, name, width, height, stride, data);
+ WRAP (pd, d, fileToImage, pngFileToImage);
+
+ return status;
+}
+
+static Bool
+pngInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ PngDisplay *pd;
+ CompScreen *s;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ pd = malloc (sizeof (PngDisplay));
+ if (!pd)
+ return FALSE;
+
+ WRAP (pd, d, fileToImage, pngFileToImage);
+ WRAP (pd, d, imageToFile, pngImageToFile);
+
+ d->base.privates[displayPrivateIndex].ptr = pd;
+
+ for (s = d->screens; s; s = s->next)
+ updateDefaultIcon (s);
+
+ return TRUE;
+}
+
+static void
+pngFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CompScreen *s;
+
+ PNG_DISPLAY (d);
+
+ UNWRAP (pd, d, fileToImage);
+ UNWRAP (pd, d, imageToFile);
+
+ for (s = d->screens; s; s = s->next)
+ updateDefaultIcon (s);
+
+ free (pd);
+}
+
+static CompBool
+pngInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) pngInitDisplay
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+pngFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) pngFiniDisplay
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+pngInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&pngMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&pngMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&pngMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+pngFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&pngMetadata);
+}
+
+static CompMetadata *
+pngGetMetadata (CompPlugin *plugin)
+{
+ return &pngMetadata;
+}
+
+CompPluginVTable pngVTable = {
+ "png",
+ pngGetMetadata,
+ pngInit,
+ pngFini,
+ pngInitObject,
+ pngFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &pngVTable;
+}
diff --git a/plugins/regex.c b/plugins/regex.c
new file mode 100644
index 0000000..2d32654
--- /dev/null
+++ b/plugins/regex.c
@@ -0,0 +1,558 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include <regex.h>
+
+#include <X11/Xatom.h>
+
+#include <compiz-core.h>
+
+static CompMetadata regexMetadata;
+
+static int displayPrivateIndex;
+
+typedef struct _RegexDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ MatchInitExpProc matchInitExp;
+ Atom roleAtom;
+ Atom visibleNameAtom;
+} RegexDisplay;
+
+typedef struct _RegexScreen {
+ int windowPrivateIndex;
+} RegexScreen;
+
+typedef struct _RegexWindow {
+ char *title;
+ char *role;
+} RegexWindow;
+
+#define GET_REGEX_DISPLAY(d) \
+ ((RegexDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define REGEX_DISPLAY(d) \
+ RegexDisplay *rd = GET_REGEX_DISPLAY (d)
+
+#define GET_REGEX_SCREEN(s, rd) \
+ ((RegexScreen *) (s)->base.privates[(rd)->screenPrivateIndex].ptr)
+
+#define REGEX_SCREEN(s) \
+ RegexScreen *rs = GET_REGEX_SCREEN (s, GET_REGEX_DISPLAY (s->display))
+
+#define GET_REGEX_WINDOW(w, rs) \
+ ((RegexWindow *) (w)->base.privates[(rs)->windowPrivateIndex].ptr)
+
+#define REGEX_WINDOW(w) \
+ RegexWindow *rw = GET_REGEX_WINDOW (w, \
+ GET_REGEX_SCREEN (w->screen, \
+ GET_REGEX_DISPLAY (w->screen->display)))
+
+static void
+regexMatchExpFini (CompDisplay *d,
+ CompPrivate private)
+{
+ regex_t *preg = (regex_t *) private.ptr;
+
+ if (preg)
+ {
+ regfree (preg);
+ free (preg);
+ }
+}
+
+static Bool
+regexMatchExpEvalTitle (CompDisplay *d,
+ CompWindow *w,
+ CompPrivate private)
+{
+ regex_t *preg = (regex_t *) private.ptr;
+ int status;
+
+ REGEX_WINDOW (w);
+
+ if (!preg)
+ return FALSE;
+
+ if (!rw->title)
+ return FALSE;
+
+ status = regexec (preg, rw->title, 0, NULL, 0);
+ if (status)
+ return FALSE;
+
+ return TRUE;
+}
+
+static Bool
+regexMatchExpEvalRole (CompDisplay *d,
+ CompWindow *w,
+ CompPrivate private)
+{
+ regex_t *preg = (regex_t *) private.ptr;
+ int status;
+
+ REGEX_WINDOW (w);
+
+ if (!preg)
+ return FALSE;
+
+ if (!rw->role)
+ return FALSE;
+
+ status = regexec (preg, rw->role, 0, NULL, 0);
+ if (status)
+ return FALSE;
+
+ return TRUE;
+}
+
+static Bool
+regexMatchExpEvalClass (CompDisplay *d,
+ CompWindow *w,
+ CompPrivate private)
+{
+ regex_t *preg = (regex_t *) private.ptr;
+ int status;
+
+ if (!preg)
+ return FALSE;
+
+ if (!w->resClass)
+ return FALSE;
+
+ status = regexec (preg, w->resClass, 0, NULL, 0);
+ if (status)
+ return FALSE;
+
+ return TRUE;
+}
+
+static Bool
+regexMatchExpEvalName (CompDisplay *d,
+ CompWindow *w,
+ CompPrivate private)
+{
+ regex_t *preg = (regex_t *) private.ptr;
+ int status;
+
+ if (!preg)
+ return FALSE;
+
+ if (!w->resName)
+ return FALSE;
+
+ status = regexec (preg, w->resName, 0, NULL, 0);
+ if (status)
+ return FALSE;
+
+ return TRUE;
+}
+
+static void
+regexMatchInitExp (CompDisplay *d,
+ CompMatchExp *exp,
+ const char *value)
+{
+ static struct _Prefix {
+ char *s;
+ int len;
+ CompMatchExpEvalProc eval;
+ unsigned int flags;
+ } prefix[] = {
+ { "title=", 6, regexMatchExpEvalTitle, 0 },
+ { "role=", 5, regexMatchExpEvalRole, 0 },
+ { "class=", 6, regexMatchExpEvalClass, 0 },
+ { "name=", 5, regexMatchExpEvalName, 0 },
+ { "ititle=", 7, regexMatchExpEvalTitle, REG_ICASE },
+ { "irole=", 6, regexMatchExpEvalRole, REG_ICASE },
+ { "iclass=", 7, regexMatchExpEvalClass, REG_ICASE },
+ { "iname=", 6, regexMatchExpEvalName, REG_ICASE },
+ };
+ int i;
+
+ REGEX_DISPLAY (d);
+
+ for (i = 0; i < sizeof (prefix) / sizeof (prefix[0]); i++)
+ if (strncmp (value, prefix[i].s, prefix[i].len) == 0)
+ break;
+
+ if (i < sizeof (prefix) / sizeof (prefix[0]))
+ {
+ regex_t *preg;
+
+ preg = malloc (sizeof (regex_t));
+ if (preg)
+ {
+ int status;
+
+ value += prefix[i].len;
+
+ status = regcomp (preg, value, REG_NOSUB | prefix[i].flags);
+ if (status)
+ {
+ char errMsg[1024];
+
+ regerror (status, preg, errMsg, sizeof (errMsg));
+
+ compLogMessage ("regex", CompLogLevelWarn,
+ "%s = %s", errMsg, value);
+
+ regfree (preg);
+ free (preg);
+ preg = NULL;
+ }
+ }
+
+ exp->fini = regexMatchExpFini;
+ exp->eval = prefix[i].eval;
+ exp->priv.ptr = preg;
+ }
+ else
+ {
+ UNWRAP (rd, d, matchInitExp);
+ (*d->matchInitExp) (d, exp, value);
+ WRAP (rd, d, matchInitExp, regexMatchInitExp);
+ }
+}
+
+static char *
+regexGetStringProperty (CompWindow *w,
+ Atom propAtom,
+ Atom formatAtom)
+{
+ Atom type;
+ unsigned long nItems;
+ unsigned long bytesAfter;
+ unsigned char *str = NULL;
+ int format, result;
+ char *retval;
+
+ result = XGetWindowProperty (w->screen->display->display,
+ w->id, propAtom, 0, LONG_MAX,
+ FALSE, formatAtom, &type, &format, &nItems,
+ &bytesAfter, (unsigned char **) &str);
+
+ if (result != Success)
+ return NULL;
+
+ if (type != formatAtom)
+ {
+ XFree (str);
+ return NULL;
+ }
+
+ retval = strdup ((char *) str);
+
+ XFree (str);
+
+ return retval;
+}
+
+static char *
+regexGetWindowTitle (CompWindow *w)
+{
+ CompDisplay *d = w->screen->display;
+ char *title;
+
+ REGEX_DISPLAY (d);
+
+ title = regexGetStringProperty (w, rd->visibleNameAtom, d->utf8StringAtom);
+ if (title)
+ return title;
+
+ title = regexGetStringProperty (w, d->wmNameAtom, d->utf8StringAtom);
+ if (title)
+ return title;
+
+ return regexGetStringProperty (w, XA_WM_NAME, XA_STRING);
+}
+
+static void
+regexHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ REGEX_DISPLAY (d);
+
+ UNWRAP (rd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (rd, d, handleEvent, regexHandleEvent);
+
+ if (event->type == PropertyNotify)
+ {
+ CompWindow *w;
+
+ if (event->xproperty.atom == XA_WM_NAME)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ REGEX_WINDOW (w);
+
+ if (rw->title)
+ free (rw->title);
+
+ rw->title = regexGetWindowTitle (w);
+
+ (*d->matchPropertyChanged) (d, w);
+ }
+ }
+ if (event->xproperty.atom == rd->roleAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ REGEX_WINDOW (w);
+
+ if (rw->role)
+ free (rw->role);
+
+ rw->role = regexGetStringProperty (w, rd->roleAtom, XA_STRING);
+
+ (*d->matchPropertyChanged) (d, w);
+ }
+ }
+ else if (event->xproperty.atom == XA_WM_CLASS)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ (*d->matchPropertyChanged) (d, w);
+ }
+ }
+}
+
+static Bool
+regexRegisterExpHandler (void *closure)
+{
+ CompDisplay *display = (CompDisplay *) closure;
+
+ (*display->matchExpHandlerChanged) (display);
+
+ return FALSE;
+}
+
+static Bool
+regexInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ RegexDisplay *rd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ rd = malloc (sizeof (RegexDisplay));
+ if (!rd)
+ return FALSE;
+
+ rd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (rd->screenPrivateIndex < 0)
+ {
+ free (rd);
+ return FALSE;
+ }
+
+ rd->roleAtom = XInternAtom (d->display, "WM_WINDOW_ROLE", 0);
+ rd->visibleNameAtom = XInternAtom (d->display, "_NET_WM_VISIBLE_NAME", 0);
+
+ WRAP (rd, d, handleEvent, regexHandleEvent);
+ WRAP (rd, d, matchInitExp, regexMatchInitExp);
+
+ d->base.privates[displayPrivateIndex].ptr = rd;
+
+ /* one shot timeout to which will register the expression handler
+ after all screens and windows have been initialized */
+ compAddTimeout (0, 0, regexRegisterExpHandler, (void *) d);
+
+ return TRUE;
+}
+
+static void
+regexFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ REGEX_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, rd->screenPrivateIndex);
+
+ UNWRAP (rd, d, handleEvent);
+ UNWRAP (rd, d, matchInitExp);
+
+ if (d->base.parent)
+ (*d->matchExpHandlerChanged) (d);
+
+ free (rd);
+}
+
+static Bool
+regexInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ RegexScreen *rs;
+
+ REGEX_DISPLAY (s->display);
+
+ rs = malloc (sizeof (RegexScreen));
+ if (!rs)
+ return FALSE;
+
+ rs->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (rs->windowPrivateIndex < 0)
+ {
+ free (rs);
+ return FALSE;
+ }
+
+ s->base.privates[rd->screenPrivateIndex].ptr = rs;
+
+ return TRUE;
+}
+
+static void
+regexFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ REGEX_SCREEN (s);
+
+ freeWindowPrivateIndex (s, rs->windowPrivateIndex);
+
+ free (rs);
+}
+
+static Bool
+regexInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ RegexWindow *rw;
+
+ REGEX_DISPLAY (w->screen->display);
+ REGEX_SCREEN (w->screen);
+
+ rw = malloc (sizeof (RegexWindow));
+ if (!rw)
+ return FALSE;
+
+ rw->title = regexGetWindowTitle (w);
+ rw->role = regexGetStringProperty (w, rd->roleAtom, XA_STRING);
+
+ w->base.privates[rs->windowPrivateIndex].ptr = rw;
+
+ return TRUE;
+}
+
+static void
+regexFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ REGEX_WINDOW (w);
+
+ if (rw->title)
+ free (rw->title);
+
+ if (rw->role)
+ free (rw->role);
+
+ free (rw);
+}
+
+static CompBool
+regexInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) regexInitDisplay,
+ (InitPluginObjectProc) regexInitScreen,
+ (InitPluginObjectProc) regexInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+regexFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) regexFiniDisplay,
+ (FiniPluginObjectProc) regexFiniScreen,
+ (FiniPluginObjectProc) regexFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static Bool
+regexInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&regexMetadata, p->vTable->name,
+ 0, 0, 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&regexMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&regexMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+regexFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&regexMetadata);
+}
+
+static CompMetadata *
+regexGetMetadata (CompPlugin *plugin)
+{
+ return &regexMetadata;
+}
+
+static CompPluginVTable regexVTable = {
+ "regex",
+ regexGetMetadata,
+ regexInit,
+ regexFini,
+ regexInitObject,
+ regexFiniObject,
+ 0, /* GetObjectOptions */
+ 0 /* SetObjectOption */
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &regexVTable;
+}
diff --git a/plugins/resize.c b/plugins/resize.c
new file mode 100644
index 0000000..8943306
--- /dev/null
+++ b/plugins/resize.c
@@ -0,0 +1,1499 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/Xatom.h>
+#include <X11/cursorfont.h>
+
+#include <compiz-core.h>
+
+static CompMetadata resizeMetadata;
+
+#define ResizeUpMask (1L << 0)
+#define ResizeDownMask (1L << 1)
+#define ResizeLeftMask (1L << 2)
+#define ResizeRightMask (1L << 3)
+
+#define RESIZE_MODE_NORMAL 0
+#define RESIZE_MODE_OUTLINE 1
+#define RESIZE_MODE_RECTANGLE 2
+#define RESIZE_MODE_STRETCH 3
+#define RESIZE_MODE_LAST RESIZE_MODE_STRETCH
+
+struct _ResizeKeys {
+ char *name;
+ int dx;
+ int dy;
+ unsigned int warpMask;
+ unsigned int resizeMask;
+} rKeys[] = {
+ { "Left", -1, 0, ResizeLeftMask | ResizeRightMask, ResizeLeftMask },
+ { "Right", 1, 0, ResizeLeftMask | ResizeRightMask, ResizeRightMask },
+ { "Up", 0, -1, ResizeUpMask | ResizeDownMask, ResizeUpMask },
+ { "Down", 0, 1, ResizeUpMask | ResizeDownMask, ResizeDownMask }
+};
+
+#define NUM_KEYS (sizeof (rKeys) / sizeof (rKeys[0]))
+
+#define MIN_KEY_WIDTH_INC 24
+#define MIN_KEY_HEIGHT_INC 24
+
+#define RESIZE_DISPLAY_OPTION_INITIATE_NORMAL_KEY 0
+#define RESIZE_DISPLAY_OPTION_INITIATE_OUTLINE_KEY 1
+#define RESIZE_DISPLAY_OPTION_INITIATE_RECTANGLE_KEY 2
+#define RESIZE_DISPLAY_OPTION_INITIATE_STRETCH_KEY 3
+#define RESIZE_DISPLAY_OPTION_INITIATE_BUTTON 4
+#define RESIZE_DISPLAY_OPTION_INITIATE_KEY 5
+#define RESIZE_DISPLAY_OPTION_MODE 6
+#define RESIZE_DISPLAY_OPTION_BORDER_COLOR 7
+#define RESIZE_DISPLAY_OPTION_FILL_COLOR 8
+#define RESIZE_DISPLAY_OPTION_NORMAL_MATCH 9
+#define RESIZE_DISPLAY_OPTION_OUTLINE_MATCH 10
+#define RESIZE_DISPLAY_OPTION_RECTANGLE_MATCH 11
+#define RESIZE_DISPLAY_OPTION_STRETCH_MATCH 12
+#define RESIZE_DISPLAY_OPTION_NUM 13
+
+static int displayPrivateIndex;
+
+typedef struct _ResizeDisplay {
+ CompOption opt[RESIZE_DISPLAY_OPTION_NUM];
+
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ Atom resizeNotifyAtom;
+ Atom resizeInformationAtom;
+
+ CompWindow *w;
+ int mode;
+ XRectangle savedGeometry;
+ XRectangle geometry;
+
+ int releaseButton;
+ unsigned int mask;
+ int pointerDx;
+ int pointerDy;
+ KeyCode key[NUM_KEYS];
+} ResizeDisplay;
+
+typedef struct _ResizeScreen {
+ int grabIndex;
+
+ WindowResizeNotifyProc windowResizeNotify;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+
+ Cursor leftCursor;
+ Cursor rightCursor;
+ Cursor upCursor;
+ Cursor upLeftCursor;
+ Cursor upRightCursor;
+ Cursor downCursor;
+ Cursor downLeftCursor;
+ Cursor downRightCursor;
+ Cursor middleCursor;
+ Cursor cursor[NUM_KEYS];
+} ResizeScreen;
+
+#define GET_RESIZE_DISPLAY(d) \
+ ((ResizeDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define RESIZE_DISPLAY(d) \
+ ResizeDisplay *rd = GET_RESIZE_DISPLAY (d)
+
+#define GET_RESIZE_SCREEN(s, rd) \
+ ((ResizeScreen *) (s)->base.privates[(rd)->screenPrivateIndex].ptr)
+
+#define RESIZE_SCREEN(s) \
+ ResizeScreen *rs = GET_RESIZE_SCREEN (s, GET_RESIZE_DISPLAY (s->display))
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static void
+resizeGetPaintRectangle (CompDisplay *d,
+ BoxPtr pBox)
+{
+ RESIZE_DISPLAY (d);
+
+ pBox->x1 = rd->geometry.x - rd->w->input.left;
+ pBox->y1 = rd->geometry.y - rd->w->input.top;
+ pBox->x2 = rd->geometry.x +
+ rd->geometry.width + rd->w->serverBorderWidth * 2 +
+ rd->w->input.right;
+
+ if (rd->w->shaded)
+ {
+ pBox->y2 = rd->geometry.y + rd->w->height + rd->w->input.bottom;
+ }
+ else
+ {
+ pBox->y2 = rd->geometry.y +
+ rd->geometry.height + rd->w->serverBorderWidth * 2 +
+ rd->w->input.bottom;
+ }
+}
+
+static void
+resizeGetStretchScale (CompWindow *w,
+ BoxPtr pBox,
+ float *xScale,
+ float *yScale)
+{
+ int width, height;
+
+ width = w->width + w->input.left + w->input.right;
+ height = w->height + w->input.top + w->input.bottom;
+
+ *xScale = (width) ? (pBox->x2 - pBox->x1) / (float) width : 1.0f;
+ *yScale = (height) ? (pBox->y2 - pBox->y1) / (float) height : 1.0f;
+}
+
+static void
+resizeGetStretchRectangle (CompDisplay *d,
+ BoxPtr pBox)
+{
+ BoxRec box;
+ float xScale, yScale;
+
+ RESIZE_DISPLAY (d);
+
+ resizeGetPaintRectangle (d, &box);
+ resizeGetStretchScale (rd->w, &box, &xScale, &yScale);
+
+ pBox->x1 = box.x1 - (rd->w->output.left - rd->w->input.left) * xScale;
+ pBox->y1 = box.y1 - (rd->w->output.top - rd->w->input.top) * yScale;
+ pBox->x2 = box.x2 + rd->w->output.right * xScale;
+ pBox->y2 = box.y2 + rd->w->output.bottom * yScale;
+}
+
+static void
+resizeDamageRectangle (CompScreen *s,
+ BoxPtr pBox)
+{
+ REGION reg;
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents = *pBox;
+
+ reg.extents.x1 -= 1;
+ reg.extents.y1 -= 1;
+ reg.extents.x2 += 1;
+ reg.extents.y2 += 1;
+
+ damageScreenRegion (s, &reg);
+}
+
+static Cursor
+resizeCursorFromResizeMask (CompScreen *s,
+ unsigned int mask)
+{
+ Cursor cursor;
+
+ RESIZE_SCREEN (s);
+
+ if (mask & ResizeLeftMask)
+ {
+ if (mask & ResizeDownMask)
+ cursor = rs->downLeftCursor;
+ else if (mask & ResizeUpMask)
+ cursor = rs->upLeftCursor;
+ else
+ cursor = rs->leftCursor;
+ }
+ else if (mask & ResizeRightMask)
+ {
+ if (mask & ResizeDownMask)
+ cursor = rs->downRightCursor;
+ else if (mask & ResizeUpMask)
+ cursor = rs->upRightCursor;
+ else
+ cursor = rs->rightCursor;
+ }
+ else if (mask & ResizeUpMask)
+ {
+ cursor = rs->upCursor;
+ }
+ else
+ {
+ cursor = rs->downCursor;
+ }
+
+ return cursor;
+}
+
+static void
+resizeSendResizeNotify (CompDisplay *d)
+{
+ XEvent xev;
+
+ RESIZE_DISPLAY (d);
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = d->display;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = rd->resizeNotifyAtom;
+ xev.xclient.window = rd->w->id;
+
+ xev.xclient.data.l[0] = rd->geometry.x;
+ xev.xclient.data.l[1] = rd->geometry.y;
+ xev.xclient.data.l[2] = rd->geometry.width;
+ xev.xclient.data.l[3] = rd->geometry.height;
+ xev.xclient.data.l[4] = 0;
+
+ XSendEvent (d->display,
+ rd->w->screen->root,
+ FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &xev);
+}
+
+static void
+resizeUpdateWindowProperty (CompDisplay *d)
+{
+ unsigned long data[4];
+
+ RESIZE_DISPLAY (d);
+
+ data[0] = rd->geometry.x;
+ data[1] = rd->geometry.y;
+ data[2] = rd->geometry.width;
+ data[3] = rd->geometry.height;
+
+ XChangeProperty (d->display, rd->w->id,
+ rd->resizeInformationAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char*) data, 4);
+}
+
+static void
+resizeFinishResizing (CompDisplay *d)
+{
+ RESIZE_DISPLAY (d);
+
+ (*rd->w->screen->windowUngrabNotify) (rd->w);
+
+ XDeleteProperty (d->display,
+ rd->w->id,
+ rd->resizeInformationAtom);
+
+ rd->w = NULL;
+}
+
+static Bool
+resizeInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ RESIZE_DISPLAY (d);
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w && (w->actions & CompWindowActionResizeMask))
+ {
+ unsigned int mask;
+ int x, y;
+ int button;
+ int i;
+
+ RESIZE_SCREEN (w->screen);
+
+ x = getIntOptionNamed (option, nOption, "x", pointerX);
+ y = getIntOptionNamed (option, nOption, "y", pointerY);
+
+ button = getIntOptionNamed (option, nOption, "button", -1);
+
+ mask = getIntOptionNamed (option, nOption, "direction", 0);
+
+ /* Initiate the resize in the direction suggested by the
+ * sector of the window the mouse is in, eg drag in top left
+ * will resize up and to the left. Keyboard resize starts out
+ * with the cursor in the middle of the window and then starts
+ * resizing the edge corresponding to the next key press. */
+ if (state & CompActionStateInitKey)
+ {
+ mask = 0;
+ }
+ else if (!mask)
+ {
+ unsigned int sectorSizeX = w->serverWidth / 3;
+ unsigned int sectorSizeY = w->serverHeight / 3;
+ unsigned int posX = x - w->serverX;
+ unsigned int posY = y - w->serverY;
+
+ if (posX < sectorSizeX)
+ mask |= ResizeLeftMask;
+ else if (posX > (2 * sectorSizeX))
+ mask |= ResizeRightMask;
+
+ if (posY < sectorSizeY)
+ mask |= ResizeUpMask;
+ else if (posY > (2 * sectorSizeY))
+ mask |= ResizeDownMask;
+
+ /* if the pointer was in the middle of the window,
+ do nothing */
+ if (!mask)
+ return FALSE;
+ }
+
+ if (otherScreenGrabExist (w->screen, "resize", 0))
+ return FALSE;
+
+ if (rd->w)
+ return FALSE;
+
+ if (w->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask |
+ CompWindowTypeFullscreenMask))
+ return FALSE;
+
+ if (w->attrib.override_redirect)
+ return FALSE;
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (w->shaded)
+ mask &= ~(ResizeUpMask | ResizeDownMask);
+
+ rd->w = w;
+ rd->mask = mask;
+
+ rd->savedGeometry.x = w->serverX;
+ rd->savedGeometry.y = w->serverY;
+ rd->savedGeometry.width = w->serverWidth;
+ rd->savedGeometry.height = w->serverHeight;
+
+ rd->geometry = rd->savedGeometry;
+
+ rd->pointerDx = x - pointerX;
+ rd->pointerDy = y - pointerY;
+
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ {
+ /* if the window is fully maximized, showing the outline or
+ rectangle would be visually distracting as the window can't
+ be resized anyway; so we better don't use them in this case */
+ rd->mode = RESIZE_MODE_NORMAL;
+ }
+ else
+ {
+ rd->mode = rd->opt[RESIZE_DISPLAY_OPTION_MODE].value.i;
+ for (i = 0; i <= RESIZE_MODE_LAST; i++)
+ {
+ if (action == &rd->opt[i].value.action)
+ {
+ rd->mode = i;
+ break;
+ }
+ }
+
+ if (i > RESIZE_MODE_LAST)
+ {
+ int index;
+
+ for (i = 0; i <= RESIZE_MODE_LAST; i++)
+ {
+ index = RESIZE_DISPLAY_OPTION_NORMAL_MATCH + i;
+ if (matchEval (&rd->opt[index].value.match, w))
+ {
+ rd->mode = i;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!rs->grabIndex)
+ {
+ Cursor cursor;
+
+ if (state & CompActionStateInitKey)
+ {
+ cursor = rs->middleCursor;
+ }
+ else
+ {
+ cursor = resizeCursorFromResizeMask (w->screen, mask);
+ }
+
+ rs->grabIndex = pushScreenGrab (w->screen, cursor, "resize");
+ }
+
+ if (rs->grabIndex)
+ {
+ BoxRec box;
+
+ rd->releaseButton = button;
+
+ (w->screen->windowGrabNotify) (w, x, y, state,
+ CompWindowGrabResizeMask |
+ CompWindowGrabButtonMask);
+
+ if (d->opt[COMP_DISPLAY_OPTION_RAISE_ON_CLICK].value.b)
+ updateWindowAttributes (w,
+ CompStackingUpdateModeAboveFullscreen);
+
+ /* using the paint rectangle is enough here
+ as we don't have any stretch yet */
+ resizeGetPaintRectangle (d, &box);
+ resizeDamageRectangle (w->screen, &box);
+
+ if (state & CompActionStateInitKey)
+ {
+ int xRoot, yRoot;
+
+ xRoot = w->serverX + (w->serverWidth / 2);
+ yRoot = w->serverY + (w->serverHeight / 2);
+
+ warpPointer (w->screen, xRoot - pointerX, yRoot - pointerY);
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+resizeTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ RESIZE_DISPLAY (d);
+
+ if (rd->w)
+ {
+ CompWindow *w = rd->w;
+ XWindowChanges xwc;
+ unsigned int mask = 0;
+
+ RESIZE_SCREEN (w->screen);
+
+ if (rd->mode == RESIZE_MODE_NORMAL)
+ {
+ if (state & CompActionStateCancel)
+ {
+ xwc.x = rd->savedGeometry.x;
+ xwc.y = rd->savedGeometry.y;
+ xwc.width = rd->savedGeometry.width;
+ xwc.height = rd->savedGeometry.height;
+
+ mask = CWX | CWY | CWWidth | CWHeight;
+ }
+ }
+ else
+ {
+ XRectangle geometry;
+
+ if (state & CompActionStateCancel)
+ geometry = rd->savedGeometry;
+ else
+ geometry = rd->geometry;
+
+ if (memcmp (&geometry, &rd->savedGeometry, sizeof (geometry)) == 0)
+ {
+ BoxRec box;
+
+ if (rd->mode == RESIZE_MODE_STRETCH)
+ resizeGetStretchRectangle (d, &box);
+ else
+ resizeGetPaintRectangle (d, &box);
+
+ resizeDamageRectangle (w->screen, &box);
+ }
+ else
+ {
+ xwc.x = geometry.x;
+ xwc.y = geometry.y;
+ xwc.width = geometry.width;
+ xwc.height = geometry.height;
+
+ mask = CWX | CWY | CWWidth | CWHeight;
+ }
+ }
+
+ if ((mask & CWWidth) && xwc.width == w->serverWidth)
+ mask &= ~CWWidth;
+
+ if ((mask & CWHeight) && xwc.height == w->serverHeight)
+ mask &= ~CWHeight;
+
+ if (mask)
+ {
+ if (mask & (CWWidth | CWHeight))
+ sendSyncRequest (w);
+
+ configureXWindow (w, mask, &xwc);
+ }
+
+ if (!(mask & (CWWidth | CWHeight)))
+ resizeFinishResizing (d);
+
+ if (rs->grabIndex)
+ {
+ removeScreenGrab (w->screen, rs->grabIndex, NULL);
+ rs->grabIndex = 0;
+ }
+
+ rd->releaseButton = 0;
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static void
+resizeUpdateWindowSize (CompDisplay *d)
+{
+ RESIZE_DISPLAY (d);
+
+ if (rd->w->syncWait)
+ return;
+
+ if (rd->w->serverWidth != rd->geometry.width ||
+ rd->w->serverHeight != rd->geometry.height)
+ {
+ XWindowChanges xwc;
+
+ xwc.x = rd->geometry.x;
+ xwc.y = rd->geometry.y;
+ xwc.width = rd->geometry.width;
+ xwc.height = rd->geometry.height;
+
+ sendSyncRequest (rd->w);
+
+ configureXWindow (rd->w,
+ CWX | CWY | CWWidth | CWHeight,
+ &xwc);
+ }
+}
+
+static void
+resizeHandleKeyEvent (CompScreen *s,
+ KeyCode keycode)
+{
+ RESIZE_SCREEN (s);
+ RESIZE_DISPLAY (s->display);
+
+ if (rs->grabIndex && rd->w)
+ {
+ CompWindow *w = rd->w;
+ int widthInc, heightInc, i;
+
+ widthInc = w->sizeHints.width_inc;
+ heightInc = w->sizeHints.height_inc;
+
+ if (widthInc < MIN_KEY_WIDTH_INC)
+ widthInc = MIN_KEY_WIDTH_INC;
+
+ if (heightInc < MIN_KEY_HEIGHT_INC)
+ heightInc = MIN_KEY_HEIGHT_INC;
+
+ for (i = 0; i < NUM_KEYS; i++)
+ {
+ if (keycode != rd->key[i])
+ continue;
+
+ if (rd->mask & rKeys[i].warpMask)
+ {
+ XWarpPointer (s->display->display, None, None, 0, 0, 0, 0,
+ rKeys[i].dx * widthInc,
+ rKeys[i].dy * heightInc);
+ }
+ else
+ {
+ int x, y, left, top, width, height;
+
+ left = w->serverX - w->input.left;
+ top = w->serverY - w->input.top;
+ width = w->input.left + w->serverWidth + w->input.right;
+ height = w->input.top + w->serverHeight + w->input.bottom;
+
+ x = left + width * (rKeys[i].dx + 1) / 2;
+ y = top + height * (rKeys[i].dy + 1) / 2;
+
+ warpPointer (s, x - pointerX, y - pointerY);
+
+ rd->mask = rKeys[i].resizeMask;
+
+ updateScreenGrab (s, rs->grabIndex, rs->cursor[i]);
+ }
+ break;
+ }
+ }
+}
+
+static void
+resizeHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ RESIZE_SCREEN (s);
+
+ if (rs->grabIndex)
+ {
+ BoxRec box;
+ int w, h;
+
+ RESIZE_DISPLAY (s->display);
+
+ w = rd->savedGeometry.width;
+ h = rd->savedGeometry.height;
+
+ if (!rd->mask)
+ {
+ CompWindow *w = rd->w;
+ int xDist, yDist;
+ int minPointerOffsetX, minPointerOffsetY;
+
+ xDist = xRoot - (w->serverX + (w->serverWidth / 2));
+ yDist = yRoot - (w->serverY + (w->serverHeight / 2));
+
+ /* decision threshold is 10% of window size */
+ minPointerOffsetX = MIN (20, w->serverWidth / 10);
+ minPointerOffsetY = MIN (20, w->serverHeight / 10);
+
+ /* if we reached the threshold in one direction,
+ make the threshold in the other direction smaller
+ so there is a chance that this threshold also can
+ be reached (by diagonal movement) */
+ if (abs (xDist) > minPointerOffsetX)
+ minPointerOffsetY /= 2;
+ else if (abs (yDist) > minPointerOffsetY)
+ minPointerOffsetX /= 2;
+
+ if (abs (xDist) > minPointerOffsetX)
+ {
+ if (xDist > 0)
+ rd->mask |= ResizeRightMask;
+ else
+ rd->mask |= ResizeLeftMask;
+ }
+
+ if (abs (yDist) > minPointerOffsetY)
+ {
+ if (yDist > 0)
+ rd->mask |= ResizeDownMask;
+ else
+ rd->mask |= ResizeUpMask;
+ }
+
+ /* if the pointer movement was enough to determine a
+ direction, warp the pointer to the appropriate edge
+ and set the right cursor */
+ if (rd->mask)
+ {
+ Cursor cursor;
+ CompScreen *s = rd->w->screen;
+ CompAction *action;
+ int pointerAdjustX = 0;
+ int pointerAdjustY = 0;
+ int option = RESIZE_DISPLAY_OPTION_INITIATE_KEY;
+
+ RESIZE_SCREEN (s);
+
+ action = &rd->opt[option].value.action;
+ action->state |= CompActionStateTermButton;
+
+ if (rd->mask & ResizeRightMask)
+ pointerAdjustX = w->serverX + w->serverWidth +
+ w->input.right - xRoot;
+ else if (rd->mask & ResizeLeftMask)
+ pointerAdjustX = w->serverX - w->input.left - xRoot;
+
+ if (rd->mask & ResizeDownMask)
+ pointerAdjustY = w->serverY + w->serverHeight +
+ w->input.bottom - yRoot;
+ else if (rd->mask & ResizeUpMask)
+ pointerAdjustY = w->serverY - w->input.top - yRoot;
+
+ warpPointer (s, pointerAdjustX, pointerAdjustY);
+
+ cursor = resizeCursorFromResizeMask (s, rd->mask);
+ updateScreenGrab (s, rs->grabIndex, cursor);
+ }
+ }
+ else
+ {
+ /* only accumulate pointer movement if a mask is
+ already set as we don't have a use for the
+ difference information otherwise */
+ rd->pointerDx += xRoot - lastPointerX;
+ rd->pointerDy += yRoot - lastPointerY;
+ }
+
+ if (rd->mask & ResizeLeftMask)
+ w -= rd->pointerDx;
+ else if (rd->mask & ResizeRightMask)
+ w += rd->pointerDx;
+
+ if (rd->mask & ResizeUpMask)
+ h -= rd->pointerDy;
+ else if (rd->mask & ResizeDownMask)
+ h += rd->pointerDy;
+
+ if (rd->w->state & CompWindowStateMaximizedVertMask)
+ h = rd->w->serverHeight;
+
+ if (rd->w->state & CompWindowStateMaximizedHorzMask)
+ w = rd->w->serverWidth;
+
+ constrainNewWindowSize (rd->w, w, h, &w, &h);
+
+ if (rd->mode != RESIZE_MODE_NORMAL)
+ {
+ if (rd->mode == RESIZE_MODE_STRETCH)
+ resizeGetStretchRectangle (s->display, &box);
+ else
+ resizeGetPaintRectangle (s->display, &box);
+
+ resizeDamageRectangle (s, &box);
+ }
+
+ if (rd->mask & ResizeLeftMask)
+ rd->geometry.x -= w - rd->geometry.width;
+
+ if (rd->mask & ResizeUpMask)
+ rd->geometry.y -= h - rd->geometry.height;
+
+ rd->geometry.width = w;
+ rd->geometry.height = h;
+
+ if (rd->mode != RESIZE_MODE_NORMAL)
+ {
+ if (rd->mode == RESIZE_MODE_STRETCH)
+ resizeGetStretchRectangle (s->display, &box);
+ else
+ resizeGetPaintRectangle (s->display, &box);
+
+ resizeDamageRectangle (s, &box);
+ }
+ else
+ {
+ resizeUpdateWindowSize (s->display);
+ }
+
+ resizeUpdateWindowProperty (s->display);
+ resizeSendResizeNotify (s->display);
+ }
+}
+
+static void
+resizeHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ RESIZE_DISPLAY (d);
+
+ switch (event->type) {
+ case KeyPress:
+ s = findScreenAtDisplay (d, event->xkey.root);
+ if (s)
+ resizeHandleKeyEvent (s, event->xkey.keycode);
+ break;
+ case ButtonRelease:
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ {
+ RESIZE_SCREEN (s);
+
+ if (rs->grabIndex)
+ {
+ if (rd->releaseButton == -1 ||
+ event->xbutton.button == rd->releaseButton)
+ {
+ int opt = RESIZE_DISPLAY_OPTION_INITIATE_BUTTON;
+ CompAction *action = &rd->opt[opt].value.action;
+
+ resizeTerminate (d, action, CompActionStateTermButton,
+ NULL, 0);
+ }
+ }
+ }
+ break;
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ resizeHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ resizeHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->wmMoveResizeAtom)
+ {
+ CompWindow *w;
+
+ if (event->xclient.data.l[2] <= WmMoveResizeSizeLeft ||
+ event->xclient.data.l[2] == WmMoveResizeSizeKeyboard)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompOption o[6];
+ int option;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "window";
+ o[0].value.i = event->xclient.window;
+
+ if (event->xclient.data.l[2] == WmMoveResizeSizeKeyboard)
+ {
+ option = RESIZE_DISPLAY_OPTION_INITIATE_KEY;
+
+ resizeInitiate (d, &rd->opt[option].value.action,
+ CompActionStateInitKey,
+ o, 1);
+ }
+ else
+ {
+ static unsigned int mask[] = {
+ ResizeUpMask | ResizeLeftMask,
+ ResizeUpMask,
+ ResizeUpMask | ResizeRightMask,
+ ResizeRightMask,
+ ResizeDownMask | ResizeRightMask,
+ ResizeDownMask,
+ ResizeDownMask | ResizeLeftMask,
+ ResizeLeftMask,
+ };
+ unsigned int mods;
+ Window root, child;
+ int xRoot, yRoot, i;
+
+ option = RESIZE_DISPLAY_OPTION_INITIATE_BUTTON;
+
+ XQueryPointer (d->display, w->screen->root,
+ &root, &child, &xRoot, &yRoot,
+ &i, &i, &mods);
+
+ /* TODO: not only button 1 */
+ if (mods & Button1Mask)
+ {
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "modifiers";
+ o[1].value.i = mods;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "x";
+ o[2].value.i = event->xclient.data.l[0];
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "y";
+ o[3].value.i = event->xclient.data.l[1];
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "direction";
+ o[4].value.i = mask[event->xclient.data.l[2]];
+
+ o[5].type = CompOptionTypeInt;
+ o[5].name = "button";
+ o[5].value.i = event->xclient.data.l[3] ?
+ event->xclient.data.l[3] : -1;
+
+ resizeInitiate (d,
+ &rd->opt[option].value.action,
+ CompActionStateInitButton,
+ o, 6);
+
+ resizeHandleMotionEvent (w->screen, xRoot, yRoot);
+ }
+ }
+ }
+ }
+ else if (rd->w && event->xclient.data.l[2] == WmMoveResizeCancel)
+ {
+ if (rd->w->id == event->xclient.window)
+ {
+ int option;
+
+ option = RESIZE_DISPLAY_OPTION_INITIATE_BUTTON;
+ resizeTerminate (d, &rd->opt[option].value.action,
+ CompActionStateCancel, NULL, 0);
+ option = RESIZE_DISPLAY_OPTION_INITIATE_KEY;
+ resizeTerminate (d, &rd->opt[option].value.action,
+ CompActionStateCancel, NULL, 0);
+ }
+ }
+ }
+ break;
+ case DestroyNotify:
+ if (rd->w && rd->w->id == event->xdestroywindow.window)
+ {
+ int option;
+
+ option = RESIZE_DISPLAY_OPTION_INITIATE_BUTTON;
+ resizeTerminate (d, &rd->opt[option].value.action, 0, NULL, 0);
+ option = RESIZE_DISPLAY_OPTION_INITIATE_KEY;
+ resizeTerminate (d, &rd->opt[option].value.action, 0, NULL, 0);
+ }
+ break;
+ case UnmapNotify:
+ if (rd->w && rd->w->id == event->xunmap.window)
+ {
+ int option;
+
+ option = RESIZE_DISPLAY_OPTION_INITIATE_BUTTON;
+ resizeTerminate (d, &rd->opt[option].value.action, 0, NULL, 0);
+ option = RESIZE_DISPLAY_OPTION_INITIATE_KEY;
+ resizeTerminate (d, &rd->opt[option].value.action, 0, NULL, 0);
+ }
+ default:
+ break;
+ }
+
+ UNWRAP (rd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (rd, d, handleEvent, resizeHandleEvent);
+
+ if (event->type == d->syncEvent + XSyncAlarmNotify)
+ {
+ if (rd->w)
+ {
+ XSyncAlarmNotifyEvent *sa;
+
+ sa = (XSyncAlarmNotifyEvent *) event;
+
+ if (rd->w->syncAlarm == sa->alarm)
+ resizeUpdateWindowSize (d);
+ }
+ }
+}
+
+static void
+resizeWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ RESIZE_DISPLAY (w->screen->display);
+ RESIZE_SCREEN (w->screen);
+
+ UNWRAP (rs, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (rs, w->screen, windowResizeNotify, resizeWindowResizeNotify);
+
+ if (rd->w == w && !rs->grabIndex)
+ resizeFinishResizing (w->screen->display);
+}
+
+static void
+resizePaintRectangle (CompScreen *s,
+ const ScreenPaintAttrib *sa,
+ const CompTransform *transform,
+ CompOutput *output,
+ unsigned short *borderColor,
+ unsigned short *fillColor)
+{
+ BoxRec box;
+ CompTransform sTransform = *transform;
+
+ resizeGetPaintRectangle (s->display, &box);
+
+ glPushMatrix ();
+
+ transformToScreenSpace (s, output, -DEFAULT_Z_CAMERA, &sTransform);
+
+ glLoadMatrixf (sTransform.m);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+
+ /* fill rectangle */
+ if (fillColor)
+ {
+ glColor4usv (fillColor);
+ glRecti (box.x1, box.y2, box.x2, box.y1);
+ }
+
+ /* draw outline */
+ glColor4usv (borderColor);
+ glLineWidth (2.0);
+ glBegin (GL_LINE_LOOP);
+ glVertex2i (box.x1, box.y1);
+ glVertex2i (box.x2, box.y1);
+ glVertex2i (box.x2, box.y2);
+ glVertex2i (box.x1, box.y2);
+ glEnd ();
+
+ /* clean up */
+ glColor4usv (defaultColor);
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ glPopMatrix ();
+}
+
+static Bool
+resizePaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ RESIZE_SCREEN (s);
+ RESIZE_DISPLAY (s->display);
+
+ if (rd->w && (s == rd->w->screen))
+ {
+ if (rd->mode == RESIZE_MODE_STRETCH)
+ mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK;
+ }
+
+ UNWRAP (rs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (rs, s, paintOutput, resizePaintOutput);
+
+ if (status && rd->w && (s == rd->w->screen))
+ {
+ unsigned short *border, *fill;
+
+ border = rd->opt[RESIZE_DISPLAY_OPTION_BORDER_COLOR].value.c;
+ fill = rd->opt[RESIZE_DISPLAY_OPTION_FILL_COLOR].value.c;
+
+ switch (rd->mode) {
+ case RESIZE_MODE_OUTLINE:
+ resizePaintRectangle (s, sAttrib, transform, output, border, NULL);
+ break;
+ case RESIZE_MODE_RECTANGLE:
+ resizePaintRectangle (s, sAttrib, transform, output, border, fill);
+ default:
+ break;
+ }
+ }
+
+ return status;
+}
+
+static Bool
+resizePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ RESIZE_SCREEN (s);
+ RESIZE_DISPLAY (s->display);
+
+ if (w == rd->w && rd->mode == RESIZE_MODE_STRETCH)
+ {
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+ BoxRec box;
+ float xOrigin, yOrigin;
+ float xScale, yScale;
+
+ if (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK)
+ return FALSE;
+
+ UNWRAP (rs, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region,
+ mask | PAINT_WINDOW_NO_CORE_INSTANCE_MASK);
+ WRAP (rs, s, paintWindow, resizePaintWindow);
+
+ initFragmentAttrib (&fragment, &w->lastPaint);
+
+ if (w->alpha || fragment.opacity != OPAQUE)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ resizeGetPaintRectangle (s->display, &box);
+ resizeGetStretchScale (w, &box, &xScale, &yScale);
+
+ xOrigin = w->attrib.x - w->input.left;
+ yOrigin = w->attrib.y - w->input.top;
+
+ matrixTranslate (&wTransform, xOrigin, yOrigin, 0.0f);
+ matrixScale (&wTransform, xScale, yScale, 1.0f);
+ matrixTranslate (&wTransform,
+ (rd->geometry.x - w->attrib.x) / xScale - xOrigin,
+ (rd->geometry.y - w->attrib.y) / yScale - yOrigin,
+ 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ (*s->drawWindow) (w, &wTransform, &fragment, region,
+ mask | PAINT_WINDOW_TRANSFORMED_MASK);
+
+ glPopMatrix ();
+ }
+ else
+ {
+ UNWRAP (rs, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (rs, s, paintWindow, resizePaintWindow);
+ }
+
+ return status;
+}
+
+static Bool
+resizeDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status = FALSE;
+
+ RESIZE_SCREEN (w->screen);
+ RESIZE_DISPLAY (w->screen->display);
+
+ if (w == rd->w && rd->mode == RESIZE_MODE_STRETCH)
+ {
+ BoxRec box;
+
+ resizeGetStretchRectangle (w->screen->display, &box);
+ resizeDamageRectangle (w->screen, &box);
+
+ status = TRUE;
+ }
+
+ UNWRAP (rs, w->screen, damageWindowRect);
+ status |= (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (rs, w->screen, damageWindowRect, resizeDamageWindowRect);
+
+ return status;
+}
+
+static CompOption *
+resizeGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ RESIZE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (rd);
+ return rd->opt;
+}
+
+static Bool
+resizeSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ RESIZE_DISPLAY (display);
+
+ o = compFindOption (rd->opt, NUM_OPTIONS (rd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo resizeDisplayOptionInfo[] = {
+ { "initiate_normal_key", "key", 0, resizeInitiate, resizeTerminate },
+ { "initiate_outline_key", "key", 0, resizeInitiate, resizeTerminate },
+ { "initiate_rectangle_key", "key", 0, resizeInitiate, resizeTerminate },
+ { "initiate_stretch_key", "key", 0, resizeInitiate, resizeTerminate },
+ { "initiate_button", "button", 0, resizeInitiate, resizeTerminate },
+ { "initiate_key", "key", 0, resizeInitiate, resizeTerminate },
+ { "mode", "int", RESTOSTRING (0, RESIZE_MODE_LAST), 0, 0 },
+ { "border_color", "color", 0, 0, 0 },
+ { "fill_color", "color", 0, 0, 0 },
+ { "normal_match", "match", 0, 0, 0 },
+ { "outline_match", "match", 0, 0, 0 },
+ { "rectangle_match", "match", 0, 0, 0 },
+ { "stretch_match", "match", 0, 0, 0 }
+};
+
+static Bool
+resizeInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ResizeDisplay *rd;
+ int i;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ rd = malloc (sizeof (ResizeDisplay));
+ if (!rd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &resizeMetadata,
+ resizeDisplayOptionInfo,
+ rd->opt,
+ RESIZE_DISPLAY_OPTION_NUM))
+ {
+ free (rd);
+ return FALSE;
+ }
+
+ rd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (rd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, rd->opt, RESIZE_DISPLAY_OPTION_NUM);
+ free (rd);
+ return FALSE;
+ }
+
+ rd->w = 0;
+
+ rd->releaseButton = 0;
+
+ rd->resizeNotifyAtom = XInternAtom (d->display,
+ "_COMPIZ_RESIZE_NOTIFY", 0);
+ rd->resizeInformationAtom = XInternAtom (d->display,
+ "_COMPIZ_RESIZE_INFORMATION", 0);
+
+ for (i = 0; i < NUM_KEYS; i++)
+ rd->key[i] = XKeysymToKeycode (d->display,
+ XStringToKeysym (rKeys[i].name));
+
+ WRAP (rd, d, handleEvent, resizeHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = rd;
+
+ return TRUE;
+}
+
+static void
+resizeFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ RESIZE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, rd->screenPrivateIndex);
+
+ UNWRAP (rd, d, handleEvent);
+
+ compFiniDisplayOptions (d, rd->opt, RESIZE_DISPLAY_OPTION_NUM);
+
+ free (rd);
+}
+
+static Bool
+resizeInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ResizeScreen *rs;
+
+ RESIZE_DISPLAY (s->display);
+
+ rs = malloc (sizeof (ResizeScreen));
+ if (!rs)
+ return FALSE;
+
+ rs->grabIndex = 0;
+
+ rs->leftCursor = XCreateFontCursor (s->display->display, XC_left_side);
+ rs->rightCursor = XCreateFontCursor (s->display->display, XC_right_side);
+ rs->upCursor = XCreateFontCursor (s->display->display,
+ XC_top_side);
+ rs->upLeftCursor = XCreateFontCursor (s->display->display,
+ XC_top_left_corner);
+ rs->upRightCursor = XCreateFontCursor (s->display->display,
+ XC_top_right_corner);
+ rs->downCursor = XCreateFontCursor (s->display->display,
+ XC_bottom_side);
+ rs->downLeftCursor = XCreateFontCursor (s->display->display,
+ XC_bottom_left_corner);
+ rs->downRightCursor = XCreateFontCursor (s->display->display,
+ XC_bottom_right_corner);
+ rs->middleCursor = XCreateFontCursor (s->display->display, XC_fleur);
+
+ rs->cursor[0] = rs->leftCursor;
+ rs->cursor[1] = rs->rightCursor;
+ rs->cursor[2] = rs->upCursor;
+ rs->cursor[3] = rs->downCursor;
+
+ WRAP (rs, s, windowResizeNotify, resizeWindowResizeNotify);
+ WRAP (rs, s, paintOutput, resizePaintOutput);
+ WRAP (rs, s, paintWindow, resizePaintWindow);
+ WRAP (rs, s, damageWindowRect, resizeDamageWindowRect);
+
+ s->base.privates[rd->screenPrivateIndex].ptr = rs;
+
+ return TRUE;
+}
+
+static void
+resizeFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ RESIZE_SCREEN (s);
+
+ if (rs->leftCursor)
+ XFreeCursor (s->display->display, rs->leftCursor);
+ if (rs->rightCursor)
+ XFreeCursor (s->display->display, rs->rightCursor);
+ if (rs->upCursor)
+ XFreeCursor (s->display->display, rs->upCursor);
+ if (rs->downCursor)
+ XFreeCursor (s->display->display, rs->downCursor);
+ if (rs->middleCursor)
+ XFreeCursor (s->display->display, rs->middleCursor);
+ if (rs->upLeftCursor)
+ XFreeCursor (s->display->display, rs->upLeftCursor);
+ if (rs->upRightCursor)
+ XFreeCursor (s->display->display, rs->upRightCursor);
+ if (rs->downLeftCursor)
+ XFreeCursor (s->display->display, rs->downLeftCursor);
+ if (rs->downRightCursor)
+ XFreeCursor (s->display->display, rs->downRightCursor);
+
+ UNWRAP (rs, s, windowResizeNotify);
+ UNWRAP (rs, s, paintOutput);
+ UNWRAP (rs, s, paintWindow);
+ UNWRAP (rs, s, damageWindowRect);
+
+ free (rs);
+}
+
+static CompBool
+resizeInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) resizeInitDisplay,
+ (InitPluginObjectProc) resizeInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+resizeFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) resizeFiniDisplay,
+ (FiniPluginObjectProc) resizeFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+resizeGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) resizeGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+resizeSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) resizeSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+resizeInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&resizeMetadata,
+ p->vTable->name,
+ resizeDisplayOptionInfo,
+ RESIZE_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&resizeMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&resizeMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+resizeFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&resizeMetadata);
+}
+
+static CompMetadata *
+resizeGetMetadata (CompPlugin *plugin)
+{
+ return &resizeMetadata;
+}
+
+CompPluginVTable resizeVTable = {
+ "resize",
+ resizeGetMetadata,
+ resizeInit,
+ resizeFini,
+ resizeInitObject,
+ resizeFiniObject,
+ resizeGetObjectOptions,
+ resizeSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &resizeVTable;
+}
diff --git a/plugins/rotate.c b/plugins/rotate.c
new file mode 100644
index 0000000..8c59f9a
--- /dev/null
+++ b/plugins/rotate.c
@@ -0,0 +1,2018 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/time.h>
+
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+
+#include <compiz-cube.h>
+
+static int cubeDisplayPrivateIndex;
+
+#define ROTATE_POINTER_SENSITIVITY_FACTOR 0.05f
+
+static CompMetadata rotateMetadata;
+
+static int displayPrivateIndex;
+
+#define ROTATE_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define ROTATE_DISPLAY_OPTION_LEFT_KEY 1
+#define ROTATE_DISPLAY_OPTION_LEFT_BUTTON 2
+#define ROTATE_DISPLAY_OPTION_RIGHT_KEY 3
+#define ROTATE_DISPLAY_OPTION_RIGHT_BUTTON 4
+#define ROTATE_DISPLAY_OPTION_LEFT_WINDOW_KEY 5
+#define ROTATE_DISPLAY_OPTION_LEFT_WINDOW_BUTTON 6
+#define ROTATE_DISPLAY_OPTION_RIGHT_WINDOW_KEY 7
+#define ROTATE_DISPLAY_OPTION_RIGHT_WINDOW_BUTTON 8
+#define ROTATE_DISPLAY_OPTION_EDGEFLIP_POINTER 9
+#define ROTATE_DISPLAY_OPTION_EDGEFLIP_WINDOW 10
+#define ROTATE_DISPLAY_OPTION_EDGEFLIP_DND 11
+#define ROTATE_DISPLAY_OPTION_FLIPTIME 12
+#define ROTATE_DISPLAY_OPTION_TO_1_KEY 13
+#define ROTATE_DISPLAY_OPTION_TO_2_KEY 14
+#define ROTATE_DISPLAY_OPTION_TO_3_KEY 15
+#define ROTATE_DISPLAY_OPTION_TO_4_KEY 16
+#define ROTATE_DISPLAY_OPTION_TO_5_KEY 17
+#define ROTATE_DISPLAY_OPTION_TO_6_KEY 18
+#define ROTATE_DISPLAY_OPTION_TO_7_KEY 19
+#define ROTATE_DISPLAY_OPTION_TO_8_KEY 20
+#define ROTATE_DISPLAY_OPTION_TO_9_KEY 21
+#define ROTATE_DISPLAY_OPTION_TO_10_KEY 22
+#define ROTATE_DISPLAY_OPTION_TO_11_KEY 23
+#define ROTATE_DISPLAY_OPTION_TO_12_KEY 24
+#define ROTATE_DISPLAY_OPTION_TO_1_WINDOW_KEY 25
+#define ROTATE_DISPLAY_OPTION_TO_2_WINDOW_KEY 26
+#define ROTATE_DISPLAY_OPTION_TO_3_WINDOW_KEY 27
+#define ROTATE_DISPLAY_OPTION_TO_4_WINDOW_KEY 28
+#define ROTATE_DISPLAY_OPTION_TO_5_WINDOW_KEY 29
+#define ROTATE_DISPLAY_OPTION_TO_6_WINDOW_KEY 30
+#define ROTATE_DISPLAY_OPTION_TO_7_WINDOW_KEY 31
+#define ROTATE_DISPLAY_OPTION_TO_8_WINDOW_KEY 32
+#define ROTATE_DISPLAY_OPTION_TO_9_WINDOW_KEY 33
+#define ROTATE_DISPLAY_OPTION_TO_10_WINDOW_KEY 34
+#define ROTATE_DISPLAY_OPTION_TO_11_WINDOW_KEY 35
+#define ROTATE_DISPLAY_OPTION_TO_12_WINDOW_KEY 36
+#define ROTATE_DISPLAY_OPTION_TO_KEY 37
+#define ROTATE_DISPLAY_OPTION_WINDOW_KEY 38
+#define ROTATE_DISPLAY_OPTION_FLIP_LEFT_EDGE 39
+#define ROTATE_DISPLAY_OPTION_FLIP_RIGHT_EDGE 40
+#define ROTATE_DISPLAY_OPTION_RAISE_ON_ROTATE 41
+#define ROTATE_DISPLAY_OPTION_NUM 42
+
+typedef struct _RotateDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[ROTATE_DISPLAY_OPTION_NUM];
+} RotateDisplay;
+
+#define ROTATE_SCREEN_OPTION_POINTER_INVERT_Y 0
+#define ROTATE_SCREEN_OPTION_POINTER_SENSITIVITY 1
+#define ROTATE_SCREEN_OPTION_ACCELERATION 2
+#define ROTATE_SCREEN_OPTION_SNAP_TOP 3
+#define ROTATE_SCREEN_OPTION_SNAP_BOTTOM 4
+#define ROTATE_SCREEN_OPTION_SPEED 5
+#define ROTATE_SCREEN_OPTION_TIMESTEP 6
+#define ROTATE_SCREEN_OPTION_ZOOM 7
+#define ROTATE_SCREEN_OPTION_NUM 8
+
+typedef struct _RotateScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ WindowGrabNotifyProc windowGrabNotify;
+ WindowUngrabNotifyProc windowUngrabNotify;
+ ActivateWindowProc activateWindow;
+
+ CubeGetRotationProc getRotation;
+
+ CompOption opt[ROTATE_SCREEN_OPTION_NUM];
+
+ float pointerSensitivity;
+
+ Bool snapTop;
+ Bool snapBottom;
+
+ int grabIndex;
+
+ GLfloat xrot, xVelocity;
+ GLfloat yrot, yVelocity;
+
+ GLfloat baseXrot;
+
+ Bool moving;
+ GLfloat moveTo;
+
+ Window moveWindow;
+ int moveWindowX;
+
+ XPoint savedPointer;
+ Bool grabbed;
+ Bool focusDefault;
+
+ CompTimeoutHandle rotateHandle;
+ Bool slow;
+ unsigned int grabMask;
+ CompWindow *grabWindow;
+
+ float progress;
+ float progressVelocity;
+
+ GLfloat zoomTranslate;
+} RotateScreen;
+
+#define GET_ROTATE_DISPLAY(d) \
+ ((RotateDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define ROTATE_DISPLAY(d) \
+ RotateDisplay *rd = GET_ROTATE_DISPLAY (d)
+
+#define GET_ROTATE_SCREEN(s, rd) \
+ ((RotateScreen *) (s)->base.privates[(rd)->screenPrivateIndex].ptr)
+
+#define ROTATE_SCREEN(s) \
+ RotateScreen *rs = GET_ROTATE_SCREEN (s, GET_ROTATE_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+rotateGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ ROTATE_SCREEN (screen);
+
+ *count = NUM_OPTIONS (rs);
+ return rs->opt;
+}
+
+static Bool
+rotateSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ ROTATE_SCREEN (screen);
+
+ o = compFindOption (rs->opt, NUM_OPTIONS (rs), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case ROTATE_SCREEN_OPTION_POINTER_SENSITIVITY:
+ if (compSetFloatOption (o, value))
+ {
+ rs->pointerSensitivity = o->value.f *
+ ROTATE_POINTER_SENSITIVITY_FACTOR;
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetScreenOption (screen, o, value);
+ }
+
+ return FALSE;
+}
+
+static int
+adjustVelocity (RotateScreen *rs,
+ int size,
+ int invert)
+{
+ float xrot, yrot, adjust, amount;
+
+ if (rs->moving)
+ {
+ xrot = rs->moveTo + (rs->xrot + rs->baseXrot);
+ }
+ else
+ {
+ xrot = rs->xrot;
+ if (rs->xrot < -180.0f / size)
+ xrot = 360.0f / size + rs->xrot;
+ else if (rs->xrot > 180.0f / size)
+ xrot = rs->xrot - 360.0f / size;
+ }
+
+ adjust = -xrot * 0.05f * rs->opt[ROTATE_SCREEN_OPTION_ACCELERATION].value.f;
+ amount = fabs (xrot);
+ if (amount < 10.0f)
+ amount = 10.0f;
+ else if (amount > 30.0f)
+ amount = 30.0f;
+
+ if (rs->slow)
+ adjust *= 0.05f;
+
+ rs->xVelocity = (amount * rs->xVelocity + adjust) / (amount + 2.0f);
+
+ yrot = rs->yrot;
+ /* Only snap if more than 2 viewports */
+ if (size > 2)
+ {
+ if (rs->yrot > 50.0f && ((rs->snapTop && invert == 1) ||
+ (rs->snapBottom && invert != 1)))
+ yrot -= 90.f;
+ else if (rs->yrot < -50.0f && ((rs->snapTop && invert != 1) ||
+ (rs->snapBottom && invert == 1)))
+ yrot += 90.f;
+ }
+
+ adjust = -yrot * 0.05f * rs->opt[ROTATE_SCREEN_OPTION_ACCELERATION].value.f;
+ amount = fabs (rs->yrot);
+ if (amount < 10.0f)
+ amount = 10.0f;
+ else if (amount > 30.0f)
+ amount = 30.0f;
+
+ rs->yVelocity = (amount * rs->yVelocity + adjust) / (amount + 2.0f);
+
+ return (fabs (xrot) < 0.1f && fabs (rs->xVelocity) < 0.2f &&
+ fabs (yrot) < 0.1f && fabs (rs->yVelocity) < 0.2f);
+}
+
+static void
+rotateReleaseMoveWindow (CompScreen *s)
+{
+ CompWindow *w;
+
+ ROTATE_SCREEN (s);
+
+ w = findWindowAtScreen (s, rs->moveWindow);
+ if (w)
+ syncWindowPosition (w);
+
+ rs->moveWindow = None;
+}
+
+static void
+rotatePreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ ROTATE_SCREEN (s);
+ CUBE_SCREEN (s);
+
+ float oldXrot = rs->xrot + rs->baseXrot;
+
+ if (rs->grabIndex || rs->moving)
+ {
+ int steps;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.05f *
+ rs->opt[ROTATE_SCREEN_OPTION_SPEED].value.f;
+ steps = amount /
+ (0.5f * rs->opt[ROTATE_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ rs->xrot += rs->xVelocity * chunk;
+ rs->yrot += rs->yVelocity * chunk;
+
+ if (rs->xrot > 360.0f / s->hsize)
+ {
+ rs->baseXrot += 360.0f / s->hsize;
+ rs->xrot -= 360.0f / s->hsize;
+ }
+ else if (rs->xrot < 0.0f)
+ {
+ rs->baseXrot -= 360.0f / s->hsize;
+ rs->xrot += 360.0f / s->hsize;
+ }
+
+ if (cs->invert == -1)
+ {
+ if (rs->yrot > 45.0f)
+ {
+ rs->yVelocity = 0.0f;
+ rs->yrot = 45.0f;
+ }
+ else if (rs->yrot < -45.0f)
+ {
+ rs->yVelocity = 0.0f;
+ rs->yrot = -45.0f;
+ }
+ }
+ else
+ {
+ if (rs->yrot > 100.0f)
+ {
+ rs->yVelocity = 0.0f;
+ rs->yrot = 100.0f;
+ }
+ else if (rs->yrot < -100.0f)
+ {
+ rs->yVelocity = 0.0f;
+ rs->yrot = -100.0f;
+ }
+ }
+
+ if (rs->grabbed)
+ {
+ rs->xVelocity /= 1.25f;
+ rs->yVelocity /= 1.25f;
+
+ if (fabs (rs->xVelocity) < 0.01f)
+ rs->xVelocity = 0.0f;
+ if (fabs (rs->yVelocity) < 0.01f)
+ rs->yVelocity = 0.0f;
+ }
+ else if (adjustVelocity (rs, s->hsize, cs->invert))
+ {
+ rs->xVelocity = 0.0f;
+ rs->yVelocity = 0.0f;
+
+ if (fabs (rs->yrot) < 0.1f)
+ {
+ float xrot;
+ int tx;
+
+ xrot = rs->baseXrot + rs->xrot;
+ if (xrot < 0.0f)
+ tx = (s->hsize * xrot / 360.0f) - 0.5f;
+ else
+ tx = (s->hsize * xrot / 360.0f) + 0.5f;
+
+ /* flag end of rotation */
+ cs->rotationState = RotationNone;
+
+ moveScreenViewport (s, tx, 0, TRUE);
+
+ rs->xrot = 0.0f;
+ rs->yrot = 0.0f;
+ rs->baseXrot = rs->moveTo = 0.0f;
+ rs->moving = FALSE;
+
+ if (rs->grabIndex)
+ {
+ removeScreenGrab (s, rs->grabIndex, &rs->savedPointer);
+ rs->grabIndex = 0;
+ }
+
+ if (rs->moveWindow)
+ {
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, rs->moveWindow);
+ if (w)
+ {
+ moveWindow (w, rs->moveWindowX - w->attrib.x, 0,
+ TRUE, TRUE);
+ syncWindowPosition (w);
+ }
+ }
+ else if (rs->focusDefault)
+ {
+ int i;
+
+ for (i = 0; i < s->maxGrab; i++)
+ if (s->grabs[i].active &&
+ strcmp ("switcher", s->grabs[i].name) == 0)
+ break;
+
+ /* only focus default window if switcher isn't active */
+ if (i == s->maxGrab)
+ focusDefaultWindow (s);
+ }
+
+ rs->moveWindow = 0;
+ }
+ break;
+ }
+ }
+
+ if (rs->moveWindow)
+ {
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, rs->moveWindow);
+ if (w)
+ {
+ float xrot = (s->hsize * (rs->baseXrot + rs->xrot)) / 360.0f;
+
+ moveWindowToViewportPosition (w,
+ rs->moveWindowX - xrot * s->width,
+ w->attrib.y,
+ FALSE);
+ }
+ }
+ }
+
+ if (rs->moving)
+ {
+ if (fabs (rs->xrot + rs->baseXrot + rs->moveTo) <=
+ (360.0 / (s->hsize * 2.0)))
+ {
+ rs->progress = fabs (rs->xrot + rs->baseXrot + rs->moveTo) /
+ (360.0 / (s->hsize * 2.0));
+ }
+ else if (fabs (rs->xrot + rs->baseXrot) <= (360.0 / (s->hsize * 2.0)))
+ {
+ rs->progress = fabs (rs->xrot + rs->baseXrot) /
+ (360.0 / (s->hsize * 2.0));
+ }
+ else
+ {
+ rs->progress += fabs (rs->xrot + rs->baseXrot - oldXrot) /
+ (360.0 / (s->hsize * 2.0));
+ rs->progress = MIN (rs->progress, 1.0);
+ }
+ }
+ else if (rs->progress != 0.0f || rs->grabbed)
+ {
+ int steps;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.05f *
+ rs->opt[ROTATE_SCREEN_OPTION_SPEED].value.f;
+ steps = amount /
+ (0.5f * rs->opt[ROTATE_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps)
+ steps = 1;
+
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ float dt, adjust, tamount;
+
+ if (rs->grabbed)
+ dt = 1.0 - rs->progress;
+ else
+ dt = 0.0f - rs->progress;
+
+ adjust = dt * 0.15f;
+ tamount = fabs (dt) * 1.5f;
+ if (tamount < 0.2f)
+ tamount = 0.2f;
+ else if (tamount > 2.0f)
+ tamount = 2.0f;
+
+ rs->progressVelocity = (tamount * rs->progressVelocity + adjust) /
+ (tamount + 1.0f);
+
+ rs->progress += rs->progressVelocity * chunk;
+
+ if (fabs (dt) < 0.01f && fabs (rs->progressVelocity) < 0.0001f)
+ {
+ if (rs->grabbed)
+ rs->progress = 1.0f;
+ else
+ rs->progress = 0.0f;
+
+ break;
+ }
+ }
+ }
+
+ if (cs->invert == 1 && !cs->unfolded)
+ {
+ rs->zoomTranslate = rs->opt[ROTATE_SCREEN_OPTION_ZOOM].value.f *
+ rs->progress;
+ }
+ else
+ {
+ rs->zoomTranslate = 0.0;
+ }
+
+ UNWRAP (rs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (rs, s, preparePaintScreen, rotatePreparePaintScreen);
+}
+
+static void
+rotateDonePaintScreen (CompScreen *s)
+{
+ ROTATE_SCREEN (s);
+
+ if (rs->grabIndex || rs->moving ||
+ (rs->progress != 0.0 && rs->progress != 1.0))
+ {
+ if ((!rs->grabbed && !rs->snapTop && !rs->snapBottom) ||
+ rs->xVelocity || rs->yVelocity || rs->progressVelocity)
+ {
+ damageScreen (s);
+ }
+ }
+
+ UNWRAP (rs, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (rs, s, donePaintScreen, rotateDonePaintScreen);
+}
+
+static void
+rotateGetRotation (CompScreen *s,
+ float *x,
+ float *v,
+ float *progress)
+{
+ CUBE_SCREEN (s);
+ ROTATE_SCREEN (s);
+
+ UNWRAP (rs, cs, getRotation);
+ (*cs->getRotation) (s, x, v, progress);
+ WRAP (rs, cs, getRotation, rotateGetRotation);
+
+ *x += rs->baseXrot + rs->xrot;
+ *v += rs->yrot;
+ *progress = MAX (*progress, rs->progress);
+}
+
+static Bool
+rotatePaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ ROTATE_SCREEN (s);
+
+ if (rs->grabIndex || rs->moving || rs->progress != 0.0f)
+ {
+ CompTransform sTransform = *transform;
+
+ matrixTranslate (&sTransform, 0.0f, 0.0f, -rs->zoomTranslate);
+
+ mask &= ~PAINT_SCREEN_REGION_MASK;
+ mask |= PAINT_SCREEN_TRANSFORMED_MASK;
+
+ UNWRAP (rs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, &sTransform, region,
+ output, mask);
+ WRAP (rs, s, paintOutput, rotatePaintOutput);
+ }
+ else
+ {
+ UNWRAP (rs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region,
+ output, mask);
+ WRAP (rs, s, paintOutput, rotatePaintOutput);
+ }
+
+ return status;
+}
+
+static Bool
+rotateInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ ROTATE_SCREEN (s);
+ CUBE_SCREEN (s);
+
+ if (s->hsize < 2)
+ return FALSE;
+
+ if (rs->rotateHandle && rs->grabWindow)
+ {
+ if (otherScreenGrabExist (s, "rotate", "move", 0))
+ return FALSE;
+ }
+ else
+ {
+ if (otherScreenGrabExist (s, "rotate", "switcher", "cube", 0))
+ return FALSE;
+ }
+
+ rs->moving = FALSE;
+ rs->slow = FALSE;
+
+ /* Set the rotation state for cube - if action is non-NULL,
+ we set it to manual (as we were called from the 'Initiate
+ Rotation' binding. Otherwise, we set it to Change. */
+ if (action)
+ cs->rotationState = RotationManual;
+ else
+ cs->rotationState = RotationChange;
+
+ if (!rs->grabIndex)
+ {
+ rs->grabIndex = pushScreenGrab (s, s->invisibleCursor, "rotate");
+ if (rs->grabIndex)
+ {
+ int x, y;
+
+ x = getIntOptionNamed (option, nOption, "x", 0);
+ y = getIntOptionNamed (option, nOption, "y", 0);
+
+ rs->savedPointer.x = x;
+ rs->savedPointer.y = y;
+ }
+ }
+
+ if (rs->grabIndex)
+ {
+ rs->moveTo = 0.0f;
+
+ rs->grabbed = TRUE;
+ rs->snapTop = rs->opt[ROTATE_SCREEN_OPTION_SNAP_TOP].value.b;
+ rs->snapBottom = rs->opt[ROTATE_SCREEN_OPTION_SNAP_BOTTOM].value.b;
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+ }
+ }
+
+ return TRUE;
+}
+
+static Bool
+rotateTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ROTATE_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (rs->grabIndex)
+ {
+ if (!xid)
+ {
+ rs->snapTop = FALSE;
+ rs->snapBottom = FALSE;
+ }
+
+ rs->grabbed = FALSE;
+ damageScreen (s);
+ }
+ }
+
+ action->state &= ~(CompActionStateTermButton | CompActionStateTermKey);
+
+ return FALSE;
+}
+
+static Bool
+rotate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int direction;
+
+ ROTATE_SCREEN (s);
+
+ if (s->hsize < 2)
+ return FALSE;
+
+ if (otherScreenGrabExist (s, "rotate", "move", "switcher",
+ "group-drag", "cube", 0))
+ return FALSE;
+
+ direction = getIntOptionNamed (option, nOption, "direction", 0);
+ if (!direction)
+ return FALSE;
+
+ if (rs->moveWindow)
+ rotateReleaseMoveWindow (s);
+
+ /* we allow the grab to fail here so that we can rotate on
+ drag-and-drop */
+ if (!rs->grabIndex)
+ {
+ CompOption o[3];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ rotateInitiate (d, NULL, 0, o, 3);
+ }
+
+ rs->focusDefault = getBoolOptionNamed (option, nOption,
+ "focus_default", TRUE);
+ rs->moving = TRUE;
+ rs->moveTo += (360.0f / s->hsize) * direction;
+ rs->grabbed = FALSE;
+
+ damageScreen (s);
+ }
+
+ return FALSE;
+}
+
+static Bool
+rotateWithWindow (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ ROTATE_DISPLAY (d);
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ Bool raise = rd->opt[ROTATE_DISPLAY_OPTION_RAISE_ON_ROTATE].value.b;
+ int direction;
+
+ ROTATE_SCREEN (s);
+
+ if (s->hsize < 2)
+ return FALSE;
+
+ direction = getIntOptionNamed (option, nOption, "direction", 0);
+ if (!direction)
+ return FALSE;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ if (rs->moveWindow != xid)
+ {
+ CompWindow *w;
+
+ rotateReleaseMoveWindow (s);
+
+ if (!rs->grabIndex && !rs->moving)
+ {
+ w = findWindowAtScreen (s, xid);
+ if (w)
+ {
+ if (!(w->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask)))
+ {
+ if (!(w->state & CompWindowStateStickyMask))
+ {
+ rs->moveWindow = w->id;
+ rs->moveWindowX = w->attrib.x;
+
+ if (raise)
+ raiseWindow (w);
+ }
+ }
+ }
+ }
+ }
+
+ if (!rs->grabIndex)
+ {
+ CompOption o[3];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ rotateInitiate (d, NULL, 0, o, 3);
+ }
+
+ if (rs->grabIndex)
+ {
+ rs->moving = TRUE;
+ rs->moveTo += (360.0f / s->hsize) * direction;
+ rs->grabbed = FALSE;
+
+ damageScreen (s);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+rotateLeft (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompOption o[4];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = getIntOptionNamed (option, nOption, "root", 0);
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = -1;
+
+ rotate (d, NULL, 0, o, 4);
+
+ return FALSE;
+}
+
+static Bool
+rotateRight (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompOption o[4];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = getIntOptionNamed (option, nOption, "root", 0);
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = 1;
+
+ rotate (d, NULL, 0, o, 4);
+
+ return FALSE;
+}
+
+static Bool
+rotateLeftWithWindow (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompOption o[5];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = getIntOptionNamed (option, nOption, "root", 0);
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = -1;
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "window";
+ o[4].value.i = getIntOptionNamed (option, nOption, "window", 0);
+
+ rotateWithWindow (d, NULL, 0, o, 5);
+
+ return FALSE;
+}
+
+static Bool
+rotateRightWithWindow (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompOption o[5];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", 0);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", 0);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = getIntOptionNamed (option, nOption, "root", 0);
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = 1;
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "window";
+ o[4].value.i = getIntOptionNamed (option, nOption, "window", 0);
+
+ rotateWithWindow (d, NULL, 0, o, 5);
+
+ return FALSE;
+}
+
+static Bool
+rotateFlipLeft (void *closure)
+{
+ CompScreen *s = closure;
+ int warpX;
+ CompOption o[4];
+
+ ROTATE_SCREEN (s);
+
+ rs->moveTo = 0.0f;
+ rs->slow = FALSE;
+
+ if (otherScreenGrabExist (s, "rotate", "move", "group-drag", 0))
+ return FALSE;
+
+ warpX = pointerX + s->width;
+ warpPointer (s, s->width - 10, 0);
+ lastPointerX = warpX;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = 0;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = pointerY;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = -1;
+
+ rotate (s->display, NULL, 0, o, 4);
+
+ XWarpPointer (s->display->display, None, None, 0, 0, 0, 0, -1, 0);
+ rs->savedPointer.x = lastPointerX - 9;
+
+ rs->rotateHandle = 0;
+
+ return FALSE;
+}
+
+static Bool
+rotateFlipRight (void *closure)
+{
+ CompScreen *s = closure;
+ int warpX;
+ CompOption o[4];
+
+ ROTATE_SCREEN (s);
+
+ rs->moveTo = 0.0f;
+ rs->slow = FALSE;
+
+ if (otherScreenGrabExist (s, "rotate", "move", "group-drag", 0))
+ return FALSE;
+
+ warpX = pointerX - s->width;
+ warpPointer (s, 10 - s->width, 0);
+ lastPointerX = warpX;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = 0;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = pointerY;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = 1;
+
+ rotate (s->display, NULL, 0, o, 4);
+
+ XWarpPointer (s->display->display, None, None, 0, 0, 0, 0, 1, 0);
+
+ rs->savedPointer.x = lastPointerX + 9;
+
+ rs->rotateHandle = 0;
+
+ return FALSE;
+}
+
+static void
+rotateEdgeFlip (CompScreen *s,
+ int edge,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompOption o[4];
+
+ ROTATE_DISPLAY (s->display);
+
+ if (s->hsize < 2)
+ return;
+
+ if (otherScreenGrabExist (s, "rotate", "move", "group-drag", 0))
+ return;
+
+ if (state & CompActionStateInitEdgeDnd)
+ {
+ if (!rd->opt[ROTATE_DISPLAY_OPTION_EDGEFLIP_DND].value.b)
+ return;
+
+ if (otherScreenGrabExist (s, "rotate", 0))
+ return;
+ }
+ else if (otherScreenGrabExist (s, "rotate", "group-drag", 0))
+ {
+ ROTATE_SCREEN (s);
+
+ if (!rd->opt[ROTATE_DISPLAY_OPTION_EDGEFLIP_WINDOW].value.b)
+ return;
+
+ if (!rs->grabWindow)
+ return;
+
+ /* bail out if window is horizontally maximized or fullscreen */
+ if (rs->grabWindow->state & (CompWindowStateMaximizedHorzMask |
+ CompWindowStateFullscreenMask))
+ return;
+ }
+ else if (otherScreenGrabExist (s, "rotate", 0))
+ {
+ /* in that case, 'group-drag' must be the active screen grab */
+ if (!rd->opt[ROTATE_DISPLAY_OPTION_EDGEFLIP_WINDOW].value.b)
+ return;
+ }
+ else
+ {
+ if (!rd->opt[ROTATE_DISPLAY_OPTION_EDGEFLIP_POINTER].value.b)
+ return;
+ }
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = 0;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = pointerY;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+
+ if (edge == SCREEN_EDGE_LEFT)
+ {
+ int flipTime = rd->opt[ROTATE_DISPLAY_OPTION_FLIPTIME].value.i;
+
+ ROTATE_SCREEN (s);
+
+ if (flipTime == 0 || (rs->moving && !rs->slow))
+ {
+ int pointerDx = pointerX - lastPointerX;
+ int warpX;
+
+ warpX = pointerX + s->width;
+ warpPointer (s, s->width - 10, 0);
+ lastPointerX = warpX - pointerDx;
+
+ o[3].value.i = -1;
+
+ rotate (s->display, NULL, 0, o, 4);
+
+ XWarpPointer (s->display->display, None, None,
+ 0, 0, 0, 0, -1, 0);
+ rs->savedPointer.x = lastPointerX - 9;
+ }
+ else
+ {
+ if (!rs->rotateHandle)
+ {
+ int flipTime = rd->opt[ROTATE_DISPLAY_OPTION_FLIPTIME].value.i;
+
+ rs->rotateHandle = compAddTimeout (flipTime,
+ (float) flipTime * 1.2,
+ rotateFlipLeft, s);
+ }
+
+ rs->moving = TRUE;
+ rs->moveTo -= 360.0f / s->hsize;
+ rs->slow = TRUE;
+
+ if (state & CompActionStateInitEdge)
+ action->state |= CompActionStateTermEdge;
+
+ if (state & CompActionStateInitEdgeDnd)
+ action->state |= CompActionStateTermEdgeDnd;
+
+ damageScreen (s);
+ }
+ }
+ else
+ {
+ int flipTime = rd->opt[ROTATE_DISPLAY_OPTION_FLIPTIME].value.i;
+
+ ROTATE_SCREEN (s);
+
+ if (flipTime == 0 || (rs->moving && !rs->slow))
+ {
+ int pointerDx = pointerX - lastPointerX;
+ int warpX;
+
+ warpX = pointerX - s->width;
+ warpPointer (s, 10 - s->width, 0);
+ lastPointerX = warpX - pointerDx;
+
+ o[3].value.i = 1;
+
+ rotate (s->display, NULL, 0, o, 4);
+
+ XWarpPointer (s->display->display, None, None,
+ 0, 0, 0, 0, 1, 0);
+ rs->savedPointer.x = lastPointerX + 9;
+ }
+ else
+ {
+ if (!rs->rotateHandle)
+ {
+ int flipTime = rd->opt[ROTATE_DISPLAY_OPTION_FLIPTIME].value.i;
+
+ rs->rotateHandle =
+ compAddTimeout (flipTime, (float) flipTime * 1.2,
+ rotateFlipRight, s);
+ }
+
+ rs->moving = TRUE;
+ rs->moveTo += 360.0f / s->hsize;
+ rs->slow = TRUE;
+
+ if (state & CompActionStateInitEdge)
+ action->state |= CompActionStateTermEdge;
+
+ if (state & CompActionStateInitEdgeDnd)
+ action->state |= CompActionStateTermEdgeDnd;
+
+ damageScreen (s);
+ }
+ }
+}
+
+static Bool
+rotateFlipTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ROTATE_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (rs->rotateHandle)
+ {
+ compRemoveTimeout (rs->rotateHandle);
+ rs->rotateHandle = 0;
+
+ if (rs->slow)
+ {
+ rs->moveTo = 0.0f;
+ rs->slow = FALSE;
+ }
+
+ damageScreen (s);
+ }
+
+ action->state &= ~(CompActionStateTermEdge |
+ CompActionStateTermEdgeDnd);
+ }
+
+ return FALSE;
+}
+
+static Bool
+rotateEdgeFlipLeft (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ rotateEdgeFlip (s, SCREEN_EDGE_LEFT, action, state, option, nOption);
+
+ return FALSE;
+}
+
+static Bool
+rotateEdgeFlipRight (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ rotateEdgeFlip (s, SCREEN_EDGE_RIGHT, action, state, option, nOption);
+
+ return FALSE;
+}
+
+static int
+rotateRotationTo (CompScreen *s,
+ int face)
+{
+ int delta;
+
+ ROTATE_SCREEN (s);
+
+ delta = face - s->x - (rs->moveTo / (360.0f / s->hsize));
+ if (delta > s->hsize / 2)
+ delta -= s->hsize;
+ else if (delta < -(s->hsize / 2))
+ delta += s->hsize;
+
+ return delta;
+}
+
+static Bool
+rotateTo (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ CompOption o[4];
+ int face = -1;
+ int i = ROTATE_DISPLAY_OPTION_TO_1_KEY;
+
+ ROTATE_DISPLAY (s->display);
+
+ while (i <= ROTATE_DISPLAY_OPTION_TO_12_KEY)
+ {
+ if (action == &rd->opt[i].value.action)
+ {
+ face = i - ROTATE_DISPLAY_OPTION_TO_1_KEY;
+ break;
+ }
+
+ i++;
+ }
+
+ if (face < 0)
+ face = getIntOptionNamed (option, nOption, "face", s->x);
+
+ if (face > s->hsize)
+ return FALSE;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", pointerX);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", pointerY);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = rotateRotationTo (s, face);
+
+ rotate (d, NULL, 0, o, 4);
+ }
+
+ return FALSE;
+}
+
+static Bool
+rotateToWithWindow (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ CompOption o[5];
+ int face = -1;
+ int i = ROTATE_DISPLAY_OPTION_TO_1_WINDOW_KEY;
+
+ ROTATE_DISPLAY (s->display);
+
+ while (i <= ROTATE_DISPLAY_OPTION_TO_12_WINDOW_KEY)
+ {
+ if (action == &rd->opt[i].value.action)
+ {
+ face = i - ROTATE_DISPLAY_OPTION_TO_1_WINDOW_KEY;
+ break;
+ }
+
+ i++;
+ }
+
+ if (face < 0)
+ face = getIntOptionNamed (option, nOption, "face", s->x);
+
+ if (face > s->hsize)
+ return FALSE;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = getIntOptionNamed (option, nOption, "x", pointerX);
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = getIntOptionNamed (option, nOption, "y", pointerY);
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = rotateRotationTo (s, face);
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "window";
+ o[4].value.i = getIntOptionNamed (option, nOption, "window", 0);
+
+ rotateWithWindow (d, NULL, 0, o, 5);
+ }
+
+ return FALSE;
+}
+
+static void
+rotateHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ ROTATE_DISPLAY (d);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ {
+ ROTATE_SCREEN (s);
+ CUBE_SCREEN (s);
+
+ if (rs->grabIndex)
+ {
+ if (rs->grabbed)
+ {
+ GLfloat pointerDx, pointerDy;
+
+ pointerDx = pointerX - lastPointerX;
+ pointerDy = pointerY - lastPointerY;
+
+ if (event->xmotion.x_root < 50 ||
+ event->xmotion.y_root < 50 ||
+ event->xmotion.x_root > s->width - 50 ||
+ event->xmotion.y_root > s->height - 50)
+ {
+ warpPointer (s,
+ (s->width / 2) - pointerX,
+ (s->height / 2) - pointerY);
+ }
+
+ if (rs->opt[ROTATE_SCREEN_OPTION_POINTER_INVERT_Y].value.b)
+ pointerDy = -pointerDy;
+
+ rs->xVelocity += pointerDx * rs->pointerSensitivity *
+ cs->invert;
+ rs->yVelocity += pointerDy * rs->pointerSensitivity;
+
+ damageScreen (s);
+ }
+ else
+ {
+ rs->savedPointer.x += pointerX - lastPointerX;
+ rs->savedPointer.y += pointerY - lastPointerY;
+ }
+ }
+ }
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->desktopViewportAtom)
+ {
+ s = findScreenAtDisplay (d, event->xclient.window);
+ if (s)
+ {
+ int dx;
+
+ ROTATE_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "rotate", "switcher", "cube", 0))
+ break;
+
+ /* reset movement */
+ rs->moveTo = 0.0f;
+
+ dx = event->xclient.data.l[0] / s->width - s->x;
+ if (dx)
+ {
+ Window win;
+ int i, x, y;
+ unsigned int ui;
+ CompOption o[4];
+
+ XQueryPointer (d->display, s->root,
+ &win, &win, &x, &y, &i, &i, &ui);
+
+ if (dx * 2 > s->hsize)
+ dx -= s->hsize;
+ else if (dx * 2 < -s->hsize)
+ dx += s->hsize;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = x;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = y;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = dx;
+
+ rotate (d, NULL, 0, o, 4);
+ }
+ }
+ }
+ default:
+ break;
+ }
+
+ UNWRAP (rd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (rd, d, handleEvent, rotateHandleEvent);
+}
+
+static void
+rotateActivateWindow (CompWindow *w)
+{
+ CompScreen *s = w->screen;
+
+ ROTATE_SCREEN (s);
+
+ if (w->placed &&
+ !otherScreenGrabExist (s, "rotate", "switcher", "cube", 0))
+ {
+ int dx;
+
+ /* reset movement */
+ rs->moveTo = 0.0f;
+
+ defaultViewportForWindow (w, &dx, NULL);
+ dx -= s->x;
+ if (dx)
+ {
+ Window win;
+ int i, x, y;
+ unsigned int ui;
+ CompOption o[5];
+
+ XQueryPointer (s->display->display, s->root,
+ &win, &win, &x, &y, &i, &i, &ui);
+
+ if (dx * 2 > s->hsize)
+ dx -= s->hsize;
+ else if (dx * 2 < -s->hsize)
+ dx += s->hsize;
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "x";
+ o[0].value.i = x;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "y";
+ o[1].value.i = y;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "root";
+ o[2].value.i = s->root;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "direction";
+ o[3].value.i = dx;
+
+ o[4].type = CompOptionTypeBool;
+ o[4].name = "focus_default";
+ o[4].value.b = FALSE;
+
+ rotate (s->display, NULL, 0, o, 5);
+ }
+ }
+
+ UNWRAP (rs, s, activateWindow);
+ (*s->activateWindow) (w);
+ WRAP (rs, s, activateWindow, rotateActivateWindow);
+}
+
+static void
+rotateWindowGrabNotify (CompWindow *w,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask)
+{
+ ROTATE_SCREEN (w->screen);
+
+ if (!rs->grabWindow)
+ {
+ rs->grabMask = mask;
+ rs->grabWindow = w;
+ }
+
+ UNWRAP (rs, w->screen, windowGrabNotify);
+ (*w->screen->windowGrabNotify) (w, x, y, state, mask);
+ WRAP (rs, w->screen, windowGrabNotify, rotateWindowGrabNotify);
+}
+
+static void
+rotateWindowUngrabNotify (CompWindow *w)
+{
+ ROTATE_SCREEN (w->screen);
+
+ if (w == rs->grabWindow)
+ {
+ rs->grabMask = 0;
+ rs->grabWindow = NULL;
+ }
+
+ UNWRAP (rs, w->screen, windowUngrabNotify);
+ (*w->screen->windowUngrabNotify) (w);
+ WRAP (rs, w->screen, windowUngrabNotify, rotateWindowUngrabNotify);
+}
+
+static CompOption *
+rotateGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ ROTATE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (rd);
+ return rd->opt;
+}
+
+static Bool
+rotateSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ ROTATE_DISPLAY (display);
+
+ o = compFindOption (rd->opt, NUM_OPTIONS (rd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo rotateDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, rotateInitiate, rotateTerminate },
+ { "rotate_left_key", "key", 0, rotateLeft, 0 },
+ { "rotate_left_button", "button", 0, rotateLeft, 0 },
+ { "rotate_right_key", "key", 0, rotateRight, 0 },
+ { "rotate_right_button", "button", 0, rotateRight, 0 },
+ { "rotate_left_window_key", "key", 0, rotateLeftWithWindow, 0 },
+ { "rotate_left_window_button", "button", 0, rotateLeftWithWindow, 0 },
+ { "rotate_right_window_key", "key", 0, rotateRightWithWindow, 0 },
+ { "rotate_right_window_button", "button", 0, rotateRightWithWindow, 0 },
+ { "edge_flip_pointer", "bool", 0, 0, 0 },
+ { "edge_flip_window", "bool", 0, 0, 0 },
+ { "edge_flip_dnd", "bool", 0, 0, 0 },
+ { "flip_time", "int", "<min>0</min><max>1000</max>", 0, 0 },
+ { "rotate_to_1_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_2_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_3_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_4_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_5_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_6_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_7_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_8_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_9_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_10_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_11_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_12_key", "key", 0, rotateTo, 0 },
+ { "rotate_to_1_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_2_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_3_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_4_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_5_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_6_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_7_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_8_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_9_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_10_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_11_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_12_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_to_key", "key", 0, rotateTo, 0 },
+ { "rotate_window_key", "key", 0, rotateToWithWindow, 0 },
+ { "rotate_flip_left_edge", "edge", 0, rotateEdgeFlipLeft,
+ rotateFlipTerminate },
+ { "rotate_flip_right_edge", "edge", 0, rotateEdgeFlipRight,
+ rotateFlipTerminate },
+ { "raise_on_rotate", "bool", 0, 0, 0 }
+};
+
+static Bool
+rotateInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ RotateDisplay *rd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION) ||
+ !checkPluginABI ("cube", CUBE_ABIVERSION))
+ return FALSE;
+
+ if (!getPluginDisplayIndex (d, "cube", &cubeDisplayPrivateIndex))
+ return FALSE;
+
+ rd = malloc (sizeof (RotateDisplay));
+ if (!rd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &rotateMetadata,
+ rotateDisplayOptionInfo,
+ rd->opt,
+ ROTATE_DISPLAY_OPTION_NUM))
+ {
+ free (rd);
+ return FALSE;
+ }
+
+ rd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (rd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, rd->opt, ROTATE_DISPLAY_OPTION_NUM);
+ free (rd);
+ return FALSE;
+ }
+
+ WRAP (rd, d, handleEvent, rotateHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = rd;
+
+ return TRUE;
+}
+
+static void
+rotateFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ROTATE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, rd->screenPrivateIndex);
+
+ UNWRAP (rd, d, handleEvent);
+
+ compFiniDisplayOptions (d, rd->opt, ROTATE_DISPLAY_OPTION_NUM);
+
+ free (rd);
+}
+
+static const CompMetadataOptionInfo rotateScreenOptionInfo[] = {
+ { "invert_y", "bool", 0, 0, 0 },
+ { "sensitivity", "float", 0, 0, 0 },
+ { "acceleration", "float", "<min>1.0</min>", 0, 0 },
+ { "snap_top", "bool", 0, 0, 0 },
+ { "snap_bottom", "bool", 0, 0, 0 },
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "zoom", "float", 0, 0, 0 }
+};
+
+static Bool
+rotateInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ RotateScreen *rs;
+
+ ROTATE_DISPLAY (s->display);
+ CUBE_SCREEN (s);
+
+ rs = malloc (sizeof (RotateScreen));
+ if (!rs)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &rotateMetadata,
+ rotateScreenOptionInfo,
+ rs->opt,
+ ROTATE_SCREEN_OPTION_NUM))
+ {
+ free (rs);
+ return FALSE;
+ }
+
+ rs->grabIndex = 0;
+
+ rs->xrot = 0.0f;
+ rs->xVelocity = 0.0f;
+ rs->yrot = 0.0f;
+ rs->yVelocity = 0.0f;
+
+ rs->baseXrot = 0.0f;
+
+ rs->moving = FALSE;
+ rs->moveTo = 0.0f;
+
+ rs->moveWindow = 0;
+
+ rs->savedPointer.x = 0;
+ rs->savedPointer.y = 0;
+
+ rs->focusDefault = TRUE;
+ rs->grabbed = FALSE;
+ rs->snapTop = FALSE;
+ rs->snapBottom = FALSE;
+
+ rs->slow = FALSE;
+ rs->grabMask = FALSE;
+ rs->grabWindow = NULL;
+
+ rs->pointerSensitivity =
+ rs->opt[ROTATE_SCREEN_OPTION_POINTER_SENSITIVITY].value.f *
+ ROTATE_POINTER_SENSITIVITY_FACTOR;
+
+ rs->rotateHandle = 0;
+
+ rs->progress = 0.0;
+ rs->progressVelocity = 0.0;
+
+ rs->zoomTranslate = 0.0;
+
+ WRAP (rs, s, preparePaintScreen, rotatePreparePaintScreen);
+ WRAP (rs, s, donePaintScreen, rotateDonePaintScreen);
+ WRAP (rs, s, paintOutput, rotatePaintOutput);
+ WRAP (rs, s, windowGrabNotify, rotateWindowGrabNotify);
+ WRAP (rs, s, windowUngrabNotify, rotateWindowUngrabNotify);
+ WRAP (rs, s, activateWindow, rotateActivateWindow);
+
+ WRAP (rs, cs, getRotation, rotateGetRotation);
+
+ s->base.privates[rd->screenPrivateIndex].ptr = rs;
+
+ return TRUE;
+}
+
+static void
+rotateFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ CUBE_SCREEN (s);
+ ROTATE_SCREEN (s);
+
+ UNWRAP (rs, cs, getRotation);
+
+ UNWRAP (rs, s, preparePaintScreen);
+ UNWRAP (rs, s, donePaintScreen);
+ UNWRAP (rs, s, paintOutput);
+ UNWRAP (rs, s, windowGrabNotify);
+ UNWRAP (rs, s, windowUngrabNotify);
+ UNWRAP (rs, s, activateWindow);
+
+ compFiniScreenOptions (s, rs->opt, ROTATE_SCREEN_OPTION_NUM);
+
+ free (rs);
+}
+static CompBool
+rotateInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) rotateInitDisplay,
+ (InitPluginObjectProc) rotateInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+rotateFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) rotateFiniDisplay,
+ (FiniPluginObjectProc) rotateFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+rotateGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) rotateGetDisplayOptions,
+ (GetPluginObjectOptionsProc) rotateGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+rotateSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) rotateSetDisplayOption,
+ (SetPluginObjectOptionProc) rotateSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+rotateInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&rotateMetadata,
+ p->vTable->name,
+ rotateDisplayOptionInfo,
+ ROTATE_DISPLAY_OPTION_NUM,
+ rotateScreenOptionInfo,
+ ROTATE_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&rotateMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&rotateMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+rotateFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&rotateMetadata);
+}
+
+static CompMetadata *
+rotateGetMetadata (CompPlugin *plugin)
+{
+ return &rotateMetadata;
+}
+
+CompPluginVTable rotateVTable = {
+ "rotate",
+ rotateGetMetadata,
+ rotateInit,
+ rotateFini,
+ rotateInitObject,
+ rotateFiniObject,
+ rotateGetObjectOptions,
+ rotateSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &rotateVTable;
+}
diff --git a/plugins/scale.c b/plugins/scale.c
new file mode 100644
index 0000000..1063c9e
--- /dev/null
+++ b/plugins/scale.c
@@ -0,0 +1,2290 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/time.h>
+
+#include <X11/Xatom.h>
+#include <X11/cursorfont.h>
+
+#include <compiz-scale.h>
+
+#define EDGE_STATE (CompActionStateInitEdge)
+
+#define WIN_X(w) ((w)->attrib.x - (w)->input.left)
+#define WIN_Y(w) ((w)->attrib.y - (w)->input.top)
+#define WIN_W(w) ((w)->width + (w)->input.left + (w)->input.right)
+#define WIN_H(w) ((w)->height + (w)->input.top + (w)->input.bottom)
+
+static CompMetadata scaleMetadata;
+
+static int scaleDisplayPrivateIndex;
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+scaleGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ SCALE_SCREEN (screen);
+
+ *count = NUM_OPTIONS (ss);
+ return ss->opt;
+}
+
+static Bool
+scaleSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ SCALE_SCREEN (screen);
+
+ o = compFindOption (ss->opt, NUM_OPTIONS (ss), name, &index);
+
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case SCALE_SCREEN_OPTION_OPACITY:
+ if (compSetIntOption (o, value))
+ {
+ ss->opacity = (OPAQUE * o->value.i) / 100;
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetScreenOption (screen, o, value);
+ }
+
+ return FALSE;
+}
+
+static Bool
+isNeverScaleWin (CompWindow *w)
+{
+ if (w->attrib.override_redirect)
+ return TRUE;
+
+ if (w->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool
+isScaleWin (CompWindow *w)
+{
+ SCALE_SCREEN (w->screen);
+
+ if (isNeverScaleWin (w))
+ return FALSE;
+
+ if (!ss->type || ss->type == ScaleTypeOutput)
+ {
+ if (!(*w->screen->focusWindow) (w))
+ return FALSE;
+ }
+
+ if (w->state & CompWindowStateSkipPagerMask)
+ return FALSE;
+
+ if (w->state & CompWindowStateShadedMask)
+ return FALSE;
+
+ if (!w->mapNum || w->attrib.map_state != IsViewable)
+ return FALSE;
+
+ switch (ss->type) {
+ case ScaleTypeGroup:
+ if (ss->clientLeader != w->clientLeader &&
+ ss->clientLeader != w->id)
+ return FALSE;
+ break;
+ case ScaleTypeOutput:
+ if (outputDeviceForWindow(w) != w->screen->currentOutputDev)
+ return FALSE;
+ default:
+ break;
+ }
+
+ if (!matchEval (ss->currentMatch, w))
+ return FALSE;
+
+ return TRUE;
+}
+
+static void
+scaleActivateEvent (CompScreen *s,
+ Bool activating)
+{
+ CompOption o[2];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "root";
+ o[0].value.i = s->root;
+
+ o[1].type = CompOptionTypeBool;
+ o[1].name = "active";
+ o[1].value.b = activating;
+
+ (*s->display->handleCompizEvent) (s->display, "scale", "activate", o, 2);
+}
+
+static void
+scalePaintDecoration (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+
+ SCALE_SCREEN (s);
+
+ if (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i != SCALE_ICON_NONE)
+ {
+ WindowPaintAttrib sAttrib = *attrib;
+ CompIcon *icon;
+
+ SCALE_WINDOW (w);
+
+ icon = getWindowIcon (w, 96, 96);
+ if (!icon)
+ icon = w->screen->defaultIcon;
+
+ if (icon && (icon->texture.name || iconToTexture (w->screen, icon)))
+ {
+ REGION iconReg;
+ float scale;
+ float x, y;
+ int width, height;
+ int scaledWinWidth, scaledWinHeight;
+ float ds;
+
+ scaledWinWidth = w->width * sw->scale;
+ scaledWinHeight = w->height * sw->scale;
+
+ switch (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i) {
+ case SCALE_ICON_NONE:
+ case SCALE_ICON_EMBLEM:
+ scale = 1.0f;
+ break;
+ case SCALE_ICON_BIG:
+ default:
+ sAttrib.opacity /= 3;
+ scale = MIN (((float) scaledWinWidth / icon->width),
+ ((float) scaledWinHeight / icon->height));
+ break;
+ }
+
+ width = icon->width * scale;
+ height = icon->height * scale;
+
+ switch (ss->opt[SCALE_SCREEN_OPTION_ICON].value.i) {
+ case SCALE_ICON_NONE:
+ case SCALE_ICON_EMBLEM:
+ x = w->attrib.x + scaledWinWidth - icon->width;
+ y = w->attrib.y + scaledWinHeight - icon->height;
+ break;
+ case SCALE_ICON_BIG:
+ default:
+ x = w->attrib.x + scaledWinWidth / 2 - width / 2;
+ y = w->attrib.y + scaledWinHeight / 2 - height / 2;
+ break;
+ }
+
+ x += sw->tx;
+ y += sw->ty;
+
+ if (sw->slot)
+ {
+ sw->delta =
+ fabs (sw->slot->x1 - w->attrib.x) +
+ fabs (sw->slot->y1 - w->attrib.y) +
+ fabs (1.0f - sw->slot->scale) * 500.0f;
+ }
+
+ if (sw->delta)
+ {
+ float o;
+
+ ds =
+ fabs (sw->tx) +
+ fabs (sw->ty) +
+ fabs (1.0f - sw->scale) * 500.0f;
+
+ if (ds > sw->delta)
+ ds = sw->delta;
+
+ o = ds / sw->delta;
+
+ if (sw->slot)
+ {
+ if (o < sw->lastThumbOpacity)
+ o = sw->lastThumbOpacity;
+ }
+ else
+ {
+ if (o > sw->lastThumbOpacity)
+ o = 0.0f;
+ }
+
+ sw->lastThumbOpacity = o;
+
+ sAttrib.opacity = sAttrib.opacity * o;
+ }
+
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ iconReg.rects = &iconReg.extents;
+ iconReg.numRects = 1;
+
+ iconReg.extents.x1 = 0;
+ iconReg.extents.y1 = 0;
+ iconReg.extents.x2 = iconReg.extents.x1 + width;
+ iconReg.extents.y2 = iconReg.extents.y1 + height;
+
+ w->vCount = w->indexCount = 0;
+ if (iconReg.extents.x1 < iconReg.extents.x2 &&
+ iconReg.extents.y1 < iconReg.extents.y2)
+ (*w->screen->addWindowGeometry) (w,
+ &icon->texture.matrix, 1,
+ &iconReg, &iconReg);
+
+ if (w->vCount)
+ {
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+
+ initFragmentAttrib (&fragment, &sAttrib);
+
+ matrixScale (&wTransform, scale, scale, 1.0f);
+ matrixTranslate (&wTransform, x / scale, y / scale, 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ (*w->screen->drawWindowTexture) (w,
+ &icon->texture, &fragment,
+ mask);
+
+ glPopMatrix ();
+ }
+ }
+ }
+}
+
+static Bool
+setScaledPaintAttributes (CompWindow *w,
+ WindowPaintAttrib *attrib)
+{
+ Bool drawScaled = FALSE;
+
+ SCALE_SCREEN (w->screen);
+ SCALE_WINDOW (w);
+
+ if (sw->adjust || sw->slot)
+ {
+ SCALE_DISPLAY (w->screen->display);
+
+ if (w->id != sd->selectedWindow &&
+ ss->opacity != OPAQUE &&
+ ss->state != SCALE_STATE_IN)
+ {
+ /* modify opacity of windows that are not active */
+ attrib->opacity = (attrib->opacity * ss->opacity) >> 16;
+ }
+
+ drawScaled = TRUE;
+ }
+ else if (ss->state != SCALE_STATE_IN)
+ {
+ if (ss->opt[SCALE_SCREEN_OPTION_DARKEN_BACK].value.b)
+ {
+ /* modify brightness of the other windows */
+ attrib->brightness = attrib->brightness / 2;
+ }
+
+ /* hide windows on the outputs used for scaling
+ that are not in scale mode */
+ if (!isNeverScaleWin (w))
+ {
+ int moMode;
+ moMode = ss->opt[SCALE_SCREEN_OPTION_MULTIOUTPUT_MODE].value.i;
+
+ switch (moMode) {
+ case SCALE_MOMODE_CURRENT:
+ if (outputDeviceForWindow (w) == w->screen->currentOutputDev)
+ attrib->opacity = 0;
+ break;
+ default:
+ attrib->opacity = 0;
+ break;
+ }
+ }
+ }
+
+ return drawScaled;
+}
+
+static Bool
+scalePaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ Bool status;
+
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_NONE)
+ {
+ WindowPaintAttrib sAttrib = *attrib;
+ Bool scaled;
+
+ SCALE_WINDOW (w);
+
+ scaled = (*ss->setScaledPaintAttributes) (w, &sAttrib);
+
+ if (sw->adjust || sw->slot)
+ mask |= PAINT_WINDOW_NO_CORE_INSTANCE_MASK;
+
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, &sAttrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, scalePaintWindow);
+
+ if (scaled)
+ {
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+
+ if (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK)
+ return FALSE;
+
+ initFragmentAttrib (&fragment, &w->lastPaint);
+
+ if (w->alpha || fragment.opacity != OPAQUE)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ matrixTranslate (&wTransform, w->attrib.x, w->attrib.y, 0.0f);
+ matrixScale (&wTransform, sw->scale, sw->scale, 1.0f);
+ matrixTranslate (&wTransform,
+ sw->tx / sw->scale - w->attrib.x,
+ sw->ty / sw->scale - w->attrib.y,
+ 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ (*s->drawWindow) (w, &wTransform, &fragment, region,
+ mask | PAINT_WINDOW_TRANSFORMED_MASK);
+
+ glPopMatrix ();
+
+ (*ss->scalePaintDecoration) (w, &sAttrib, transform, region, mask);
+ }
+ }
+ else
+ {
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, scalePaintWindow);
+ }
+
+ return status;
+}
+
+static int
+compareWindowsDistance (const void *elem1,
+ const void *elem2)
+{
+ CompWindow *w1 = *((CompWindow **) elem1);
+ CompWindow *w2 = *((CompWindow **) elem2);
+
+ SCALE_SCREEN (w1->screen);
+
+ return
+ GET_SCALE_WINDOW (w1, ss)->distance -
+ GET_SCALE_WINDOW (w2, ss)->distance;
+}
+
+static void
+layoutSlotsForArea (CompScreen *s,
+ XRectangle workArea,
+ int nWindows)
+{
+ int i, j;
+ int x, y, width, height;
+ int lines, n, nSlots;
+ int spacing;
+
+ SCALE_SCREEN (s);
+
+ if (!nWindows)
+ return;
+
+ lines = sqrt (nWindows + 1);
+ spacing = ss->opt[SCALE_SCREEN_OPTION_SPACING].value.i;
+ nSlots = 0;
+
+ y = workArea.y + spacing;
+ height = (workArea.height - (lines + 1) * spacing) / lines;
+
+ for (i = 0; i < lines; i++)
+ {
+ n = MIN (nWindows - nSlots,
+ ceilf ((float)nWindows / lines));
+
+ x = workArea.x + spacing;
+ width = (workArea.width - (n + 1) * spacing) / n;
+
+ for (j = 0; j < n; j++)
+ {
+ ss->slots[ss->nSlots].x1 = x;
+ ss->slots[ss->nSlots].y1 = y;
+ ss->slots[ss->nSlots].x2 = x + width;
+ ss->slots[ss->nSlots].y2 = y + height;
+
+ ss->slots[ss->nSlots].filled = FALSE;
+
+ x += width + spacing;
+
+ ss->nSlots++;
+ nSlots++;
+ }
+
+ y += height + spacing;
+ }
+}
+
+static SlotArea *
+getSlotAreas (CompScreen *s)
+{
+ int i;
+ XRectangle workArea;
+ float *size;
+ float sizePerWindow, sum = 0.0f;
+ int left;
+ SlotArea *slotAreas;
+
+ SCALE_SCREEN (s);
+
+ size = malloc (s->nOutputDev * sizeof (int));
+ if (!size)
+ return NULL;
+
+ slotAreas = malloc (s->nOutputDev * sizeof (SlotArea));
+ if (!slotAreas)
+ {
+ free (size);
+ return NULL;
+ }
+
+ left = ss->nWindows;
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ /* determine the size of the workarea for each output device */
+ workArea = s->outputDev[i].workArea;
+
+ size[i] = workArea.width * workArea.height;
+ sum += size[i];
+
+ slotAreas[i].nWindows = 0;
+ slotAreas[i].workArea = workArea;
+ }
+
+ /* calculate size available for each window */
+ sizePerWindow = sum / ss->nWindows;
+
+ for (i = 0; i < s->nOutputDev && left; i++)
+ {
+ /* fill the areas with windows */
+ int nw = floor (size[i] / sizePerWindow);
+
+ nw = MIN (nw, left);
+ size[i] -= nw * sizePerWindow;
+ slotAreas[i].nWindows = nw;
+ left -= nw;
+ }
+
+ /* add left windows to output devices with the biggest free space */
+ while (left > 0)
+ {
+ int num = 0;
+ float big = 0;
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ if (size[i] > big)
+ {
+ num = i;
+ big = size[i];
+ }
+ }
+
+ size[num] -= sizePerWindow;
+ slotAreas[num].nWindows++;
+ left--;
+ }
+
+ free (size);
+
+ return slotAreas;
+}
+
+static void
+layoutSlots (CompScreen *s)
+{
+ int i;
+ int moMode;
+
+ SCALE_SCREEN (s);
+
+ moMode = ss->opt[SCALE_SCREEN_OPTION_MULTIOUTPUT_MODE].value.i;
+
+ /* if we have only one head, we don't need the
+ additional effort of the all outputs mode */
+ if (s->nOutputDev == 1)
+ moMode = SCALE_MOMODE_CURRENT;
+
+ ss->nSlots = 0;
+
+ switch (moMode)
+ {
+ case SCALE_MOMODE_ALL:
+ {
+ SlotArea *slotAreas;
+ slotAreas = getSlotAreas (s);
+ if (slotAreas)
+ {
+ for (i = 0; i < s->nOutputDev; i++)
+ layoutSlotsForArea (s,
+ slotAreas[i].workArea,
+ slotAreas[i].nWindows);
+ free (slotAreas);
+ }
+ }
+ break;
+ case SCALE_MOMODE_CURRENT:
+ default:
+ {
+ XRectangle workArea;
+ workArea = s->outputDev[s->currentOutputDev].workArea;
+ layoutSlotsForArea (s, workArea, ss->nWindows);
+ }
+ break;
+ }
+}
+
+static void
+findBestSlots (CompScreen *s)
+{
+ CompWindow *w;
+ int i, j, d, d0 = 0;
+ float sx, sy, cx, cy;
+
+ SCALE_SCREEN (s);
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ w = ss->windows[i];
+
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ continue;
+
+ sw->sid = 0;
+ sw->distance = MAXSHORT;
+
+ for (j = 0; j < ss->nSlots; j++)
+ {
+ if (!ss->slots[j].filled)
+ {
+ sx = (ss->slots[j].x2 + ss->slots[j].x1) / 2;
+ sy = (ss->slots[j].y2 + ss->slots[j].y1) / 2;
+
+ cx = w->serverX + w->width / 2;
+ cy = w->serverY + w->height / 2;
+
+ cx -= sx;
+ cy -= sy;
+
+ d = sqrt (cx * cx + cy * cy);
+ if (d0 + d < sw->distance)
+ {
+ sw->sid = j;
+ sw->distance = d0 + d;
+ }
+ }
+ }
+
+ d0 += sw->distance;
+ }
+}
+
+static Bool
+fillInWindows (CompScreen *s)
+{
+ CompWindow *w;
+ int i, width, height;
+ float sx, sy, cx, cy;
+
+ SCALE_SCREEN (s);
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ w = ss->windows[i];
+
+ SCALE_WINDOW (w);
+
+ if (!sw->slot)
+ {
+ if (ss->slots[sw->sid].filled)
+ return TRUE;
+
+ sw->slot = &ss->slots[sw->sid];
+
+ width = w->width + w->input.left + w->input.right;
+ height = w->height + w->input.top + w->input.bottom;
+
+ sx = (float) (sw->slot->x2 - sw->slot->x1) / width;
+ sy = (float) (sw->slot->y2 - sw->slot->y1) / height;
+
+ sw->slot->scale = MIN (MIN (sx, sy), 1.0f);
+
+ sx = width * sw->slot->scale;
+ sy = height * sw->slot->scale;
+ cx = (sw->slot->x1 + sw->slot->x2) / 2;
+ cy = (sw->slot->y1 + sw->slot->y2) / 2;
+
+ cx += w->input.left * sw->slot->scale;
+ cy += w->input.top * sw->slot->scale;
+
+ sw->slot->x1 = cx - sx / 2;
+ sw->slot->y1 = cy - sy / 2;
+ sw->slot->x2 = cx + sx / 2;
+ sw->slot->y2 = cy + sy / 2;
+
+ sw->slot->filled = TRUE;
+
+ sw->lastThumbOpacity = 0.0f;
+
+ sw->adjust = TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+layoutSlotsAndAssignWindows (CompScreen *s)
+{
+ SCALE_SCREEN (s);
+
+ /* create a grid of slots */
+ layoutSlots (s);
+
+ do
+ {
+ /* find most appropriate slots for windows */
+ findBestSlots (s);
+
+ /* sort windows, window with closest distance to a slot first */
+ qsort (ss->windows, ss->nWindows, sizeof (CompWindow *),
+ compareWindowsDistance);
+
+ } while (fillInWindows (s));
+
+ return TRUE;
+}
+
+static Bool
+layoutThumbs (CompScreen *s)
+{
+ CompWindow *w;
+
+ SCALE_SCREEN (s);
+
+ ss->nWindows = 0;
+
+ /* add windows scale list, top most window first */
+ for (w = s->reverseWindows; w; w = w->prev)
+ {
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ sw->adjust = TRUE;
+
+ sw->slot = 0;
+
+ if (!isScaleWin (w))
+ continue;
+
+ if (ss->windowsSize <= ss->nWindows)
+ {
+ ss->windows = realloc (ss->windows,
+ sizeof (CompWindow *) * (ss->nWindows + 32));
+ if (!ss->windows)
+ return FALSE;
+
+ ss->windowsSize = ss->nWindows + 32;
+ }
+
+ ss->windows[ss->nWindows++] = w;
+ }
+
+ if (ss->nWindows == 0)
+ return FALSE;
+
+ if (ss->slotsSize < ss->nWindows)
+ {
+ ss->slots = realloc (ss->slots, sizeof (ScaleSlot) * ss->nWindows);
+ if (!ss->slots)
+ return FALSE;
+
+ ss->slotsSize = ss->nWindows;
+ }
+
+ return (*ss->layoutSlotsAndAssignWindows) (s);
+}
+
+static int
+adjustScaleVelocity (CompWindow *w)
+{
+ float dx, dy, ds, adjust, amount;
+ float x1, y1, scale;
+
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ {
+ x1 = sw->slot->x1;
+ y1 = sw->slot->y1;
+ scale = sw->slot->scale;
+ }
+ else
+ {
+ x1 = w->attrib.x;
+ y1 = w->attrib.y;
+ scale = 1.0f;
+ }
+
+ dx = x1 - (w->attrib.x + sw->tx);
+
+ adjust = dx * 0.15f;
+ amount = fabs (dx) * 1.5f;
+ if (amount < 0.5f)
+ amount = 0.5f;
+ else if (amount > 5.0f)
+ amount = 5.0f;
+
+ sw->xVelocity = (amount * sw->xVelocity + adjust) / (amount + 1.0f);
+
+ dy = y1 - (w->attrib.y + sw->ty);
+
+ adjust = dy * 0.15f;
+ amount = fabs (dy) * 1.5f;
+ if (amount < 0.5f)
+ amount = 0.5f;
+ else if (amount > 5.0f)
+ amount = 5.0f;
+
+ sw->yVelocity = (amount * sw->yVelocity + adjust) / (amount + 1.0f);
+
+ ds = scale - sw->scale;
+
+ adjust = ds * 0.1f;
+ amount = fabs (ds) * 7.0f;
+ if (amount < 0.01f)
+ amount = 0.01f;
+ else if (amount > 0.15f)
+ amount = 0.15f;
+
+ sw->scaleVelocity = (amount * sw->scaleVelocity + adjust) /
+ (amount + 1.0f);
+
+ if (fabs (dx) < 0.1f && fabs (sw->xVelocity) < 0.2f &&
+ fabs (dy) < 0.1f && fabs (sw->yVelocity) < 0.2f &&
+ fabs (ds) < 0.001f && fabs (sw->scaleVelocity) < 0.002f)
+ {
+ sw->xVelocity = sw->yVelocity = sw->scaleVelocity = 0.0f;
+ sw->tx = x1 - w->attrib.x;
+ sw->ty = y1 - w->attrib.y;
+ sw->scale = scale;
+
+ return 0;
+ }
+
+ return 1;
+}
+
+static Bool
+scalePaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_NONE)
+ mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK;
+
+ UNWRAP (ss, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (ss, s, paintOutput, scalePaintOutput);
+
+ return status;
+}
+
+static void
+scalePreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_NONE && ss->state != SCALE_STATE_WAIT)
+ {
+ CompWindow *w;
+ int steps;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.05f *
+ ss->opt[SCALE_SCREEN_OPTION_SPEED].value.f;
+ steps = amount /
+ (0.5f * ss->opt[SCALE_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ ss->moreAdjust = 0;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ SCALE_WINDOW (w);
+
+ if (sw->adjust)
+ {
+ sw->adjust = adjustScaleVelocity (w);
+
+ ss->moreAdjust |= sw->adjust;
+
+ sw->tx += sw->xVelocity * chunk;
+ sw->ty += sw->yVelocity * chunk;
+ sw->scale += sw->scaleVelocity * chunk;
+ }
+ }
+
+ if (!ss->moreAdjust)
+ break;
+ }
+ }
+
+ UNWRAP (ss, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ss, s, preparePaintScreen, scalePreparePaintScreen);
+}
+
+static void
+scaleDonePaintScreen (CompScreen *s)
+{
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_NONE)
+ {
+ if (ss->moreAdjust)
+ {
+ damageScreen (s);
+ }
+ else
+ {
+ if (ss->state == SCALE_STATE_IN)
+ {
+ /* The FALSE activate event is sent when scale state
+ goes back to normal, to avoid animation conflicts
+ with other plugins. */
+ scaleActivateEvent (s, FALSE);
+ ss->state = SCALE_STATE_NONE;
+ }
+ else if (ss->state == SCALE_STATE_OUT)
+ ss->state = SCALE_STATE_WAIT;
+ }
+ }
+
+ UNWRAP (ss, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (ss, s, donePaintScreen, scaleDonePaintScreen);
+}
+
+static CompWindow *
+scaleCheckForWindowAt (CompScreen *s,
+ int x,
+ int y)
+{
+ int x1, y1, x2, y2;
+ CompWindow *w;
+
+ for (w = s->reverseWindows; w; w = w->prev)
+ {
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ {
+ x1 = w->attrib.x - w->input.left * sw->scale;
+ y1 = w->attrib.y - w->input.top * sw->scale;
+ x2 = w->attrib.x + (w->width + w->input.right) * sw->scale;
+ y2 = w->attrib.y + (w->height + w->input.bottom) * sw->scale;
+
+ x1 += sw->tx;
+ y1 += sw->ty;
+ x2 += sw->tx;
+ y2 += sw->ty;
+
+ if (x1 <= x && y1 <= y && x2 > x && y2 > y)
+ return w;
+ }
+ }
+
+ return 0;
+}
+
+static void
+sendDndStatusMessage (CompScreen *s,
+ Window source)
+{
+ XEvent xev;
+
+ SCALE_SCREEN (s);
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = s->display->display;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = s->display->xdndStatusAtom;
+ xev.xclient.window = source;
+
+ xev.xclient.data.l[0] = ss->dndTarget;
+ xev.xclient.data.l[1] = 2;
+ xev.xclient.data.l[2] = 0;
+ xev.xclient.data.l[3] = 0;
+ xev.xclient.data.l[4] = None;
+
+ XSendEvent (s->display->display, source, FALSE, 0, &xev);
+}
+
+static Bool
+scaleActionShouldToggle (CompDisplay *d,
+ CompAction *action,
+ CompActionState state)
+{
+ SCALE_DISPLAY (d);
+
+ if (state & EDGE_STATE)
+ return TRUE;
+
+ if (state & (CompActionStateInitKey | CompActionStateTermKey))
+ {
+ if (sd->opt[SCALE_DISPLAY_OPTION_KEY_BINDINGS_TOGGLE].value.b)
+ return TRUE;
+ else if (!action->key.modifiers)
+ return TRUE;
+ }
+
+ if (state & (CompActionStateInitButton | CompActionStateTermButton))
+ if (sd->opt[SCALE_DISPLAY_OPTION_BUTTON_BINDINGS_TOGGLE].value.b)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool
+scaleTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ SCALE_DISPLAY (d);
+
+ if (!scaleActionShouldToggle (d, action, state))
+ {
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ SCALE_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (!ss->grab)
+ continue;
+
+ if (ss->grabIndex)
+ {
+ removeScreenGrab (s, ss->grabIndex, 0);
+ ss->grabIndex = 0;
+ }
+
+ if (ss->dndTarget)
+ XUnmapWindow (d->display, ss->dndTarget);
+
+ ss->grab = FALSE;
+
+ if (ss->state != SCALE_STATE_NONE)
+ {
+ CompWindow *w;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ {
+ sw->slot = 0;
+ sw->adjust = TRUE;
+ }
+ }
+
+ if (state & CompActionStateCancel)
+ {
+ if (d->activeWindow != sd->previousActiveWindow)
+ {
+ w = findWindowAtScreen (s, sd->previousActiveWindow);
+ if (w)
+ moveInputFocusToWindow (w);
+ }
+ }
+ else if (ss->state != SCALE_STATE_IN)
+ {
+ w = findWindowAtScreen (s, sd->selectedWindow);
+ if (w)
+ (*s->activateWindow) (w);
+ }
+
+ ss->state = SCALE_STATE_IN;
+
+ damageScreen (s);
+ }
+
+ sd->lastActiveNum = 0;
+ }
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static Bool
+scaleEnsureDndRedirectWindow (CompScreen *s)
+{
+ SCALE_SCREEN (s);
+
+ if (!ss->dndTarget)
+ {
+ XSetWindowAttributes attr;
+ long xdndVersion = 3;
+
+ attr.override_redirect = TRUE;
+
+ ss->dndTarget = XCreateWindow (s->display->display,
+ s->root,
+ 0, 0, 1, 1, 0,
+ CopyFromParent,
+ InputOnly,
+ CopyFromParent,
+ CWOverrideRedirect, &attr);
+
+ XChangeProperty (s->display->display, ss->dndTarget,
+ s->display->xdndAwareAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) &xdndVersion, 1);
+ }
+
+ XMoveResizeWindow (s->display->display, ss->dndTarget,
+ 0, 0, s->width, s->height);
+ XMapRaised (s->display->display, ss->dndTarget);
+
+ return TRUE;
+}
+
+static Bool
+scaleInitiateCommon (CompScreen *s,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompMatch *match;
+
+ SCALE_DISPLAY (s->display);
+ SCALE_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "scale", 0))
+ return FALSE;
+
+ ss->currentMatch = &ss->opt[SCALE_SCREEN_OPTION_WINDOW_MATCH].value.match;
+
+ match = getMatchOptionNamed (option, nOption, "match", NULL);
+ if (match)
+ {
+ matchFini (&ss->match);
+ matchInit (&ss->match);
+ if (matchCopy (&ss->match, match))
+ {
+ matchUpdate (s->display, &ss->match);
+ ss->currentMatch = &ss->match;
+ }
+ }
+
+ if (!layoutThumbs (s))
+ return FALSE;
+
+ if (state & CompActionStateInitEdgeDnd)
+ {
+ if (scaleEnsureDndRedirectWindow (s))
+ ss->grab = TRUE;
+ }
+ else if (!ss->grabIndex)
+ {
+ ss->grabIndex = pushScreenGrab (s, ss->cursor, "scale");
+ if (ss->grabIndex)
+ ss->grab = TRUE;
+ }
+
+ if (ss->grab)
+ {
+ if (!sd->lastActiveNum)
+ sd->lastActiveNum = s->activeNum - 1;
+
+ sd->previousActiveWindow = s->display->activeWindow;
+ sd->lastActiveWindow = s->display->activeWindow;
+ sd->selectedWindow = s->display->activeWindow;
+ sd->hoveredWindow = None;
+
+ ss->state = SCALE_STATE_OUT;
+
+ scaleActivateEvent (s, TRUE);
+
+ damageScreen (s);
+ }
+
+ if ((state & (CompActionStateInitButton | EDGE_STATE)) ==
+ CompActionStateInitButton)
+ {
+ action->state |= CompActionStateTermButton;
+ }
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+
+ return FALSE;
+}
+
+static Bool
+scaleInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_WAIT && ss->state != SCALE_STATE_OUT)
+ {
+ ss->type = ScaleTypeNormal;
+ return scaleInitiateCommon (s, action, state, option, nOption);
+ }
+ else if (scaleActionShouldToggle (d, action, state))
+ {
+ if (ss->type == ScaleTypeNormal)
+ return scaleTerminate (s->display, action,
+ CompActionStateCancel, option, nOption);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+scaleInitiateAll (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_WAIT && ss->state != SCALE_STATE_OUT)
+ {
+ ss->type = ScaleTypeAll;
+ return scaleInitiateCommon (s, action, state, option, nOption);
+ }
+ else if (scaleActionShouldToggle (d, action, state))
+ {
+ if (ss->type == ScaleTypeAll)
+ return scaleTerminate (s->display, action,
+ CompActionStateCancel, option, nOption);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+scaleInitiateGroup (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_WAIT && ss->state != SCALE_STATE_OUT)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, getIntOptionNamed (option, nOption,
+ "window", 0));
+ if (w)
+ {
+ ss->type = ScaleTypeGroup;
+ ss->clientLeader = (w->clientLeader) ? w->clientLeader : w->id;
+
+ return scaleInitiateCommon (s, action, state, option, nOption);
+ }
+ }
+ else if (scaleActionShouldToggle (d, action, state))
+ {
+ if (ss->type == ScaleTypeGroup)
+ return scaleTerminate (s->display, action,
+ CompActionStateCancel, option, nOption);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+scaleInitiateOutput (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_WAIT && ss->state != SCALE_STATE_OUT)
+ {
+ ss->type = ScaleTypeOutput;
+ return scaleInitiateCommon (s, action, state, option, nOption);
+ }
+ else if (scaleActionShouldToggle (d, action, state))
+ {
+ if (ss->type == ScaleTypeOutput)
+ return scaleTerminate (s->display, action,
+ CompActionStateCancel, option, nOption);
+ }
+ }
+
+ return FALSE;
+}
+
+static void
+scaleSelectWindow (CompWindow *w)
+
+{
+ SCALE_DISPLAY (w->screen->display);
+
+ if (sd->selectedWindow != w->id)
+ {
+ CompWindow *old, *new;
+
+ old = findWindowAtScreen (w->screen, sd->selectedWindow);
+ new = findWindowAtScreen (w->screen, w->id);
+
+ sd->selectedWindow = w->id;
+
+ if (old)
+ addWindowDamage (old);
+
+ if (new)
+ addWindowDamage (new);
+ }
+}
+
+static Bool
+scaleSelectWindowAt (CompScreen *s,
+ int x,
+ int y,
+ Bool moveInputFocus)
+
+{
+ CompWindow *w;
+
+ SCALE_DISPLAY (s->display);
+
+ w = scaleCheckForWindowAt (s, x, y);
+ if (w && isScaleWin (w))
+ {
+ SCALE_SCREEN (s);
+
+ (*ss->selectWindow) (w);
+
+ if (moveInputFocus)
+ {
+ sd->lastActiveNum = w->activeNum;
+ sd->lastActiveWindow = w->id;
+
+ moveInputFocusToWindow (w);
+ }
+
+ sd->hoveredWindow = w->id;
+
+ return TRUE;
+ }
+
+ sd->hoveredWindow = None;
+
+ return FALSE;
+}
+
+static void
+scaleMoveFocusWindow (CompScreen *s,
+ int dx,
+ int dy)
+
+{
+ CompWindow *active;
+ CompWindow *focus = NULL;
+
+ active = findWindowAtScreen (s, s->display->activeWindow);
+ if (active)
+ {
+ SCALE_WINDOW (active);
+
+ if (sw->slot)
+ {
+ SCALE_SCREEN (s);
+
+ CompWindow *w;
+ ScaleSlot *slot;
+ int x, y, cx, cy, d, min = MAXSHORT;
+
+ cx = (sw->slot->x1 + sw->slot->x2) / 2;
+ cy = (sw->slot->y1 + sw->slot->y2) / 2;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ slot = GET_SCALE_WINDOW (w, ss)->slot;
+ if (!slot)
+ continue;
+
+ x = (slot->x1 + slot->x2) / 2;
+ y = (slot->y1 + slot->y2) / 2;
+
+ d = abs (x - cx) + abs (y - cy);
+ if (d < min)
+ {
+ if ((dx > 0 && slot->x1 < sw->slot->x2) ||
+ (dx < 0 && slot->x2 > sw->slot->x1) ||
+ (dy > 0 && slot->y1 < sw->slot->y2) ||
+ (dy < 0 && slot->y2 > sw->slot->y1))
+ continue;
+
+ min = d;
+ focus = w;
+ }
+ }
+ }
+ }
+
+ /* move focus to the last focused window if no slot window is currently
+ focused */
+ if (!focus)
+ {
+ CompWindow *w;
+
+ SCALE_SCREEN (s);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!GET_SCALE_WINDOW (w, ss)->slot)
+ continue;
+
+ if (!focus || focus->activeNum < w->activeNum)
+ focus = w;
+ }
+ }
+
+ if (focus)
+ {
+ SCALE_DISPLAY (s->display);
+ SCALE_SCREEN (s);
+
+ (*ss->selectWindow) (focus);
+
+ sd->lastActiveNum = focus->activeNum;
+ sd->lastActiveWindow = focus->id;
+
+ moveInputFocusToWindow (focus);
+ }
+}
+
+static Bool
+scaleRelayoutSlots (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->state != SCALE_STATE_NONE && ss->state != SCALE_STATE_IN)
+ {
+ if (layoutThumbs (s))
+ {
+ ss->state = SCALE_STATE_OUT;
+ scaleMoveFocusWindow (s, 0, 0);
+ damageScreen (s);
+ }
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void
+scaleWindowRemove (CompDisplay *d,
+ Window id)
+{
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, id);
+ if (w)
+ {
+ SCALE_SCREEN (w->screen);
+
+ if (ss->state != SCALE_STATE_NONE && ss->state != SCALE_STATE_IN)
+ {
+ int i;
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ if (ss->windows[i] == w)
+ {
+ if (layoutThumbs (w->screen))
+ {
+ ss->state = SCALE_STATE_OUT;
+ damageScreen (w->screen);
+ break;
+ }
+ else
+ {
+ CompOption o;
+ CompAction *action;
+ int opt;
+
+ SCALE_DISPLAY (d);
+
+ /* terminate scale mode if the recently closed
+ * window was the last scaled window */
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = w->screen->root;
+
+ opt = SCALE_DISPLAY_OPTION_INITIATE_EDGE;
+ action = &sd->opt[opt].value.action;
+ scaleTerminate (d, action,
+ CompActionStateCancel, &o, 1);
+
+ opt = SCALE_DISPLAY_OPTION_INITIATE_KEY;
+ action = &sd->opt[opt].value.action;
+ scaleTerminate (d, action,
+ CompActionStateCancel, &o, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+
+static Bool
+scaleHoverTimeout (void *closure)
+{
+ CompScreen *s = closure;
+
+ SCALE_SCREEN (s);
+ SCALE_DISPLAY (s->display);
+
+ if (ss->grab && ss->state != SCALE_STATE_IN)
+ {
+ CompWindow *w;
+ CompOption o;
+ int option;
+
+ w = findWindowAtDisplay (s->display, sd->selectedWindow);
+ if (w)
+ {
+ sd->lastActiveNum = w->activeNum;
+ sd->lastActiveWindow = w->id;
+
+ moveInputFocusToWindow (w);
+ }
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = s->root;
+
+ option = SCALE_DISPLAY_OPTION_INITIATE_EDGE;
+ scaleTerminate (s->display, &sd->opt[option].value.action, 0, &o, 1);
+ option = SCALE_DISPLAY_OPTION_INITIATE_KEY;
+ scaleTerminate (s->display, &sd->opt[option].value.action, 0, &o, 1);
+ }
+
+ ss->hoverHandle = 0;
+
+ return FALSE;
+}
+
+static void
+scaleHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+ Bool consumeEvent = FALSE;
+
+ SCALE_DISPLAY (d);
+
+ switch (event->type) {
+ case KeyPress:
+ s = findScreenAtDisplay (d, event->xkey.root);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->grabIndex)
+ {
+ if (event->xkey.keycode == sd->leftKeyCode)
+ {
+ scaleMoveFocusWindow (s, -1, 0);
+ consumeEvent = TRUE;
+ }
+ else if (event->xkey.keycode == sd->rightKeyCode)
+ {
+ scaleMoveFocusWindow (s, 1, 0);
+ consumeEvent = TRUE;
+ }
+ else if (event->xkey.keycode == sd->upKeyCode)
+ {
+ scaleMoveFocusWindow (s, 0, -1);
+ consumeEvent = TRUE;
+ }
+ else if (event->xkey.keycode == sd->downKeyCode)
+ {
+ scaleMoveFocusWindow (s, 0, 1);
+ consumeEvent = TRUE;
+ }
+ }
+ }
+ break;
+ case ButtonPress:
+ if (event->xbutton.button == Button1)
+ {
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ {
+ int option;
+
+ SCALE_SCREEN (s);
+
+ if (ss->grabIndex && ss->state != SCALE_STATE_IN)
+ {
+ CompOption o;
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = s->root;
+
+ if (scaleSelectWindowAt (s,
+ event->xbutton.x_root,
+ event->xbutton.y_root,
+ TRUE))
+ {
+ option = SCALE_DISPLAY_OPTION_INITIATE_EDGE;
+ scaleTerminate (s->display,
+ &sd->opt[option].value.action,
+ 0, &o, 1);
+ option = SCALE_DISPLAY_OPTION_INITIATE_KEY;
+ scaleTerminate (s->display,
+ &sd->opt[option].value.action,
+ 0, &o, 1);
+ }
+ else if (event->xbutton.x_root > s->workArea.x &&
+ event->xbutton.x_root < (s->workArea.x +
+ s->workArea.width) &&
+ event->xbutton.y_root > s->workArea.y &&
+ event->xbutton.y_root < (s->workArea.y +
+ s->workArea.height))
+ {
+ if (sd->opt[SCALE_DISPLAY_OPTION_SHOW_DESKTOP].value.b)
+ {
+ option = SCALE_DISPLAY_OPTION_INITIATE_EDGE;
+ scaleTerminate (s->display,
+ &sd->opt[option].value.action,
+ 0, &o, 1);
+ option = SCALE_DISPLAY_OPTION_INITIATE_KEY;
+ scaleTerminate (s->display,
+ &sd->opt[option].value.action,
+ 0, &o, 1);
+ (*s->enterShowDesktopMode) (s);
+ }
+ }
+ }
+ }
+ }
+ break;
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ {
+ SCALE_SCREEN (s);
+
+ if (ss->grabIndex && ss->state != SCALE_STATE_IN)
+ {
+ Bool focus;
+
+ focus = !d->opt[COMP_DISPLAY_OPTION_CLICK_TO_FOCUS].value.b;
+
+ scaleSelectWindowAt (s,
+ event->xmotion.x_root,
+ event->xmotion.y_root,
+ focus);
+ }
+ }
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->xdndPositionAtom)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ Bool focus;
+
+ SCALE_SCREEN (w->screen);
+
+ s = w->screen;
+
+ focus = !d->opt[COMP_DISPLAY_OPTION_CLICK_TO_FOCUS].value.b;
+
+ if (w->id == ss->dndTarget)
+ sendDndStatusMessage (w->screen, event->xclient.data.l[0]);
+
+ if (ss->grab &&
+ ss->state != SCALE_STATE_IN &&
+ w->id == ss->dndTarget)
+ {
+ int x = event->xclient.data.l[2] >> 16;
+ int y = event->xclient.data.l[2] & 0xffff;
+
+ w = scaleCheckForWindowAt (s, x, y);
+ if (w && isScaleWin (w))
+ {
+ int time;
+
+ time = ss->opt[SCALE_SCREEN_OPTION_HOVER_TIME].value.i;
+
+ if (ss->hoverHandle)
+ {
+ if (w->id != sd->selectedWindow)
+ {
+ compRemoveTimeout (ss->hoverHandle);
+ ss->hoverHandle = 0;
+ }
+ }
+
+ if (!ss->hoverHandle)
+ ss->hoverHandle =
+ compAddTimeout (time, (float) time * 1.2,
+ scaleHoverTimeout,
+ s);
+
+ scaleSelectWindowAt (s, x, y, focus);
+ }
+ else
+ {
+ if (ss->hoverHandle)
+ compRemoveTimeout (ss->hoverHandle);
+
+ ss->hoverHandle = 0;
+ }
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->xdndDropAtom ||
+ event->xclient.message_type == d->xdndLeaveAtom)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ int option;
+
+ SCALE_SCREEN (w->screen);
+
+ if (ss->grab &&
+ ss->state != SCALE_STATE_IN &&
+ w->id == ss->dndTarget)
+ {
+ CompOption o;
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = w->screen->root;
+
+ option = SCALE_DISPLAY_OPTION_INITIATE_EDGE;
+ scaleTerminate (d, &sd->opt[option].value.action,
+ 0, &o, 1);
+ option = SCALE_DISPLAY_OPTION_INITIATE_KEY;
+ scaleTerminate (d, &sd->opt[option].value.action,
+ 0, &o, 1);
+ }
+ }
+ }
+ default:
+ break;
+ }
+
+ if (!consumeEvent)
+ {
+ UNWRAP (sd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (sd, d, handleEvent, scaleHandleEvent);
+ }
+
+ switch (event->type) {
+ case UnmapNotify:
+ scaleWindowRemove (d, event->xunmap.window);
+ break;
+ case DestroyNotify:
+ scaleWindowRemove (d, event->xdestroywindow.window);
+ break;
+ }
+
+}
+
+static Bool
+scaleDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status = FALSE;
+
+ SCALE_SCREEN (w->screen);
+
+ if (initial)
+ {
+ if (ss->grab && isScaleWin (w))
+ {
+ if (layoutThumbs (w->screen))
+ {
+ ss->state = SCALE_STATE_OUT;
+ damageScreen (w->screen);
+ }
+ }
+ }
+ else if (ss->state == SCALE_STATE_WAIT)
+ {
+ SCALE_WINDOW (w);
+
+ if (sw->slot)
+ {
+ damageTransformedWindowRect (w,
+ sw->scale,
+ sw->scale,
+ sw->tx,
+ sw->ty,
+ rect);
+
+ status = TRUE;
+ }
+ }
+
+ UNWRAP (ss, w->screen, damageWindowRect);
+ status |= (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (ss, w->screen, damageWindowRect, scaleDamageWindowRect);
+
+ return status;
+}
+
+static CompOption *
+scaleGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ SCALE_DISPLAY (display);
+
+ *count = NUM_OPTIONS (sd);
+ return sd->opt;
+}
+
+static Bool
+scaleSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ SCALE_DISPLAY (display);
+
+ o = compFindOption (sd->opt, NUM_OPTIONS (sd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case SCALE_DISPLAY_OPTION_ABI:
+ case SCALE_DISPLAY_OPTION_INDEX:
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo scaleDisplayOptionInfo[] = {
+ { "abi", "int", 0, 0, 0 },
+ { "index", "int", 0, 0, 0 },
+ { "initiate_edge", "edge", 0, scaleInitiate, scaleTerminate },
+ { "initiate_button", "button", 0, scaleInitiate, scaleTerminate },
+ { "initiate_key", "key", 0, scaleInitiate, scaleTerminate },
+ { "initiate_all_edge", "edge", 0, scaleInitiateAll, scaleTerminate },
+ { "initiate_all_button", "button", 0, scaleInitiateAll, scaleTerminate },
+ { "initiate_all_key", "key", 0, scaleInitiateAll, scaleTerminate },
+ { "initiate_group_edge", "edge", 0, scaleInitiateGroup, scaleTerminate },
+ { "initiate_group_button", "button", 0,
+ scaleInitiateGroup, scaleTerminate },
+ { "initiate_group_key", "key", 0, scaleInitiateGroup, scaleTerminate },
+ { "initiate_output_edge", "edge", 0, scaleInitiateOutput, scaleTerminate },
+ { "initiate_output_button", "button", 0,
+ scaleInitiateOutput, scaleTerminate },
+ { "initiate_output_key", "key", 0, scaleInitiateOutput, scaleTerminate },
+ { "show_desktop", "bool", 0, 0, 0 },
+ { "relayout_slots", "action", 0, scaleRelayoutSlots, 0 },
+ { "key_bindings_toggle", "bool", 0, 0, 0 },
+ { "button_bindings_toggle", "bool", 0, 0, 0 }
+};
+
+static Bool
+scaleInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ScaleDisplay *sd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ sd = malloc (sizeof (ScaleDisplay));
+ if (!sd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &scaleMetadata,
+ scaleDisplayOptionInfo,
+ sd->opt,
+ SCALE_DISPLAY_OPTION_NUM))
+ {
+ free (sd);
+ return FALSE;
+ }
+
+ sd->opt[SCALE_DISPLAY_OPTION_ABI].value.i = SCALE_ABIVERSION;
+ sd->opt[SCALE_DISPLAY_OPTION_INDEX].value.i = scaleDisplayPrivateIndex;
+
+ sd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (sd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, sd->opt, SCALE_DISPLAY_OPTION_NUM);
+ free (sd);
+ return FALSE;
+ }
+
+ sd->lastActiveNum = None;
+ sd->selectedWindow = None;
+ sd->hoveredWindow = None;
+
+ sd->leftKeyCode = XKeysymToKeycode (d->display, XStringToKeysym ("Left"));
+ sd->rightKeyCode = XKeysymToKeycode (d->display, XStringToKeysym ("Right"));
+ sd->upKeyCode = XKeysymToKeycode (d->display, XStringToKeysym ("Up"));
+ sd->downKeyCode = XKeysymToKeycode (d->display, XStringToKeysym ("Down"));
+
+ WRAP (sd, d, handleEvent, scaleHandleEvent);
+
+ d->base.privates[scaleDisplayPrivateIndex].ptr = sd;
+
+ return TRUE;
+}
+
+static void
+scaleFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ SCALE_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, sd->screenPrivateIndex);
+
+ UNWRAP (sd, d, handleEvent);
+
+ compFiniDisplayOptions (d, sd->opt, SCALE_DISPLAY_OPTION_NUM);
+
+ free (sd);
+}
+
+static const CompMetadataOptionInfo scaleScreenOptionInfo[] = {
+ { "spacing", "int", "<min>0</min>", 0, 0 },
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "window_match", "match", 0, 0, 0 },
+ { "darken_back", "bool", 0, 0, 0 },
+ { "opacity", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "overlay_icon", "int", RESTOSTRING (0, SCALE_ICON_LAST), 0, 0 },
+ { "hover_time", "int", "<min>50</min>", 0, 0 },
+ { "multioutput_mode", "int", RESTOSTRING (0, SCALE_MOMODE_LAST), 0, 0 }
+};
+
+static Bool
+scaleInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ScaleScreen *ss;
+
+ SCALE_DISPLAY (s->display);
+
+ ss = malloc (sizeof (ScaleScreen));
+ if (!ss)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &scaleMetadata,
+ scaleScreenOptionInfo,
+ ss->opt,
+ SCALE_SCREEN_OPTION_NUM))
+ {
+ free (ss);
+ return FALSE;
+ }
+
+ ss->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (ss->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, ss->opt, SCALE_SCREEN_OPTION_NUM);
+ free (ss);
+ return FALSE;
+ }
+
+ ss->grab = FALSE;
+ ss->grabIndex = 0;
+
+ ss->hoverHandle = 0;
+
+ ss->dndTarget = None;
+
+ ss->state = SCALE_STATE_NONE;
+
+ ss->slots = 0;
+ ss->slotsSize = 0;
+
+ ss->windows = 0;
+ ss->windowsSize = 0;
+
+ ss->opacity =
+ (OPAQUE * ss->opt[SCALE_SCREEN_OPTION_OPACITY].value.i) / 100;
+
+ matchInit (&ss->match);
+
+ ss->layoutSlotsAndAssignWindows = layoutSlotsAndAssignWindows;
+ ss->setScaledPaintAttributes = setScaledPaintAttributes;
+ ss->scalePaintDecoration = scalePaintDecoration;
+ ss->selectWindow = scaleSelectWindow;
+
+ WRAP (ss, s, preparePaintScreen, scalePreparePaintScreen);
+ WRAP (ss, s, donePaintScreen, scaleDonePaintScreen);
+ WRAP (ss, s, paintOutput, scalePaintOutput);
+ WRAP (ss, s, paintWindow, scalePaintWindow);
+ WRAP (ss, s, damageWindowRect, scaleDamageWindowRect);
+
+ ss->cursor = XCreateFontCursor (s->display->display, XC_left_ptr);
+
+ s->base.privates[sd->screenPrivateIndex].ptr = ss;
+
+ return TRUE;
+}
+
+static void
+scaleFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SCALE_SCREEN (s);
+
+ UNWRAP (ss, s, preparePaintScreen);
+ UNWRAP (ss, s, donePaintScreen);
+ UNWRAP (ss, s, paintOutput);
+ UNWRAP (ss, s, paintWindow);
+ UNWRAP (ss, s, damageWindowRect);
+
+ matchFini (&ss->match);
+
+ if (ss->cursor)
+ XFreeCursor (s->display->display, ss->cursor);
+
+ if (ss->slotsSize)
+ free (ss->slots);
+
+ if (ss->windows)
+ free (ss->windows);
+
+ freeWindowPrivateIndex (s, ss->windowPrivateIndex);
+
+ compFiniScreenOptions (s, ss->opt, SCALE_SCREEN_OPTION_NUM);
+
+ free (ss);
+}
+
+static Bool
+scaleInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ ScaleWindow *sw;
+
+ SCALE_SCREEN (w->screen);
+
+ sw = malloc (sizeof (ScaleWindow));
+ if (!sw)
+ return FALSE;
+
+ sw->slot = 0;
+ sw->scale = 1.0f;
+ sw->tx = sw->ty = 0.0f;
+ sw->adjust = FALSE;
+ sw->xVelocity = sw->yVelocity = 0.0f;
+ sw->scaleVelocity = 1.0f;
+ sw->delta = 1.0f;
+ sw->lastThumbOpacity = 0.0f;
+
+ w->base.privates[ss->windowPrivateIndex].ptr = sw;
+
+ return TRUE;
+}
+
+static void
+scaleFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ SCALE_WINDOW (w);
+
+ free (sw);
+}
+
+static CompBool
+scaleInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) scaleInitDisplay,
+ (InitPluginObjectProc) scaleInitScreen,
+ (InitPluginObjectProc) scaleInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+scaleFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) scaleFiniDisplay,
+ (FiniPluginObjectProc) scaleFiniScreen,
+ (FiniPluginObjectProc) scaleFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+scaleGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) scaleGetDisplayOptions,
+ (GetPluginObjectOptionsProc) scaleGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+scaleSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) scaleSetDisplayOption,
+ (SetPluginObjectOptionProc) scaleSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+scaleInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&scaleMetadata,
+ p->vTable->name,
+ scaleDisplayOptionInfo,
+ SCALE_DISPLAY_OPTION_NUM,
+ scaleScreenOptionInfo,
+ SCALE_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ scaleDisplayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (scaleDisplayPrivateIndex < 0)
+ {
+ compFiniMetadata (&scaleMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&scaleMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+scaleFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (scaleDisplayPrivateIndex);
+ compFiniMetadata (&scaleMetadata);
+}
+
+static CompMetadata *
+scaleGetMetadata (CompPlugin *plugin)
+{
+ return &scaleMetadata;
+}
+
+CompPluginVTable scaleVTable = {
+ "scale",
+ scaleGetMetadata,
+ scaleInit,
+ scaleFini,
+ scaleInitObject,
+ scaleFiniObject,
+ scaleGetObjectOptions,
+ scaleSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &scaleVTable;
+}
diff --git a/plugins/screenshot.c b/plugins/screenshot.c
new file mode 100644
index 0000000..1bb824b
--- /dev/null
+++ b/plugins/screenshot.c
@@ -0,0 +1,627 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <dirent.h>
+
+#include <compiz-core.h>
+
+static CompMetadata shotMetadata;
+
+static int displayPrivateIndex;
+
+#define SHOT_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define SHOT_DISPLAY_OPTION_DIR 1
+#define SHOT_DISPLAY_OPTION_LAUNCH_APP 2
+#define SHOT_DISPLAY_OPTION_NUM 3
+
+typedef struct _ShotDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[SHOT_DISPLAY_OPTION_NUM];
+} ShotDisplay;
+
+typedef struct _ShotScreen {
+ PaintOutputProc paintOutput;
+ PaintScreenProc paintScreen;
+ int grabIndex;
+
+ int x1, y1, x2, y2;
+ Bool grab;
+} ShotScreen;
+
+#define GET_SHOT_DISPLAY(d) \
+ ((ShotDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define SHOT_DISPLAY(d) \
+ ShotDisplay *sd = GET_SHOT_DISPLAY (d)
+
+#define GET_SHOT_SCREEN(s, sd) \
+ ((ShotScreen *) (s)->base.privates[(sd)->screenPrivateIndex].ptr)
+
+#define SHOT_SCREEN(s) \
+ ShotScreen *ss = GET_SHOT_SCREEN (s, GET_SHOT_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+
+static Bool
+shotInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SHOT_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "screenshot", 0))
+ return FALSE;
+
+ if (!ss->grabIndex)
+ ss->grabIndex = pushScreenGrab (s, None, "screenshot");
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ /* start selection screenshot rectangle */
+
+ ss->x1 = ss->x2 = pointerX;
+ ss->y1 = ss->y2 = pointerY;
+
+ ss->grab = TRUE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+shotTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ SHOT_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (ss->grabIndex)
+ {
+ removeScreenGrab (s, ss->grabIndex, NULL);
+ ss->grabIndex = 0;
+
+ if (ss->x1 != ss->x2 && ss->y1 != ss->y2)
+ {
+ REGION reg;
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = MIN (ss->x1, ss->x2) - 1;
+ reg.extents.y1 = MIN (ss->y1, ss->y2) - 1;
+ reg.extents.x2 = MAX (ss->x1, ss->x2) + 1;
+ reg.extents.y2 = MAX (ss->y1, ss->y2) + 1;
+
+ damageScreenRegion (s, &reg);
+ }
+ }
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static int
+shotFilter (const struct dirent *d)
+{
+ int number;
+
+ if (sscanf (d->d_name, "screenshot%d.png", &number))
+ return 1;
+
+ return 0;
+}
+
+static int
+shotSort (const void *_a,
+ const void *_b)
+{
+ struct dirent **a = (struct dirent **) _a;
+ struct dirent **b = (struct dirent **) _b;
+ int al = strlen ((*a)->d_name);
+ int bl = strlen ((*b)->d_name);
+
+ if (al == bl)
+ return strcoll ((*a)->d_name, (*b)->d_name);
+ else
+ return al - bl;
+}
+
+static void
+shotPaintScreen (CompScreen *s,
+ CompOutput *outputs,
+ int numOutput,
+ unsigned int mask)
+{
+ SHOT_SCREEN (s);
+
+ UNWRAP (ss, s, paintScreen);
+ (*s->paintScreen) (s, outputs, numOutput, mask);
+ WRAP (ss, s, paintScreen, shotPaintScreen);
+
+ if (ss->grab)
+ {
+ int x1, x2, y1, y2;
+
+ x1 = MIN (ss->x1, ss->x2);
+ y1 = MIN (ss->y1, ss->y2);
+ x2 = MAX (ss->x1, ss->x2);
+ y2 = MAX (ss->y1, ss->y2);
+
+ if (!ss->grabIndex)
+ {
+ int w = x2 - x1;
+ int h = y2 - y1;
+
+ SHOT_DISPLAY (s->display);
+
+ if (w && h)
+ {
+ GLubyte *buffer;
+ char *dir = sd->opt[SHOT_DISPLAY_OPTION_DIR].value.s;
+
+ buffer = malloc (sizeof (GLubyte) * w * h * 4);
+ if (buffer)
+ {
+ struct dirent **namelist;
+ int n;
+
+ glReadPixels (x1, s->height - y2, w, h,
+ GL_RGBA, GL_UNSIGNED_BYTE,
+ (GLvoid *) buffer);
+
+ n = scandir (dir, &namelist, shotFilter, shotSort);
+ if (n >= 0)
+ {
+ char name[256];
+ char *app;
+ int number = 0;
+
+ if (n > 0)
+ sscanf (namelist[n - 1]->d_name,
+ "screenshot%d.png",
+ &number);
+
+ number++;
+
+ if (n)
+ free (namelist);
+
+ sprintf (name, "screenshot%d.png", number);
+
+ app = sd->opt[SHOT_DISPLAY_OPTION_LAUNCH_APP].value.s;
+
+ if (!writeImageToFile (s->display, dir, name, "png",
+ w, h, buffer))
+ {
+ compLogMessage ("screenshot", CompLogLevelError,
+ "failed to write screenshot image");
+ }
+ else if (*app != '\0')
+ {
+ char *command;
+
+ command = malloc (strlen (app) +
+ strlen (dir) +
+ strlen (name) + 3);
+ if (command)
+ {
+ sprintf (command, "%s %s/%s", app, dir, name);
+
+ runCommand (s, command);
+
+ free (command);
+ }
+ }
+ }
+ else
+ {
+ perror (dir);
+ }
+
+ free (buffer);
+ }
+ }
+
+ ss->grab = FALSE;
+ }
+ }
+}
+
+static Bool
+shotPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ SHOT_SCREEN (s);
+
+ UNWRAP (ss, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (ss, s, paintOutput, shotPaintOutput);
+
+ if (status && ss->grab)
+ {
+ int x1, x2, y1, y2;
+
+ x1 = MIN (ss->x1, ss->x2);
+ y1 = MIN (ss->y1, ss->y2);
+ x2 = MAX (ss->x1, ss->x2);
+ y2 = MAX (ss->y1, ss->y2);
+
+ if (ss->grabIndex)
+ {
+ glPushMatrix ();
+
+ prepareXCoords (s, output, -DEFAULT_Z_CAMERA);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+ glColor4us (0x2fff, 0x2fff, 0x4fff, 0x4fff);
+ glRecti (x1, y2, x2, y1);
+ glColor4us (0x2fff, 0x2fff, 0x4fff, 0x9fff);
+ glBegin (GL_LINE_LOOP);
+ glVertex2i (x1, y1);
+ glVertex2i (x2, y1);
+ glVertex2i (x2, y2);
+ glVertex2i (x1, y2);
+ glEnd ();
+ glColor4usv (defaultColor);
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ glPopMatrix ();
+ }
+ }
+
+ return status;
+}
+
+static void
+shotHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ SHOT_SCREEN (s);
+
+ /* update screenshot rectangle size */
+
+ if (ss->grabIndex)
+ {
+ REGION reg;
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = MIN (ss->x1, ss->x2) - 1;
+ reg.extents.y1 = MIN (ss->y1, ss->y2) - 1;
+ reg.extents.x2 = MAX (ss->x1, ss->x2) + 1;
+ reg.extents.y2 = MAX (ss->y1, ss->y2) + 1;
+
+ damageScreenRegion (s, &reg);
+
+ ss->x2 = xRoot;
+ ss->y2 = yRoot;
+
+ reg.extents.x1 = MIN (ss->x1, ss->x2) - 1;
+ reg.extents.y1 = MIN (ss->y1, ss->y2) - 1;
+ reg.extents.x2 = MAX (ss->x1, ss->x2) + 1;
+ reg.extents.y2 = MAX (ss->y1, ss->y2) + 1;
+
+ damageScreenRegion (s, &reg);
+
+ damageScreen (s);
+ }
+}
+
+static void
+shotHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ SHOT_DISPLAY (d);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ shotHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ shotHandleMotionEvent (s, pointerX, pointerY);
+ default:
+ break;
+ }
+
+ UNWRAP (sd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (sd, d, handleEvent, shotHandleEvent);
+}
+
+static CompOption *
+shotGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ SHOT_DISPLAY (display);
+
+ *count = NUM_OPTIONS (sd);
+ return sd->opt;
+}
+
+static Bool
+shotSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ SHOT_DISPLAY (display);
+
+ o = compFindOption (sd->opt, NUM_OPTIONS (sd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo shotDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, shotInitiate, shotTerminate },
+ { "directory", "string", 0, 0, 0 },
+ { "launch_app", "string", 0, 0, 0 }
+};
+
+static Bool
+shotInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ShotDisplay *sd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ sd = malloc (sizeof (ShotDisplay));
+ if (!sd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &shotMetadata,
+ shotDisplayOptionInfo,
+ sd->opt,
+ SHOT_DISPLAY_OPTION_NUM))
+ {
+ free (sd);
+ return FALSE;
+ }
+
+ sd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (sd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, sd->opt, SHOT_DISPLAY_OPTION_NUM);
+ free (sd);
+ return FALSE;
+ }
+
+ WRAP (sd, d, handleEvent, shotHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = sd;
+
+ return TRUE;
+}
+
+static void
+shotFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ SHOT_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, sd->screenPrivateIndex);
+
+ UNWRAP (sd, d, handleEvent);
+
+ compFiniDisplayOptions (d, sd->opt, SHOT_DISPLAY_OPTION_NUM);
+
+ free (sd);
+}
+
+static Bool
+shotInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ShotScreen *ss;
+
+ SHOT_DISPLAY (s->display);
+
+ ss = malloc (sizeof (ShotScreen));
+ if (!ss)
+ return FALSE;
+
+ ss->grabIndex = 0;
+ ss->grab = FALSE;
+
+ WRAP (ss, s, paintScreen, shotPaintScreen);
+ WRAP (ss, s, paintOutput, shotPaintOutput);
+
+ s->base.privates[sd->screenPrivateIndex].ptr = ss;
+
+ return TRUE;
+}
+
+static void
+shotFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SHOT_SCREEN (s);
+
+ UNWRAP (ss, s, paintScreen);
+ UNWRAP (ss, s, paintOutput);
+
+ free (ss);
+}
+
+static CompBool
+shotInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) shotInitDisplay,
+ (InitPluginObjectProc) shotInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+shotFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) shotFiniDisplay,
+ (FiniPluginObjectProc) shotFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+shotGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) shotGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+shotSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) shotSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+shotInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&shotMetadata,
+ p->vTable->name,
+ shotDisplayOptionInfo,
+ SHOT_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&shotMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&shotMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+shotFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&shotMetadata);
+}
+
+static CompMetadata *
+shotGetMetadata (CompPlugin *plugin)
+{
+ return &shotMetadata;
+}
+
+static CompPluginVTable shotVTable = {
+ "screenshot",
+ shotGetMetadata,
+ shotInit,
+ shotFini,
+ shotInitObject,
+ shotFiniObject,
+ shotGetObjectOptions,
+ shotSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &shotVTable;
+}
diff --git a/plugins/svg.c b/plugins/svg.c
new file mode 100644
index 0000000..87fe546
--- /dev/null
+++ b/plugins/svg.c
@@ -0,0 +1,1053 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <cairo/cairo-xlib.h>
+#include <librsvg/rsvg.h>
+#include <librsvg/rsvg-cairo.h>
+
+#include <X11/Xatom.h>
+#include <X11/extensions/shape.h>
+
+#include <compiz-core.h>
+#include <decoration.h>
+
+static CompMetadata svgMetadata;
+
+#define SVG_DISPLAY_OPTION_SET 0
+#define SVG_DISPLAY_OPTION_NUM 1
+
+static int displayPrivateIndex;
+
+typedef struct _SvgDisplay {
+ CompOption opt[SVG_DISPLAY_OPTION_NUM];
+
+ int screenPrivateIndex;
+
+ HandleCompizEventProc handleCompizEvent;
+
+ FileToImageProc fileToImage;
+} SvgDisplay;
+
+typedef struct _SvgScreen {
+ int windowPrivateIndex;
+
+ DrawWindowProc drawWindow;
+
+ WindowMoveNotifyProc windowMoveNotify;
+ WindowResizeNotifyProc windowResizeNotify;
+
+ BoxRec zoom;
+} SvgScreen;
+
+typedef struct _SvgSource {
+ decor_point_t p1;
+ decor_point_t p2;
+
+ RsvgHandle *svg;
+ RsvgDimensionData dimension;
+} SvgSource;
+
+typedef struct _SvgTexture {
+ CompTexture texture;
+ CompMatrix matrix;
+ cairo_t *cr;
+ Pixmap pixmap;
+ int width;
+ int height;
+} SvgTexture;
+
+typedef struct _SvgContext {
+ SvgSource *source;
+ REGION box;
+ SvgTexture texture[2];
+ BoxRec rect;
+ int width, height;
+} SvgContext;
+
+typedef struct _SvgWindow {
+ SvgSource *source;
+ SvgContext *context;
+} SvgWindow;
+
+#define GET_SVG_DISPLAY(d) \
+ ((SvgDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define SVG_DISPLAY(d) \
+ SvgDisplay *sd = GET_SVG_DISPLAY (d)
+
+#define GET_SVG_SCREEN(s, sd) \
+ ((SvgScreen *) (s)->base.privates[(sd)->screenPrivateIndex].ptr)
+
+#define SVG_SCREEN(s) \
+ SvgScreen *ss = GET_SVG_SCREEN (s, GET_SVG_DISPLAY (s->display))
+
+#define GET_SVG_WINDOW(w, ss) \
+ ((SvgWindow *) (w)->base.privates[(ss)->windowPrivateIndex].ptr)
+
+#define SVG_WINDOW(w) \
+ SvgWindow *sw = GET_SVG_WINDOW (w, \
+ GET_SVG_SCREEN (w->screen, \
+ GET_SVG_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static void
+renderSvg (CompScreen *s,
+ SvgSource *source,
+ SvgTexture *texture,
+ float x1,
+ float y1,
+ float x2,
+ float y2,
+ int width,
+ int height)
+{
+ float w = x2 - x1;
+ float h = y2 - y1;
+
+ cairo_save (texture->cr);
+
+ cairo_set_operator (texture->cr, CAIRO_OPERATOR_SOURCE);
+ cairo_set_source_rgba (texture->cr, 1.0, 1.0, 1.0, 0.0);
+ cairo_paint (texture->cr);
+ cairo_set_operator (texture->cr, CAIRO_OPERATOR_OVER);
+
+ cairo_scale (texture->cr, 1.0 / w, 1.0 / h);
+
+ cairo_scale (texture->cr,
+ (double) width / source->dimension.width,
+ (double) height / source->dimension.height);
+
+ cairo_translate (texture->cr,
+ -x1 * source->dimension.width,
+ -y1 * source->dimension.height);
+
+ rsvg_handle_render_cairo (source->svg, texture->cr);
+
+ cairo_restore (texture->cr);
+}
+
+static Bool
+initSvgTexture (CompWindow *w,
+ SvgSource *source,
+ SvgTexture *texture,
+ int width,
+ int height)
+{
+ cairo_surface_t *surface;
+ CompScreen *s = w->screen;
+ Visual *visual;
+ int depth;
+
+ initTexture (s, &texture->texture);
+
+ texture->width = width;
+ texture->height = height;
+
+ texture->pixmap = None;
+ texture->cr = NULL;
+
+ if (width && height)
+ {
+ XWindowAttributes attr;
+ XGetWindowAttributes (s->display->display, w->id, &attr);
+
+ depth = attr.depth;
+ texture->pixmap = XCreatePixmap (s->display->display, s->root,
+ width, height, depth);
+
+ if (!bindPixmapToTexture (s,
+ &texture->texture,
+ texture->pixmap,
+ width, height, depth))
+ {
+ fprintf (stderr, "%s: Couldn't bind pixmap 0x%x to "
+ "texture\n", programName, (int) texture->pixmap);
+
+ XFreePixmap (s->display->display, texture->pixmap);
+
+ return FALSE;
+ }
+
+ visual = attr.visual;
+ surface = cairo_xlib_surface_create (s->display->display,
+ texture->pixmap, visual,
+ width, height);
+ texture->cr = cairo_create (surface);
+ cairo_surface_destroy (surface);
+ }
+
+ return TRUE;
+}
+
+static void
+finiSvgTexture (CompScreen *s,
+ SvgTexture *texture)
+{
+ if (texture->cr)
+ cairo_destroy (texture->cr);
+
+ if (texture->pixmap)
+ XFreePixmap (s->display->display, texture->pixmap);
+
+ finiTexture (s, &texture->texture);
+}
+
+static void
+updateWindowSvgMatrix (CompWindow *w)
+{
+ CompMatrix *m;
+ int width, height;
+
+ SVG_WINDOW (w);
+
+ width = sw->context->box.extents.x2 - sw->context->box.extents.x1;
+ height = sw->context->box.extents.y2 - sw->context->box.extents.y1;
+
+ m = &sw->context->texture[0].matrix;
+ *m = sw->context->texture[0].texture.matrix;
+
+ m->xx *= (float) sw->context->texture[0].width / width;
+ m->yy *= (float) sw->context->texture[0].height / height;
+
+ m->x0 -= (sw->context->box.extents.x1 * m->xx);
+ m->y0 -= (sw->context->box.extents.y1 * m->yy);
+
+ m = &sw->context->texture[1].matrix;
+ *m = sw->context->texture[1].texture.matrix;
+
+ width = sw->context->rect.x2 - sw->context->rect.x1;
+ height = sw->context->rect.y2 - sw->context->rect.y1;
+
+ m->xx *= (float) sw->context->texture[1].width / width;
+ m->yy *= (float) sw->context->texture[1].height / height;
+
+ m->x0 -= (sw->context->rect.x1 * m->xx);
+ m->y0 -= (sw->context->rect.y1 * m->yy);
+}
+
+static Bool
+svgDrawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *attrib,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+
+ SVG_SCREEN (w->screen);
+
+ UNWRAP (ss, w->screen, drawWindow);
+ status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
+ WRAP (ss, w->screen, drawWindow, svgDrawWindow);
+
+ if (status)
+ {
+ SVG_WINDOW (w);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ region = &infiniteRegion;
+
+ if (sw->context && region->numRects)
+ {
+ CompTexture *texture = &sw->context->texture[0].texture;
+ CompMatrix *matrix = &sw->context->texture[0].matrix;
+ REGION r;
+
+ r.rects = &r.extents;
+ r.numRects = 1;
+
+ r.extents = sw->context->box.extents;
+
+ if (r.extents.x1 < ss->zoom.x1)
+ r.extents.x1 = ss->zoom.x1;
+ if (r.extents.y1 < ss->zoom.y1)
+ r.extents.y1 = ss->zoom.y1;
+ if (r.extents.x2 > ss->zoom.x2)
+ r.extents.x2 = ss->zoom.x2;
+ if (r.extents.y2 > ss->zoom.y2)
+ r.extents.y2 = ss->zoom.y2;
+
+ w->vCount = w->indexCount = 0;
+
+ (*w->screen->addWindowGeometry) (w,
+ matrix, 1,
+ &sw->context->box,
+ region);
+
+ if (mask & PAINT_WINDOW_TRANSLUCENT_MASK)
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ (*w->screen->drawWindowTexture) (w, texture, attrib, mask);
+
+ if (r.extents.x1 < r.extents.x2 && r.extents.y1 < r.extents.y2)
+ {
+ float xScale, yScale;
+ float dx, dy;
+ int width, height;
+ int saveFilter;
+
+ r.extents.x1--;
+ r.extents.y1--;
+ r.extents.x2++;
+ r.extents.y2++;
+
+ xScale = w->screen->width / (float)
+ (ss->zoom.x2 - ss->zoom.x1);
+ yScale = w->screen->height / (float)
+ (ss->zoom.y2 - ss->zoom.y1);
+
+ dx = r.extents.x2 - r.extents.x1;
+ dy = r.extents.y2 - r.extents.y1;
+
+ width = dx * xScale + 0.5f;
+ height = dy * yScale + 0.5f;
+
+ if (r.extents.x1 != sw->context->rect.x1 ||
+ r.extents.y1 != sw->context->rect.y1 ||
+ r.extents.x2 != sw->context->rect.x2 ||
+ r.extents.y2 != sw->context->rect.y2 ||
+ width != sw->context->width ||
+ height != sw->context->height)
+ {
+ float x1, y1, x2, y2;
+
+ sw->context->rect = r.extents;
+
+ sw->context->width = width;
+ sw->context->height = height;
+
+ dx = sw->context->box.extents.x2 -
+ sw->context->box.extents.x1;
+ dy = sw->context->box.extents.y2 -
+ sw->context->box.extents.y1;
+
+ x1 = (r.extents.x1 - sw->context->box.extents.x1) / dx;
+ y1 = (r.extents.y1 - sw->context->box.extents.y1) / dy;
+ x2 = (r.extents.x2 - sw->context->box.extents.x1) / dx;
+ y2 = (r.extents.y2 - sw->context->box.extents.y1) / dy;
+
+ finiSvgTexture (w->screen, &sw->context->texture[1]);
+
+ if (initSvgTexture (w, sw->context->source,
+ &sw->context->texture[1],
+ width, height))
+ {
+ renderSvg (w->screen, sw->context->source,
+ &sw->context->texture[1],
+ x1, y1, x2, y2,
+ width, height);
+
+ updateWindowSvgMatrix (w);
+ }
+ }
+
+ texture = &sw->context->texture[1].texture;
+ matrix = &sw->context->texture[1].matrix;
+
+ w->vCount = w->indexCount = 0;
+
+ saveFilter = w->screen->filter[SCREEN_TRANS_FILTER];
+ w->screen->filter[SCREEN_TRANS_FILTER] =
+ COMP_TEXTURE_FILTER_GOOD;
+
+ (*w->screen->addWindowGeometry) (w, matrix, 1, &r, region);
+ (*w->screen->drawWindowTexture) (w, texture, attrib, mask);
+
+ w->screen->filter[SCREEN_TRANS_FILTER] = saveFilter;
+ }
+ else if (sw->context->texture[1].width)
+ {
+ finiSvgTexture (w->screen, &sw->context->texture[1]);
+ initSvgTexture (w, sw->source, &sw->context->texture[1], 0, 0);
+
+ memset (&sw->context->rect, 0, sizeof (BoxRec));
+
+ sw->context->width = 0;
+ sw->context->height = 0;
+ }
+ }
+ }
+
+ return status;
+}
+
+static void
+updateWindowSvgContext (CompWindow *w,
+ SvgSource *source)
+{
+ int x1, y1, x2, y2;
+
+ SVG_WINDOW (w);
+
+ if (sw->context)
+ {
+ finiSvgTexture (w->screen, &sw->context->texture[0]);
+ finiSvgTexture (w->screen, &sw->context->texture[1]);
+ }
+ else
+ {
+ sw->context = malloc (sizeof (SvgContext));
+ if (!sw->context)
+ return;
+ }
+
+ memset (&sw->context->rect, 0, sizeof (BoxRec));
+
+ sw->context->width = 0;
+ sw->context->height = 0;
+
+ initSvgTexture (w, source, &sw->context->texture[1], 0, 0);
+
+ sw->context->source = source;
+
+ sw->context->box.rects = &sw->context->box.extents;
+ sw->context->box.numRects = 1;
+
+ decor_apply_gravity (source->p1.gravity,
+ source->p1.x, source->p1.y,
+ w->width, w->height,
+ &x1, &y1);
+
+ decor_apply_gravity (source->p2.gravity,
+ source->p2.x, source->p2.y,
+ w->width, w->height,
+ &x2, &y2);
+
+ x1 = MAX (x1, 0);
+ y1 = MAX (y1, 0);
+ x2 = MIN (x2, w->width);
+ y2 = MIN (y2, w->height);
+
+ if (!initSvgTexture (w, source, &sw->context->texture[0],
+ w->width, w->height))
+ {
+ free (sw->context);
+ sw->context = NULL;
+ }
+ else
+ {
+ renderSvg (w->screen, source, &sw->context->texture[0],
+ 0.0f, 0.0f, 1.0f, 1.0f, w->width, w->height);
+
+ initSvgTexture (w, source, &sw->context->texture[1], 0, 0);
+
+ sw->context->box.extents.x1 = x1;
+ sw->context->box.extents.y1 = y1;
+ sw->context->box.extents.x2 = x2;
+ sw->context->box.extents.y2 = y2;
+
+ sw->context->box.extents.x1 += w->attrib.x;
+ sw->context->box.extents.y1 += w->attrib.y;
+ sw->context->box.extents.x2 += w->attrib.x;
+ sw->context->box.extents.y2 += w->attrib.y;
+
+ updateWindowSvgMatrix (w);
+ }
+}
+
+static Bool
+svgSet (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w)
+ {
+ decor_point_t p[2];
+ char *data;
+ RsvgHandle *svg = NULL;
+ GError *error = NULL;
+
+ SVG_WINDOW (w);
+
+ memset (p, 0, sizeof (p));
+
+ p[0].gravity = getIntOptionNamed (option, nOption, "gravity0",
+ GRAVITY_NORTH | GRAVITY_WEST);
+
+ p[0].x = getIntOptionNamed (option, nOption, "x0", 0);
+ p[0].y = getIntOptionNamed (option, nOption, "y0", 0);
+
+ p[1].gravity = getIntOptionNamed (option, nOption, "gravity1",
+ GRAVITY_SOUTH | GRAVITY_EAST);
+
+ p[1].x = getIntOptionNamed (option, nOption, "x1", 0);
+ p[1].y = getIntOptionNamed (option, nOption, "y1", 0);
+
+ data = getStringOptionNamed (option, nOption, "data", 0);
+ if (data)
+ svg = rsvg_handle_new_from_data ((guint8 *) data, strlen (data),
+ &error);
+
+ if (sw->source)
+ {
+ rsvg_handle_free (sw->source->svg);
+ sw->source->svg = svg;
+ }
+ else
+ {
+ sw->source = malloc (sizeof (SvgSource));
+ if (sw->source)
+ sw->source->svg = svg;
+ }
+
+ if (sw->source && sw->source->svg)
+ {
+ sw->source->p1 = p[0];
+ sw->source->p2 = p[1];
+
+ sw->source->svg = svg;
+
+ rsvg_handle_get_dimensions (svg, &sw->source->dimension);
+
+ updateWindowSvgContext (w, sw->source);
+ }
+ else
+ {
+ if (svg)
+ rsvg_handle_free (svg);
+
+ if (sw->source)
+ {
+ free (sw->source);
+ sw->source = NULL;
+ }
+
+ if (sw->context)
+ {
+ finiSvgTexture (w->screen, &sw->context->texture[0]);
+ free (sw->context);
+ sw->context = NULL;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+static void
+svgWindowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+ SVG_SCREEN (w->screen);
+ SVG_WINDOW (w);
+
+ if (sw->context)
+ {
+ sw->context->box.extents.x1 += dx;
+ sw->context->box.extents.y1 += dy;
+ sw->context->box.extents.x2 += dx;
+ sw->context->box.extents.y2 += dy;
+
+ updateWindowSvgMatrix (w);
+ }
+
+ UNWRAP (ss, w->screen, windowMoveNotify);
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+ WRAP (ss, w->screen, windowMoveNotify, svgWindowMoveNotify);
+}
+
+static void
+svgWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ SVG_SCREEN (w->screen);
+ SVG_WINDOW (w);
+
+ if (sw->source)
+ updateWindowSvgContext (w, sw->source);
+
+ UNWRAP (ss, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (ss, w->screen, windowResizeNotify, svgWindowResizeNotify);
+}
+
+static void
+svgHandleCompizEvent (CompDisplay *d,
+ const char *pluginName,
+ const char *eventName,
+ CompOption *option,
+ int nOption)
+{
+ SVG_DISPLAY (d);
+
+ UNWRAP (sd, d, handleCompizEvent);
+ (*d->handleCompizEvent) (d, pluginName, eventName, option, nOption);
+ WRAP (sd, d, handleCompizEvent, svgHandleCompizEvent);
+
+ if (strcmp (pluginName, "zoom") == 0)
+ {
+ CompScreen *s;
+ int output = getIntOptionNamed (option, nOption, "output", 0);
+
+ s = findScreenAtDisplay (d, getIntOptionNamed (option, nOption,
+ "root", 0));
+ if (s && output == 0)
+ {
+ SVG_SCREEN (s);
+
+ if (strcmp (eventName, "in") == 0)
+ {
+ ss->zoom.x1 = getIntOptionNamed (option, nOption, "x1", 0);
+ ss->zoom.y1 = getIntOptionNamed (option, nOption, "y1", 0);
+ ss->zoom.x2 = getIntOptionNamed (option, nOption, "x2", 0);
+ ss->zoom.y2 = getIntOptionNamed (option, nOption, "y2", 0);
+ }
+ else if (strcmp (eventName, "out") == 0)
+ {
+ memset (&ss->zoom, 0, sizeof (BoxRec));
+ }
+ }
+ }
+}
+
+static Bool
+readSvgFileToImage (char *file,
+ int *width,
+ int *height,
+ void **data)
+{
+ cairo_surface_t *surface;
+ FILE *fp;
+ GError *error = NULL;
+ RsvgHandle *svgHandle;
+ RsvgDimensionData svgDimension;
+
+ fp = fopen (file, "r");
+ if (!fp)
+ return FALSE;
+
+ fclose (fp);
+
+ svgHandle = rsvg_handle_new_from_file (file, &error);
+ if (!svgHandle)
+ return FALSE;
+
+ rsvg_handle_get_dimensions (svgHandle, &svgDimension);
+
+ *width = svgDimension.width;
+ *height = svgDimension.height;
+
+ *data = malloc (svgDimension.width * svgDimension.height * 4);
+ if (!*data)
+ {
+ rsvg_handle_free (svgHandle);
+ return FALSE;
+ }
+
+ surface = cairo_image_surface_create_for_data (*data,
+ CAIRO_FORMAT_ARGB32,
+ svgDimension.width,
+ svgDimension.height,
+ svgDimension.width * 4);
+ if (surface)
+ {
+ cairo_t *cr;
+
+ cr = cairo_create (surface);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
+ cairo_paint (cr);
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+
+ rsvg_handle_render_cairo (svgHandle, cr);
+
+ cairo_destroy (cr);
+ cairo_surface_destroy (surface);
+ }
+
+ rsvg_handle_free (svgHandle);
+
+ return TRUE;
+}
+
+static char *
+svgExtension (const char *name)
+{
+
+ if (strlen (name) > 4)
+ {
+ if (strcasecmp (name + (strlen (name) - 4), ".svg") == 0)
+ return "";
+ }
+
+ return ".svg";
+}
+
+static Bool
+svgFileToImage (CompDisplay *d,
+ const char *path,
+ const char *name,
+ int *width,
+ int *height,
+ int *stride,
+ void **data)
+{
+ Bool status = FALSE;
+ char *extension = svgExtension (name);
+ char *file;
+ int len;
+
+ SVG_DISPLAY (d);
+
+ len = (path ? strlen (path) : 0) + strlen (name) + strlen (extension) + 2;
+
+ file = malloc (len);
+ if (file)
+ {
+ if (path)
+ sprintf (file, "%s/%s%s", path, name, extension);
+ else
+ sprintf (file, "%s%s", name, extension);
+
+ status = readSvgFileToImage (file, width, height, data);
+
+ free (file);
+
+ if (status)
+ {
+ *stride = *width * 4;
+ return TRUE;
+ }
+ }
+
+ UNWRAP (sd, d, fileToImage);
+ status = (*d->fileToImage) (d, path, name, width, height, stride, data);
+ WRAP (sd, d, fileToImage, svgFileToImage);
+
+ return status;
+}
+
+static CompOption *
+svgGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ SVG_DISPLAY (display);
+
+ *count = NUM_OPTIONS (sd);
+ return sd->opt;
+}
+
+static Bool
+svgSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ SVG_DISPLAY (display);
+
+ o = compFindOption (sd->opt, NUM_OPTIONS (sd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo svgDisplayOptionInfo[] = {
+ { "set", "action", 0, svgSet, NULL }
+};
+
+static Bool
+svgInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ SvgDisplay *sd;
+ CompScreen *s;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ sd = malloc (sizeof (SvgDisplay));
+ if (!sd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &svgMetadata,
+ svgDisplayOptionInfo,
+ sd->opt,
+ SVG_DISPLAY_OPTION_NUM))
+ {
+ free (sd);
+ return FALSE;
+ }
+
+ sd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (sd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, sd->opt, SVG_DISPLAY_OPTION_NUM);
+ free (sd);
+ return FALSE;
+ }
+
+ WRAP (sd, d, handleCompizEvent, svgHandleCompizEvent);
+ WRAP (sd, d, fileToImage, svgFileToImage);
+
+ d->base.privates[displayPrivateIndex].ptr = sd;
+
+ for (s = d->screens; s; s = s->next)
+ updateDefaultIcon (s);
+
+ return TRUE;
+}
+
+static void
+svgFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ CompScreen *s;
+
+ SVG_DISPLAY (d);
+
+ UNWRAP (sd, d, handleCompizEvent);
+ UNWRAP (sd, d, fileToImage);
+
+ for (s = d->screens; s; s = s->next)
+ updateDefaultIcon (s);
+
+ freeScreenPrivateIndex (d, sd->screenPrivateIndex);
+
+ compFiniDisplayOptions (d, sd->opt, SVG_DISPLAY_OPTION_NUM);
+
+ free (sd);
+}
+
+static Bool
+svgInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SvgScreen *ss;
+
+ SVG_DISPLAY (s->display);
+
+ ss = malloc (sizeof (SvgScreen));
+ if (!ss)
+ return FALSE;
+
+ ss->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (ss->windowPrivateIndex < 0)
+ {
+ free (ss);
+ return FALSE;
+ }
+
+ memset (&ss->zoom, 0, sizeof (BoxRec));
+
+ WRAP (ss, s, drawWindow, svgDrawWindow);
+ WRAP (ss, s, windowMoveNotify, svgWindowMoveNotify);
+ WRAP (ss, s, windowResizeNotify, svgWindowResizeNotify);
+
+ s->base.privates[sd->screenPrivateIndex].ptr = ss;
+
+ return TRUE;
+}
+
+static void
+svgFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SVG_SCREEN (s);
+
+ freeWindowPrivateIndex (s, ss->windowPrivateIndex);
+
+ UNWRAP (ss, s, drawWindow);
+ UNWRAP (ss, s, windowMoveNotify);
+ UNWRAP (ss, s, windowResizeNotify);
+
+ free (ss);
+}
+
+static Bool
+svgInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ SvgWindow *sw;
+
+ SVG_SCREEN (w->screen);
+
+ sw = malloc (sizeof (SvgWindow));
+ if (!sw)
+ return FALSE;
+
+ sw->source = NULL;
+ sw->context = NULL;
+
+ w->base.privates[ss->windowPrivateIndex].ptr = sw;
+
+ return TRUE;
+}
+
+static void
+svgFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ SVG_WINDOW (w);
+
+ if (sw->source)
+ {
+ rsvg_handle_free (sw->source->svg);
+ free (sw->source);
+ }
+
+ if (sw->context)
+ {
+ finiSvgTexture (w->screen, &sw->context->texture[0]);
+ free (sw->context);
+ }
+
+ free (sw);
+}
+
+static CompBool
+svgInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) svgInitDisplay,
+ (InitPluginObjectProc) svgInitScreen,
+ (InitPluginObjectProc) svgInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+svgFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) svgFiniDisplay,
+ (FiniPluginObjectProc) svgFiniScreen,
+ (FiniPluginObjectProc) svgFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+svgGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) svgGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+svgSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) svgSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+svgInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&svgMetadata,
+ p->vTable->name,
+ svgDisplayOptionInfo,
+ SVG_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&svgMetadata);
+ return FALSE;
+ }
+
+ rsvg_init ();
+
+ compAddMetadataFromFile (&svgMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+svgFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&svgMetadata);
+
+ rsvg_term ();
+}
+
+static CompMetadata *
+svgGetMetadata (CompPlugin *plugin)
+{
+ return &svgMetadata;
+}
+
+CompPluginVTable svgVTable = {
+ "svg",
+ svgGetMetadata,
+ svgInit,
+ svgFini,
+ svgInitObject,
+ svgFiniObject,
+ svgGetObjectOptions,
+ svgSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &svgVTable;
+}
diff --git a/plugins/switcher.c b/plugins/switcher.c
new file mode 100644
index 0000000..116ed91
--- /dev/null
+++ b/plugins/switcher.c
@@ -0,0 +1,2134 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <compiz-core.h>
+#include <decoration.h>
+
+#include <X11/Xatom.h>
+#include <X11/extensions/Xrender.h>
+
+#define ZOOMED_WINDOW_MASK (1 << 0)
+#define NORMAL_WINDOW_MASK (1 << 1)
+
+static CompMetadata switchMetadata;
+
+static int displayPrivateIndex;
+
+#define SWITCH_DISPLAY_OPTION_NEXT_BUTTON 0
+#define SWITCH_DISPLAY_OPTION_NEXT_KEY 1
+#define SWITCH_DISPLAY_OPTION_PREV_BUTTON 2
+#define SWITCH_DISPLAY_OPTION_PREV_KEY 3
+#define SWITCH_DISPLAY_OPTION_NEXT_ALL_BUTTON 4
+#define SWITCH_DISPLAY_OPTION_NEXT_ALL_KEY 5
+#define SWITCH_DISPLAY_OPTION_PREV_ALL_BUTTON 6
+#define SWITCH_DISPLAY_OPTION_PREV_ALL_KEY 7
+#define SWITCH_DISPLAY_OPTION_NEXT_NO_POPUP_BUTTON 8
+#define SWITCH_DISPLAY_OPTION_NEXT_NO_POPUP_KEY 9
+#define SWITCH_DISPLAY_OPTION_PREV_NO_POPUP_BUTTON 10
+#define SWITCH_DISPLAY_OPTION_PREV_NO_POPUP_KEY 11
+#define SWITCH_DISPLAY_OPTION_NEXT_PANEL_BUTTON 12
+#define SWITCH_DISPLAY_OPTION_NEXT_PANEL_KEY 13
+#define SWITCH_DISPLAY_OPTION_PREV_PANEL_BUTTON 14
+#define SWITCH_DISPLAY_OPTION_PREV_PANEL_KEY 15
+#define SWITCH_DISPLAY_OPTION_NUM 16
+
+typedef struct _SwitchDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[SWITCH_DISPLAY_OPTION_NUM];
+
+ Atom selectWinAtom;
+ Atom selectFgColorAtom;
+} SwitchDisplay;
+
+#define SWITCH_SCREEN_OPTION_SPEED 0
+#define SWITCH_SCREEN_OPTION_TIMESTEP 1
+#define SWITCH_SCREEN_OPTION_WINDOW_MATCH 2
+#define SWITCH_SCREEN_OPTION_MIPMAP 3
+#define SWITCH_SCREEN_OPTION_SATURATION 4
+#define SWITCH_SCREEN_OPTION_BRIGHTNESS 5
+#define SWITCH_SCREEN_OPTION_OPACITY 6
+#define SWITCH_SCREEN_OPTION_BRINGTOFRONT 7
+#define SWITCH_SCREEN_OPTION_ZOOM 8
+#define SWITCH_SCREEN_OPTION_ICON 9
+#define SWITCH_SCREEN_OPTION_MINIMIZED 10
+#define SWITCH_SCREEN_OPTION_AUTO_ROTATE 11
+#define SWITCH_SCREEN_OPTION_NUM 12
+
+typedef enum {
+ CurrentViewport = 0,
+ AllViewports,
+ Panels
+} SwitchWindowSelection;
+
+typedef struct _SwitchScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+
+ CompOption opt[SWITCH_SCREEN_OPTION_NUM];
+
+ Window popupWindow;
+
+ Window selectedWindow;
+ Window zoomedWindow;
+ unsigned int lastActiveNum;
+
+ float zoom;
+
+ int grabIndex;
+
+ Bool switching;
+ Bool zooming;
+ int zoomMask;
+
+ int moreAdjust;
+
+ GLfloat mVelocity;
+ GLfloat tVelocity;
+ GLfloat sVelocity;
+
+ CompWindow **windows;
+ int windowsSize;
+ int nWindows;
+
+ int pos;
+ int move;
+
+ float translate;
+ float sTranslate;
+
+ SwitchWindowSelection selection;
+
+ unsigned int fgColor[4];
+} SwitchScreen;
+
+#define MwmHintsDecorations (1L << 1)
+
+typedef struct {
+ unsigned long flags;
+ unsigned long functions;
+ unsigned long decorations;
+} MwmHints;
+
+#define WIDTH 212
+#define HEIGHT 192
+#define SPACE 10
+
+#define SWITCH_ZOOM 0.1f
+
+#define BOX_WIDTH 3
+
+#define ICON_SIZE 64
+
+static float _boxVertices[] =
+{
+ -(WIDTH >> 1), 0,
+ -(WIDTH >> 1), BOX_WIDTH,
+ (WIDTH >> 1), BOX_WIDTH,
+ (WIDTH >> 1), 0,
+
+ -(WIDTH >> 1), BOX_WIDTH,
+ -(WIDTH >> 1), HEIGHT - BOX_WIDTH,
+ -(WIDTH >> 1) + BOX_WIDTH, HEIGHT - BOX_WIDTH,
+ -(WIDTH >> 1) + BOX_WIDTH, 0,
+
+ (WIDTH >> 1) - BOX_WIDTH, BOX_WIDTH,
+ (WIDTH >> 1) - BOX_WIDTH, HEIGHT - BOX_WIDTH,
+ (WIDTH >> 1), HEIGHT - BOX_WIDTH,
+ (WIDTH >> 1), 0,
+
+ -(WIDTH >> 1), HEIGHT - BOX_WIDTH,
+ -(WIDTH >> 1), HEIGHT,
+ (WIDTH >> 1), HEIGHT,
+ (WIDTH >> 1), HEIGHT - BOX_WIDTH
+};
+
+#define WINDOW_WIDTH(count) (WIDTH * (count) + (SPACE << 1))
+#define WINDOW_HEIGHT (HEIGHT + (SPACE << 1))
+
+#define GET_SWITCH_DISPLAY(d) \
+ ((SwitchDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define SWITCH_DISPLAY(d) \
+ SwitchDisplay *sd = GET_SWITCH_DISPLAY (d)
+
+#define GET_SWITCH_SCREEN(s, sd) \
+ ((SwitchScreen *) (s)->base.privates[(sd)->screenPrivateIndex].ptr)
+
+#define SWITCH_SCREEN(s) \
+ SwitchScreen *ss = GET_SWITCH_SCREEN (s, GET_SWITCH_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+switchGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ SWITCH_SCREEN (screen);
+
+ *count = NUM_OPTIONS (ss);
+ return ss->opt;
+}
+
+static Bool
+switchSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ SWITCH_SCREEN (screen);
+
+ o = compFindOption (ss->opt, NUM_OPTIONS (ss), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case SWITCH_SCREEN_OPTION_ZOOM:
+ if (compSetFloatOption (o, value))
+ {
+ if (o->value.f < 0.05f)
+ {
+ ss->zooming = FALSE;
+ ss->zoom = 0.0f;
+ }
+ else
+ {
+ ss->zooming = TRUE;
+ ss->zoom = o->value.f / 30.0f;
+ }
+
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetScreenOption (screen, o, value);
+ }
+
+ return FALSE;
+}
+
+static void
+setSelectedWindowHint (CompScreen *s)
+{
+ SWITCH_DISPLAY (s->display);
+ SWITCH_SCREEN (s);
+
+ XChangeProperty (s->display->display, ss->popupWindow, sd->selectWinAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &ss->selectedWindow, 1);
+}
+
+static Bool
+isSwitchWin (CompWindow *w)
+{
+ SWITCH_SCREEN (w->screen);
+
+ if (!w->mapNum || w->attrib.map_state != IsViewable)
+ {
+ if (ss->opt[SWITCH_SCREEN_OPTION_MINIMIZED].value.b)
+ {
+ if (!w->minimized && !w->inShowDesktopMode && !w->shaded)
+ return FALSE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+
+ if (!(w->inputHint || (w->protocols & CompWindowProtocolTakeFocusMask)))
+ return FALSE;
+
+ if (w->attrib.override_redirect)
+ return FALSE;
+
+ if (ss->selection == Panels)
+ {
+ if (!(w->type & (CompWindowTypeDockMask | CompWindowTypeDesktopMask)))
+ return FALSE;
+ }
+ else
+ {
+ CompMatch *match;
+
+ if (w->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))
+ return FALSE;
+
+ if (w->state & CompWindowStateSkipTaskbarMask)
+ return FALSE;
+
+ match = &ss->opt[SWITCH_SCREEN_OPTION_WINDOW_MATCH].value.match;
+ if (!matchEval (match, w))
+ return FALSE;
+
+ }
+
+ if (ss->selection == CurrentViewport)
+ {
+ if (!w->mapNum || w->attrib.map_state != IsViewable)
+ {
+ if (w->serverX + w->width <= 0 ||
+ w->serverY + w->height <= 0 ||
+ w->serverX >= w->screen->width ||
+ w->serverY >= w->screen->height)
+ return FALSE;
+ }
+ else
+ {
+ if (!(*w->screen->focusWindow) (w))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+static void
+switchActivateEvent (CompScreen *s,
+ Bool activating)
+{
+ CompOption o[2];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "root";
+ o[0].value.i = s->root;
+
+ o[1].type = CompOptionTypeBool;
+ o[1].name = "active";
+ o[1].value.b = activating;
+
+ (*s->display->handleCompizEvent) (s->display, "switcher", "activate", o, 2);
+}
+
+static int
+compareWindows (const void *elem1,
+ const void *elem2)
+{
+ CompWindow *w1 = *((CompWindow **) elem1);
+ CompWindow *w2 = *((CompWindow **) elem2);
+
+ if (w1->mapNum && !w2->mapNum)
+ return -1;
+
+ if (w2->mapNum && !w1->mapNum)
+ return 1;
+
+ return w2->activeNum - w1->activeNum;
+}
+
+static void
+switchAddWindowToList (CompScreen *s,
+ CompWindow *w)
+{
+ SWITCH_SCREEN (s);
+
+ if (ss->windowsSize <= ss->nWindows)
+ {
+ ss->windows = realloc (ss->windows,
+ sizeof (CompWindow *) * (ss->nWindows + 32));
+ if (!ss->windows)
+ return;
+
+ ss->windowsSize = ss->nWindows + 32;
+ }
+
+ ss->windows[ss->nWindows++] = w;
+}
+
+static void
+switchUpdateWindowList (CompScreen *s,
+ int count)
+{
+ int x, y;
+
+ SWITCH_SCREEN (s);
+
+ if (count > 1)
+ {
+ count -= (count + 1) & 1;
+ if (count < 3)
+ count = 3;
+ }
+
+ ss->pos = ((count >> 1) - ss->nWindows) * WIDTH;
+ ss->move = 0;
+
+ ss->selectedWindow = ss->windows[0]->id;
+
+ x = s->outputDev[s->currentOutputDev].region.extents.x1 +
+ s->outputDev[s->currentOutputDev].width / 2;
+ y = s->outputDev[s->currentOutputDev].region.extents.y1 +
+ s->outputDev[s->currentOutputDev].height / 2;
+
+ if (ss->popupWindow)
+ XMoveResizeWindow (s->display->display, ss->popupWindow,
+ x - WINDOW_WIDTH (count) / 2,
+ y - WINDOW_HEIGHT / 2,
+ WINDOW_WIDTH (count),
+ WINDOW_HEIGHT);
+}
+
+static void
+switchCreateWindowList (CompScreen *s,
+ int count)
+{
+ CompWindow *w;
+
+ SWITCH_SCREEN (s);
+
+ ss->nWindows = 0;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (isSwitchWin (w))
+ switchAddWindowToList (s, w);
+ }
+
+ qsort (ss->windows, ss->nWindows, sizeof (CompWindow *), compareWindows);
+
+ if (ss->nWindows == 2)
+ {
+ switchAddWindowToList (s, ss->windows[0]);
+ switchAddWindowToList (s, ss->windows[1]);
+ }
+
+ switchUpdateWindowList (s, count);
+}
+
+static void
+switchToWindow (CompScreen *s,
+ Bool toNext)
+{
+ CompWindow *w;
+ int cur;
+
+ SWITCH_SCREEN (s);
+
+ if (!ss->grabIndex)
+ return;
+
+ for (cur = 0; cur < ss->nWindows; cur++)
+ {
+ if (ss->windows[cur]->id == ss->selectedWindow)
+ break;
+ }
+
+ if (cur == ss->nWindows)
+ return;
+
+ if (toNext)
+ w = ss->windows[(cur + 1) % ss->nWindows];
+ else
+ w = ss->windows[(cur + ss->nWindows - 1) % ss->nWindows];
+
+ if (w)
+ {
+ Window old = ss->selectedWindow;
+
+ if (ss->selection == AllViewports &&
+ ss->opt[SWITCH_SCREEN_OPTION_AUTO_ROTATE].value.b)
+ {
+ XEvent xev;
+ int x, y;
+
+ defaultViewportForWindow (w, &x, &y);
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = s->display->display;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = s->display->desktopViewportAtom;
+ xev.xclient.window = s->root;
+
+ xev.xclient.data.l[0] = x * s->width;
+ xev.xclient.data.l[1] = y * s->height;
+ xev.xclient.data.l[2] = 0;
+ xev.xclient.data.l[3] = 0;
+ xev.xclient.data.l[4] = 0;
+
+ XSendEvent (s->display->display, s->root, FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &xev);
+ }
+
+ ss->lastActiveNum = w->activeNum;
+ ss->selectedWindow = w->id;
+
+ if (!ss->zoomedWindow)
+ ss->zoomedWindow = ss->selectedWindow;
+
+ if (old != w->id)
+ {
+ if (toNext)
+ ss->move -= WIDTH;
+ else
+ ss->move += WIDTH;
+
+ ss->moreAdjust = 1;
+ }
+
+ if (ss->popupWindow)
+ {
+ CompWindow *popup;
+
+ popup = findWindowAtScreen (s, ss->popupWindow);
+ if (popup)
+ addWindowDamage (popup);
+
+ setSelectedWindowHint (s);
+ }
+
+ addWindowDamage (w);
+
+ if (old)
+ {
+ w = findWindowAtScreen (s, old);
+ if (w)
+ addWindowDamage (w);
+ }
+ }
+}
+
+static int
+switchCountWindows (CompScreen *s)
+{
+ CompWindow *w;
+ int count = 0;
+
+ for (w = s->windows; w && count < 5; w = w->next)
+ if (isSwitchWin (w))
+ count++;
+
+ if (count == 5 && s->width <= WINDOW_WIDTH (5))
+ count = 3;
+
+ return count;
+}
+
+static Visual *
+findArgbVisual (Display *dpy, int scr)
+{
+ XVisualInfo *xvi;
+ XVisualInfo template;
+ int nvi;
+ int i;
+ XRenderPictFormat *format;
+ Visual *visual;
+
+ template.screen = scr;
+ template.depth = 32;
+ template.class = TrueColor;
+
+ xvi = XGetVisualInfo (dpy,
+ VisualScreenMask |
+ VisualDepthMask |
+ VisualClassMask,
+ &template,
+ &nvi);
+ if (!xvi)
+ return 0;
+
+ visual = 0;
+ for (i = 0; i < nvi; i++)
+ {
+ format = XRenderFindVisualFormat (dpy, xvi[i].visual);
+ if (format->type == PictTypeDirect && format->direct.alphaMask)
+ {
+ visual = xvi[i].visual;
+ break;
+ }
+ }
+
+ XFree (xvi);
+
+ return visual;
+}
+
+static void
+switchInitiate (CompScreen *s,
+ SwitchWindowSelection selection,
+ Bool showPopup)
+{
+ int count;
+
+ SWITCH_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "switcher", "scale", "cube", 0))
+ return;
+
+ ss->selection = selection;
+ ss->selectedWindow = None;
+
+ count = switchCountWindows (s);
+ if (count < 1)
+ return;
+
+ if (!ss->popupWindow && showPopup)
+ {
+ Display *dpy = s->display->display;
+ XSizeHints xsh;
+ XWMHints xwmh;
+ XClassHint xch;
+ Atom state[4];
+ int nState = 0;
+ XSetWindowAttributes attr;
+ Visual *visual;
+
+ visual = findArgbVisual (dpy, s->screenNum);
+ if (!visual)
+ return;
+
+ if (count > 1)
+ {
+ count -= (count + 1) & 1;
+ if (count < 3)
+ count = 3;
+ }
+
+ xsh.flags = PSize | PWinGravity;
+ xsh.width = WINDOW_WIDTH (count);
+ xsh.height = WINDOW_HEIGHT;
+ xsh.win_gravity = StaticGravity;
+
+ xwmh.flags = InputHint;
+ xwmh.input = 0;
+
+ xch.res_name = "compiz";
+ xch.res_class = "switcher-window";
+
+ attr.background_pixel = 0;
+ attr.border_pixel = 0;
+ attr.colormap = XCreateColormap (dpy, s->root, visual,
+ AllocNone);
+
+ ss->popupWindow =
+ XCreateWindow (dpy, s->root,
+ s->width / 2 - xsh.width / 2,
+ s->height / 2 - xsh.height / 2,
+ xsh.width, xsh.height, 0,
+ 32, InputOutput, visual,
+ CWBackPixel | CWBorderPixel | CWColormap, &attr);
+
+ XSetWMProperties (dpy, ss->popupWindow, NULL, NULL,
+ programArgv, programArgc,
+ &xsh, &xwmh, &xch);
+
+ state[nState++] = s->display->winStateAboveAtom;
+ state[nState++] = s->display->winStateStickyAtom;
+ state[nState++] = s->display->winStateSkipTaskbarAtom;
+ state[nState++] = s->display->winStateSkipPagerAtom;
+
+ XChangeProperty (dpy, ss->popupWindow,
+ s->display->winStateAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) state, nState);
+
+ XChangeProperty (dpy, ss->popupWindow,
+ s->display->winTypeAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) &s->display->winTypeUtilAtom, 1);
+
+ setWindowProp (s->display, ss->popupWindow,
+ s->display->winDesktopAtom,
+ 0xffffffff);
+
+ setSelectedWindowHint (s);
+ }
+
+ if (!ss->grabIndex)
+ ss->grabIndex = pushScreenGrab (s, s->invisibleCursor, "switcher");
+
+ if (ss->grabIndex)
+ {
+ if (!ss->switching)
+ {
+ ss->lastActiveNum = s->activeNum;
+
+ switchCreateWindowList (s, count);
+
+ ss->sTranslate = ss->zoom;
+
+ if (ss->popupWindow && showPopup)
+ {
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, ss->popupWindow);
+ if (w && (w->state & CompWindowStateHiddenMask))
+ {
+ w->hidden = FALSE;
+ showWindow (w);
+ }
+ else
+ {
+ XMapWindow (s->display->display, ss->popupWindow);
+ }
+ }
+
+ switchActivateEvent (s, TRUE);
+ }
+
+ damageScreen (s);
+
+ ss->switching = TRUE;
+ ss->moreAdjust = 1;
+ }
+}
+
+static Bool
+switchTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ SWITCH_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (ss->grabIndex)
+ {
+ CompWindow *w;
+
+ if (ss->popupWindow)
+ {
+ w = findWindowAtScreen (s, ss->popupWindow);
+ if (w && w->managed && w->mapNum)
+ {
+ w->hidden = TRUE;
+ hideWindow (w);
+ }
+ else
+ {
+ XUnmapWindow (s->display->display, ss->popupWindow);
+ }
+ }
+
+ ss->switching = FALSE;
+
+ if (state & CompActionStateCancel)
+ {
+ ss->selectedWindow = None;
+ ss->zoomedWindow = None;
+ }
+
+ if (state && ss->selectedWindow)
+ {
+ w = findWindowAtScreen (s, ss->selectedWindow);
+ if (w)
+ sendWindowActivationRequest (w->screen, w->id);
+ }
+
+ removeScreenGrab (s, ss->grabIndex, 0);
+ ss->grabIndex = 0;
+
+ if (!ss->zooming)
+ {
+ ss->selectedWindow = None;
+ ss->zoomedWindow = None;
+
+ switchActivateEvent (s, FALSE);
+ }
+ else
+ {
+ ss->moreAdjust = 1;
+ }
+
+ ss->selectedWindow = None;
+ setSelectedWindowHint (s);
+
+ ss->lastActiveNum = 0;
+
+ damageScreen (s);
+ }
+ }
+
+ if (action)
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static Bool
+switchInitiateCommon (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption,
+ SwitchWindowSelection selection,
+ Bool showPopup,
+ Bool nextWindow)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ SWITCH_SCREEN (s);
+
+ if (!ss->switching)
+ {
+ switchInitiate (s, selection, showPopup);
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+
+ if (state & CompActionStateInitEdge)
+ action->state |= CompActionStateTermEdge;
+ else if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+ }
+
+ switchToWindow (s, nextWindow);
+ }
+
+ return FALSE;
+}
+
+static Bool
+switchNext (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ CurrentViewport, TRUE, TRUE);
+}
+
+static Bool
+switchPrev (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ CurrentViewport, TRUE, FALSE);
+}
+
+static Bool
+switchNextAll (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ AllViewports, TRUE, TRUE);
+}
+
+static Bool
+switchPrevAll (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ AllViewports, TRUE, FALSE);
+}
+
+static Bool
+switchNextNoPopup (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ CurrentViewport, FALSE, TRUE);
+}
+
+static Bool
+switchPrevNoPopup (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ CurrentViewport, FALSE, FALSE);
+}
+
+static Bool
+switchNextPanel (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ Panels, FALSE, TRUE);
+}
+
+static Bool
+switchPrevPanel (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ return switchInitiateCommon (d, action, state, option, nOption,
+ Panels, FALSE, FALSE);
+}
+
+static void
+switchWindowRemove (CompDisplay *d,
+ Window id)
+{
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, id);
+ if (w)
+ {
+ Bool inList = FALSE;
+ int count, j, i = 0;
+ Window selected, old;
+
+ SWITCH_SCREEN (w->screen);
+
+ if (isSwitchWin (w))
+ return;
+
+ old = selected = ss->selectedWindow;
+
+ while (i < ss->nWindows)
+ {
+ if (ss->windows[i] == w)
+ {
+ inList = TRUE;
+
+ if (w->id == selected)
+ {
+ if (i < ss->nWindows)
+ selected = ss->windows[i + 1]->id;
+ else
+ selected = ss->windows[0]->id;
+ }
+
+ ss->nWindows--;
+ for (j = i; j < ss->nWindows; j++)
+ ss->windows[j] = ss->windows[j + 1];
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if (!inList)
+ return;
+
+ count = ss->nWindows;
+
+ if (ss->nWindows == 2)
+ {
+ if (ss->windows[0] == ss->windows[1])
+ {
+ ss->nWindows--;
+ count = 1;
+ }
+ else
+ {
+ switchAddWindowToList (w->screen, ss->windows[0]);
+ switchAddWindowToList (w->screen, ss->windows[1]);
+ }
+ }
+
+ if (ss->nWindows == 0)
+ {
+ CompOption o;
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = w->screen->root;
+
+ switchTerminate (d, NULL, 0, &o, 1);
+ return;
+ }
+
+ if (!ss->grabIndex)
+ return;
+
+ switchUpdateWindowList (w->screen, count);
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ ss->selectedWindow = ss->windows[i]->id;
+
+ if (ss->selectedWindow == selected)
+ break;
+
+ ss->pos -= WIDTH;
+ if (ss->pos < -ss->nWindows * WIDTH)
+ ss->pos += ss->nWindows * WIDTH;
+ }
+
+ if (ss->popupWindow)
+ {
+ CompWindow *popup;
+
+ popup = findWindowAtScreen (w->screen, ss->popupWindow);
+ if (popup)
+ addWindowDamage (popup);
+
+ setSelectedWindowHint (w->screen);
+ }
+
+ if (old != ss->selectedWindow)
+ {
+ addWindowDamage (w);
+
+ w = findWindowAtScreen (w->screen, old);
+ if (w)
+ addWindowDamage (w);
+
+ ss->moreAdjust = 1;
+ }
+ }
+}
+
+static void
+updateForegroundColor (CompScreen *s)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *propData;
+
+ SWITCH_SCREEN (s);
+ SWITCH_DISPLAY (s->display);
+
+ if (!ss->popupWindow)
+ return;
+
+
+ result = XGetWindowProperty (s->display->display, ss->popupWindow,
+ sd->selectFgColorAtom, 0L, 4L, FALSE,
+ XA_INTEGER, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n == 3 || n == 4)
+ {
+ long *data = (long *) propData;
+
+ ss->fgColor[0] = MIN (0xffff, data[0]);
+ ss->fgColor[1] = MIN (0xffff, data[1]);
+ ss->fgColor[2] = MIN (0xffff, data[2]);
+
+ if (n == 4)
+ ss->fgColor[3] = MIN (0xffff, data[3]);
+ }
+
+ XFree (propData);
+ }
+ else
+ {
+ ss->fgColor[0] = 0;
+ ss->fgColor[1] = 0;
+ ss->fgColor[2] = 0;
+ ss->fgColor[3] = 0xffff;
+ }
+}
+
+static void
+switchHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompWindow *w;
+ SWITCH_DISPLAY (d);
+
+ switch (event->type) {
+ w = findWindowAtDisplay (d, event->xmap.window);
+ if (w)
+ {
+ SWITCH_SCREEN (w->screen);
+
+ if (w->id == ss->popupWindow)
+ {
+ w->wmType = getWindowType (d, w->id);
+ recalcWindowType (w);
+ recalcWindowActions (w);
+ updateWindowClassHints (w);
+ }
+ }
+ break;
+ }
+
+ UNWRAP (sd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (sd, d, handleEvent, switchHandleEvent);
+
+ switch (event->type) {
+ case UnmapNotify:
+ switchWindowRemove (d, event->xunmap.window);
+ break;
+ case DestroyNotify:
+ switchWindowRemove (d, event->xdestroywindow.window);
+ break;
+ case PropertyNotify:
+ if (event->xproperty.atom == sd->selectFgColorAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ SWITCH_SCREEN (w->screen);
+
+ if (event->xproperty.window == ss->popupWindow)
+ updateForegroundColor (w->screen);
+ }
+ }
+
+ default:
+ break;
+ }
+}
+
+static int
+adjustSwitchVelocity (CompScreen *s)
+{
+ float dx, adjust, amount;
+
+ SWITCH_SCREEN (s);
+
+ dx = ss->move;
+
+ adjust = dx * 0.15f;
+ amount = fabs (dx) * 1.5f;
+ if (amount < 0.2f)
+ amount = 0.2f;
+ else if (amount > 2.0f)
+ amount = 2.0f;
+
+ ss->mVelocity = (amount * ss->mVelocity + adjust) / (amount + 1.0f);
+
+ if (ss->zooming)
+ {
+ float dt, ds;
+
+ if (ss->switching)
+ dt = ss->zoom - ss->translate;
+ else
+ dt = 0.0f - ss->translate;
+
+ adjust = dt * 0.15f;
+ amount = fabs (dt) * 1.5f;
+ if (amount < 0.2f)
+ amount = 0.2f;
+ else if (amount > 2.0f)
+ amount = 2.0f;
+
+ ss->tVelocity = (amount * ss->tVelocity + adjust) / (amount + 1.0f);
+
+ if (ss->selectedWindow == ss->zoomedWindow)
+ ds = ss->zoom - ss->sTranslate;
+ else
+ ds = 0.0f - ss->sTranslate;
+
+ adjust = ds * 0.5f;
+ amount = fabs (ds) * 5.0f;
+ if (amount < 1.0f)
+ amount = 1.0f;
+ else if (amount > 6.0f)
+ amount = 6.0f;
+
+ ss->sVelocity = (amount * ss->sVelocity + adjust) / (amount + 1.0f);
+
+ if (ss->selectedWindow == ss->zoomedWindow)
+ {
+ if (fabs (dx) < 0.1f && fabs (ss->mVelocity) < 0.2f &&
+ fabs (dt) < 0.001f && fabs (ss->tVelocity) < 0.001f &&
+ fabs (ds) < 0.001f && fabs (ss->sVelocity) < 0.001f)
+ {
+ ss->mVelocity = ss->tVelocity = ss->sVelocity = 0.0f;
+ return 0;
+ }
+ }
+ }
+ else
+ {
+ if (fabs (dx) < 0.1f && fabs (ss->mVelocity) < 0.2f)
+ {
+ ss->mVelocity = 0.0f;
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+static void
+switchPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ SWITCH_SCREEN (s);
+
+ if (ss->moreAdjust)
+ {
+ int steps, m;
+ float amount, chunk;
+
+ amount = msSinceLastPaint * 0.05f *
+ ss->opt[SWITCH_SCREEN_OPTION_SPEED].value.f;
+ steps = amount /
+ (0.5f * ss->opt[SWITCH_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+ chunk = amount / (float) steps;
+
+ while (steps--)
+ {
+ ss->moreAdjust = adjustSwitchVelocity (s);
+ if (!ss->moreAdjust)
+ {
+ ss->pos += ss->move;
+ ss->move = 0;
+
+ if (ss->zooming)
+ {
+ if (ss->switching)
+ {
+ ss->translate = ss->zoom;
+ ss->sTranslate = ss->zoom;
+ }
+ else
+ {
+ ss->translate = 0.0f;
+ ss->sTranslate = ss->zoom;
+
+ ss->selectedWindow = None;
+ ss->zoomedWindow = None;
+
+ if (ss->grabIndex)
+ {
+ removeScreenGrab (s, ss->grabIndex, 0);
+ ss->grabIndex = 0;
+ }
+
+ switchActivateEvent (s, FALSE);
+ }
+ }
+ break;
+ }
+
+ m = ss->mVelocity * chunk;
+ if (!m)
+ {
+ if (ss->mVelocity)
+ m = (ss->move > 0) ? 1 : -1;
+ }
+
+ ss->move -= m;
+ ss->pos += m;
+ if (ss->pos < -ss->nWindows * WIDTH)
+ ss->pos += ss->nWindows * WIDTH;
+ else if (ss->pos > 0)
+ ss->pos -= ss->nWindows * WIDTH;
+
+ ss->translate += ss->tVelocity * chunk;
+ ss->sTranslate += ss->sVelocity * chunk;
+
+ if (ss->selectedWindow != ss->zoomedWindow)
+ {
+ if (ss->sTranslate < 0.01f)
+ ss->zoomedWindow = ss->selectedWindow;
+ }
+ }
+ }
+
+ UNWRAP (ss, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ss, s, preparePaintScreen, switchPreparePaintScreen);
+}
+
+static Bool
+switchPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ SWITCH_SCREEN (s);
+
+ ss->zoomMask = ZOOMED_WINDOW_MASK | NORMAL_WINDOW_MASK;
+
+ if (ss->grabIndex || (ss->zooming && ss->translate > 0.001f))
+ {
+ CompTransform sTransform = *transform;
+ CompWindow *zoomed;
+ CompWindow *switcher;
+ Window zoomedAbove = None;
+ Bool saveDestroyed = FALSE;
+
+ if (ss->zooming)
+ {
+ mask &= ~PAINT_SCREEN_REGION_MASK;
+ mask |= PAINT_SCREEN_TRANSFORMED_MASK | PAINT_SCREEN_CLEAR_MASK;
+
+ matrixTranslate (&sTransform, 0.0f, 0.0f, -ss->translate);
+
+ ss->zoomMask = NORMAL_WINDOW_MASK;
+ }
+
+ switcher = findWindowAtScreen (s, ss->popupWindow);
+ if (switcher)
+ {
+ saveDestroyed = switcher->destroyed;
+ switcher->destroyed = TRUE;
+ }
+
+ if (ss->opt[SWITCH_SCREEN_OPTION_BRINGTOFRONT].value.b)
+ {
+ zoomed = findWindowAtScreen (s, ss->zoomedWindow);
+ if (zoomed)
+ {
+ CompWindow *w;
+
+ for (w = zoomed->prev; w && w->id <= 1; w = w->prev);
+ zoomedAbove = (w) ? w->id : None;
+
+ unhookWindowFromScreen (s, zoomed);
+ insertWindowIntoScreen (s, zoomed, s->reverseWindows->id);
+ }
+ }
+ else
+ {
+ zoomed = NULL;
+ }
+
+ UNWRAP (ss, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, &sTransform,
+ region, output, mask);
+ WRAP (ss, s, paintOutput, switchPaintOutput);
+
+ if (ss->zooming)
+ {
+ float zTranslate;
+
+ mask &= ~PAINT_SCREEN_CLEAR_MASK;
+ mask |= PAINT_SCREEN_NO_BACKGROUND_MASK;
+
+ ss->zoomMask = ZOOMED_WINDOW_MASK;
+
+ zTranslate = MIN (ss->sTranslate, ss->translate);
+ matrixTranslate (&sTransform, 0.0f, 0.0f, zTranslate);
+
+ UNWRAP (ss, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, &sTransform, region,
+ output, mask);
+ WRAP (ss, s, paintOutput, switchPaintOutput);
+ }
+
+ if (zoomed)
+ {
+ unhookWindowFromScreen (s, zoomed);
+ insertWindowIntoScreen (s, zoomed, zoomedAbove);
+ }
+
+ if (switcher)
+ {
+ sTransform = *transform;
+
+ switcher->destroyed = saveDestroyed;
+
+ transformToScreenSpace (s, output, -DEFAULT_Z_CAMERA, &sTransform);
+
+ glPushMatrix ();
+ glLoadMatrixf (sTransform.m);
+
+ if (!switcher->destroyed &&
+ switcher->attrib.map_state == IsViewable &&
+ switcher->damaged)
+ {
+ (*s->paintWindow) (switcher, &switcher->paint, &sTransform,
+ &infiniteRegion, 0);
+ }
+
+ glPopMatrix ();
+ }
+ }
+ else
+ {
+ UNWRAP (ss, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output,
+ mask);
+ WRAP (ss, s, paintOutput, switchPaintOutput);
+ }
+
+ return status;
+}
+
+static void
+switchDonePaintScreen (CompScreen *s)
+{
+ SWITCH_SCREEN (s);
+
+ if ((ss->grabIndex || ss->zooming) && ss->moreAdjust)
+ {
+ if (ss->zooming)
+ {
+ damageScreen (s);
+ }
+ else
+ {
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, ss->popupWindow);
+ if (w)
+ addWindowDamage (w);
+ }
+ }
+
+ UNWRAP (ss, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (ss, s, donePaintScreen, switchDonePaintScreen);
+}
+
+static void
+switchPaintThumb (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ unsigned int mask,
+ int x,
+ int y,
+ int x1,
+ int x2)
+{
+ WindowPaintAttrib sAttrib = *attrib;
+ int wx, wy;
+ float width, height;
+ CompIcon *icon = NULL;
+
+ mask |= PAINT_WINDOW_TRANSFORMED_MASK;
+
+ if (w->mapNum)
+ {
+ if (!w->texture->pixmap && !w->bindFailed)
+ bindWindow (w);
+ }
+
+ if (w->texture->pixmap)
+ {
+ AddWindowGeometryProc oldAddWindowGeometry;
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+ int ww, wh;
+
+ SWITCH_SCREEN (w->screen);
+
+ width = WIDTH - (SPACE << 1);
+ height = HEIGHT - (SPACE << 1);
+
+ ww = w->width + w->input.left + w->input.right;
+ wh = w->height + w->input.top + w->input.bottom;
+
+ if (ww > width)
+ sAttrib.xScale = width / ww;
+ else
+ sAttrib.xScale = 1.0f;
+
+ if (wh > height)
+ sAttrib.yScale = height / wh;
+ else
+ sAttrib.yScale = 1.0f;
+
+ if (sAttrib.xScale < sAttrib.yScale)
+ sAttrib.yScale = sAttrib.xScale;
+ else
+ sAttrib.xScale = sAttrib.yScale;
+
+ width = ww * sAttrib.xScale;
+ height = wh * sAttrib.yScale;
+
+ wx = x + SPACE + ((WIDTH - (SPACE << 1)) - width) / 2;
+ wy = y + SPACE + ((HEIGHT - (SPACE << 1)) - height) / 2;
+
+ sAttrib.xTranslate = wx - w->attrib.x + w->input.left * sAttrib.xScale;
+ sAttrib.yTranslate = wy - w->attrib.y + w->input.top * sAttrib.yScale;
+
+ initFragmentAttrib (&fragment, &sAttrib);
+
+ if (w->alpha || fragment.opacity != OPAQUE)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ matrixTranslate (&wTransform, w->attrib.x, w->attrib.y, 0.0f);
+ matrixScale (&wTransform, sAttrib.xScale, sAttrib.yScale, 1.0f);
+ matrixTranslate (&wTransform,
+ sAttrib.xTranslate / sAttrib.xScale - w->attrib.x,
+ sAttrib.yTranslate / sAttrib.yScale - w->attrib.y,
+ 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ /* XXX: replacing the addWindowGeometry function like this is
+ very ugly but necessary until the vertex stage has been made
+ fully pluggable. */
+ oldAddWindowGeometry = w->screen->addWindowGeometry;
+ w->screen->addWindowGeometry = addWindowGeometry;
+ (w->screen->drawWindow) (w, &wTransform, &fragment, &infiniteRegion,
+ mask);
+ w->screen->addWindowGeometry = oldAddWindowGeometry;
+
+ glPopMatrix ();
+
+ if (ss->opt[SWITCH_SCREEN_OPTION_ICON].value.b)
+ {
+ icon = getWindowIcon (w, ICON_SIZE, ICON_SIZE);
+ if (icon)
+ {
+ sAttrib.xScale = sAttrib.yScale = 1.0f;
+
+ wx = x + WIDTH - icon->width - SPACE;
+ wy = y + HEIGHT - icon->height - SPACE;
+ }
+ }
+ }
+ else
+ {
+ width = WIDTH - (WIDTH >> 2);
+ height = HEIGHT - (HEIGHT >> 2);
+
+ icon = getWindowIcon (w, width, height);
+ if (!icon)
+ icon = w->screen->defaultIcon;
+
+ if (icon)
+ {
+ int iw, ih;
+
+ iw = width - SPACE;
+ ih = height - SPACE;
+
+ if (icon->width < (iw >> 1))
+ sAttrib.xScale = (iw / icon->width);
+ else
+ sAttrib.xScale = 1.0f;
+
+ if (icon->height < (ih >> 1))
+ sAttrib.yScale = (ih / icon->height);
+ else
+ sAttrib.yScale = 1.0f;
+
+ if (sAttrib.xScale < sAttrib.yScale)
+ sAttrib.yScale = sAttrib.xScale;
+ else
+ sAttrib.xScale = sAttrib.yScale;
+
+ width = icon->width * sAttrib.xScale;
+ height = icon->height * sAttrib.yScale;
+
+ wx = x + SPACE + ((WIDTH - (SPACE << 1)) - width) / 2;
+ wy = y + SPACE + ((HEIGHT - (SPACE << 1)) - height) / 2;
+ }
+ }
+
+ if (icon && (icon->texture.name || iconToTexture (w->screen, icon)))
+ {
+ REGION iconReg;
+ CompMatrix matrix;
+
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ iconReg.rects = &iconReg.extents;
+ iconReg.numRects = 1;
+
+ iconReg.extents.x1 = w->attrib.x;
+ iconReg.extents.y1 = w->attrib.y;
+ iconReg.extents.x2 = w->attrib.x + icon->width;
+ iconReg.extents.y2 = w->attrib.y + icon->height;
+
+ matrix = icon->texture.matrix;
+ matrix.x0 -= (w->attrib.x * icon->texture.matrix.xx);
+ matrix.y0 -= (w->attrib.y * icon->texture.matrix.yy);
+
+ sAttrib.xTranslate = wx - w->attrib.x;
+ sAttrib.yTranslate = wy - w->attrib.y;
+
+ w->vCount = w->indexCount = 0;
+ addWindowGeometry (w, &matrix, 1, &iconReg, &infiniteRegion);
+ if (w->vCount)
+ {
+ FragmentAttrib fragment;
+ CompTransform wTransform = *transform;
+
+ initFragmentAttrib (&fragment, &sAttrib);
+
+ matrixTranslate (&wTransform, w->attrib.x, w->attrib.y, 0.0f);
+ matrixScale (&wTransform, sAttrib.xScale, sAttrib.yScale, 1.0f);
+ matrixTranslate (&wTransform,
+ sAttrib.xTranslate / sAttrib.xScale - w->attrib.x,
+ sAttrib.yTranslate / sAttrib.yScale - w->attrib.y,
+ 0.0f);
+
+ glPushMatrix ();
+ glLoadMatrixf (wTransform.m);
+
+ (*w->screen->drawWindowTexture) (w,
+ &icon->texture, &fragment,
+ mask);
+
+ glPopMatrix ();
+ }
+ }
+}
+
+static Bool
+switchPaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+ int zoomType = NORMAL_WINDOW_MASK;
+ Bool status;
+
+ SWITCH_SCREEN (s);
+
+ if (w->id == ss->popupWindow)
+ {
+ GLenum filter;
+ int x, y, x1, x2, cx, i;
+ unsigned short color[4];
+
+ if (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK)
+ return FALSE;
+
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, switchPaintWindow);
+
+ if (!(mask & PAINT_WINDOW_TRANSFORMED_MASK) && region->numRects == 0)
+ return TRUE;
+
+ x1 = w->attrib.x + SPACE;
+ x2 = w->attrib.x + w->width - SPACE;
+
+ x = x1 + ss->pos;
+ y = w->attrib.y + SPACE;
+
+ filter = s->display->textureFilter;
+
+ if (ss->opt[SWITCH_SCREEN_OPTION_MIPMAP].value.b)
+ s->display->textureFilter = GL_LINEAR_MIPMAP_LINEAR;
+
+ glPushAttrib (GL_SCISSOR_BIT);
+
+ glEnable (GL_SCISSOR_TEST);
+ glScissor (x1, 0, x2 - x1, w->screen->height);
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ if (x + WIDTH > x1)
+ switchPaintThumb (ss->windows[i], &w->lastPaint, transform,
+ mask, x, y, x1, x2);
+
+ x += WIDTH;
+ }
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ if (x > x2)
+ break;
+
+ switchPaintThumb (ss->windows[i], &w->lastPaint, transform, mask,
+ x, y, x1, x2);
+
+ x += WIDTH;
+ }
+
+ glPopAttrib ();
+
+ s->display->textureFilter = filter;
+
+ cx = w->attrib.x + (w->width >> 1);
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+ for (i = 0; i < 4; i++)
+ color[i] = (unsigned int)ss->fgColor[i] * w->lastPaint.opacity /
+ 0xffff;
+ glColor4usv (color);
+ glPushMatrix ();
+ glTranslatef (cx, y, 0.0f);
+ glVertexPointer (2, GL_FLOAT, 0, _boxVertices);
+ glDrawArrays (GL_QUADS, 0, 16);
+ glPopMatrix ();
+ glColor4usv (defaultColor);
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ }
+ else if (w->id == ss->selectedWindow)
+ {
+ if (ss->opt[SWITCH_SCREEN_OPTION_BRINGTOFRONT].value.b &&
+ ss->selectedWindow == ss->zoomedWindow)
+ zoomType = ZOOMED_WINDOW_MASK;
+
+ if (!(ss->zoomMask & zoomType))
+ return (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK) ?
+ FALSE : TRUE;
+
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, switchPaintWindow);
+ }
+ else if (ss->switching)
+ {
+ WindowPaintAttrib sAttrib = *attrib;
+ GLuint value;
+
+ value = ss->opt[SWITCH_SCREEN_OPTION_SATURATION].value.i;
+ if (value != 100)
+ sAttrib.saturation = sAttrib.saturation * value / 100;
+
+ value = ss->opt[SWITCH_SCREEN_OPTION_BRIGHTNESS].value.i;
+ if (value != 100)
+ sAttrib.brightness = sAttrib.brightness * value / 100;
+
+ if (w->wmType & ~(CompWindowTypeDockMask | CompWindowTypeDesktopMask))
+ {
+ value = ss->opt[SWITCH_SCREEN_OPTION_OPACITY].value.i;
+ if (value != 100)
+ sAttrib.opacity = sAttrib.opacity * value / 100;
+ }
+
+ if (ss->opt[SWITCH_SCREEN_OPTION_BRINGTOFRONT].value.b &&
+ w->id == ss->zoomedWindow)
+ zoomType = ZOOMED_WINDOW_MASK;
+
+ if (!(ss->zoomMask & zoomType))
+ return (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK) ?
+ FALSE : TRUE;
+
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, &sAttrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, switchPaintWindow);
+ }
+ else
+ {
+ if (!(ss->zoomMask & zoomType))
+ return (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK) ?
+ FALSE : TRUE;
+
+ UNWRAP (ss, s, paintWindow);
+ status = (*s->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ss, s, paintWindow, switchPaintWindow);
+ }
+
+ return status;
+}
+
+static Bool
+switchDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status;
+
+ SWITCH_SCREEN (w->screen);
+
+ if (ss->grabIndex)
+ {
+ CompWindow *popup;
+ int i;
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ if (ss->windows[i] == w)
+ {
+ popup = findWindowAtScreen (w->screen, ss->popupWindow);
+ if (popup)
+ addWindowDamage (popup);
+
+ break;
+ }
+ }
+ }
+
+ UNWRAP (ss, w->screen, damageWindowRect);
+ status = (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (ss, w->screen, damageWindowRect, switchDamageWindowRect);
+
+ return status;
+}
+
+static CompOption *
+switchGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ SWITCH_DISPLAY (display);
+
+ *count = NUM_OPTIONS (sd);
+ return sd->opt;
+}
+
+static Bool
+switchSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ SWITCH_DISPLAY (display);
+
+ o = compFindOption (sd->opt, NUM_OPTIONS (sd), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetDisplayOption (display, o, value);
+}
+
+static const CompMetadataOptionInfo switchDisplayOptionInfo[] = {
+ { "next_button", "button", 0, switchNext, switchTerminate },
+ { "next_key", "key", 0, switchNext, switchTerminate },
+ { "prev_button", "button", 0, switchPrev, switchTerminate },
+ { "prev_key", "key", 0, switchPrev, switchTerminate },
+ { "next_all_button", "button", 0, switchNextAll, switchTerminate },
+ { "next_all_key", "key", 0, switchNextAll, switchTerminate },
+ { "prev_all_button", "button", 0, switchPrevAll, switchTerminate },
+ { "prev_all_key", "key", 0, switchPrevAll, switchTerminate },
+ { "next_no_popup_button", "button", 0, switchNextNoPopup,
+ switchTerminate },
+ { "next_no_popup_key", "key", 0, switchNextNoPopup, switchTerminate },
+ { "prev_no_popup_button", "button", 0, switchPrevNoPopup,
+ switchTerminate },
+ { "prev_no_popup_key", "key", 0, switchPrevNoPopup, switchTerminate },
+ { "next_panel_button", "button", 0, switchNextPanel, switchTerminate },
+ { "next_panel_key", "key", 0, switchNextPanel, switchTerminate },
+ { "prev_panel_button", "button", 0, switchPrevPanel, switchTerminate },
+ { "prev_panel_key", "key", 0, switchPrevPanel, switchTerminate }
+};
+
+static Bool
+switchInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ SwitchDisplay *sd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ sd = malloc (sizeof (SwitchDisplay));
+ if (!sd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &switchMetadata,
+ switchDisplayOptionInfo,
+ sd->opt,
+ SWITCH_DISPLAY_OPTION_NUM))
+ {
+ free (sd);
+ return FALSE;
+ }
+
+ sd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (sd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, sd->opt, SWITCH_DISPLAY_OPTION_NUM);
+ free (sd);
+ return FALSE;
+ }
+
+ sd->selectWinAtom = XInternAtom (d->display,
+ DECOR_SWITCH_WINDOW_ATOM_NAME, 0);
+ sd->selectFgColorAtom =
+ XInternAtom (d->display, DECOR_SWITCH_FOREGROUND_COLOR_ATOM_NAME, 0);
+
+ WRAP (sd, d, handleEvent, switchHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = sd;
+
+ return TRUE;
+}
+
+static void
+switchFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ SWITCH_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, sd->screenPrivateIndex);
+
+ UNWRAP (sd, d, handleEvent);
+
+ compFiniDisplayOptions (d, sd->opt, SWITCH_DISPLAY_OPTION_NUM);
+
+ free (sd);
+}
+
+static const CompMetadataOptionInfo switchScreenOptionInfo[] = {
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "window_match", "match", 0, 0, 0 },
+ { "mipmap", "bool", 0, 0, 0 },
+ { "saturation", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "brightness", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "opacity", "int", "<min>0</min><max>100</max>", 0, 0 },
+ { "bring_to_front", "bool", 0, 0, 0 },
+ { "zoom", "float", "<min>0</min>", 0, 0 },
+ { "icon", "bool", 0, 0, 0 },
+ { "minimized", "bool", 0, 0, 0 },
+ { "auto_rotate", "bool", 0, 0, 0 }
+};
+
+static Bool
+switchInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SwitchScreen *ss;
+
+ SWITCH_DISPLAY (s->display);
+
+ ss = malloc (sizeof (SwitchScreen));
+ if (!ss)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &switchMetadata,
+ switchScreenOptionInfo,
+ ss->opt,
+ SWITCH_SCREEN_OPTION_NUM))
+ {
+ free (ss);
+ return FALSE;
+ }
+
+ ss->popupWindow = None;
+
+ ss->selectedWindow = None;
+ ss->zoomedWindow = None;
+
+ ss->lastActiveNum = 0;
+
+ ss->windows = 0;
+ ss->nWindows = 0;
+ ss->windowsSize = 0;
+
+ ss->pos = ss->move = 0;
+
+ ss->switching = FALSE;
+
+ ss->grabIndex = 0;
+
+ ss->zoom = ss->opt[SWITCH_SCREEN_OPTION_ZOOM].value.f / 30.0f;
+
+ ss->zooming = (ss->opt[SWITCH_SCREEN_OPTION_ZOOM].value.f > 0.05f);
+
+ ss->zoomMask = ~0;
+
+ ss->moreAdjust = 0;
+
+ ss->mVelocity = 0.0f;
+ ss->tVelocity = 0.0f;
+ ss->sVelocity = 0.0f;
+
+ ss->translate = 0.0f;
+ ss->sTranslate = 0.0f;
+
+ ss->selection = CurrentViewport;
+
+ ss->fgColor[0] = 0;
+ ss->fgColor[1] = 0;
+ ss->fgColor[2] = 0;
+ ss->fgColor[3] = 0xffff;
+
+ WRAP (ss, s, preparePaintScreen, switchPreparePaintScreen);
+ WRAP (ss, s, donePaintScreen, switchDonePaintScreen);
+ WRAP (ss, s, paintOutput, switchPaintOutput);
+ WRAP (ss, s, paintWindow, switchPaintWindow);
+ WRAP (ss, s, damageWindowRect, switchDamageWindowRect);
+
+ s->base.privates[sd->screenPrivateIndex].ptr = ss;
+
+ return TRUE;
+}
+
+static void
+switchFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ SWITCH_SCREEN (s);
+
+ UNWRAP (ss, s, preparePaintScreen);
+ UNWRAP (ss, s, donePaintScreen);
+ UNWRAP (ss, s, paintOutput);
+ UNWRAP (ss, s, paintWindow);
+ UNWRAP (ss, s, damageWindowRect);
+
+ if (ss->popupWindow)
+ XDestroyWindow (s->display->display, ss->popupWindow);
+
+ if (ss->windows)
+ free (ss->windows);
+
+ compFiniScreenOptions (s, ss->opt, SWITCH_SCREEN_OPTION_NUM);
+
+ free (ss);
+}
+
+static CompBool
+switchInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) switchInitDisplay,
+ (InitPluginObjectProc) switchInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+switchFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) switchFiniDisplay,
+ (FiniPluginObjectProc) switchFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+switchGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) switchGetDisplayOptions,
+ (GetPluginObjectOptionsProc) switchGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+switchSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) switchSetDisplayOption,
+ (SetPluginObjectOptionProc) switchSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+switchInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&switchMetadata,
+ p->vTable->name,
+ switchDisplayOptionInfo,
+ SWITCH_DISPLAY_OPTION_NUM,
+ switchScreenOptionInfo,
+ SWITCH_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&switchMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&switchMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+switchFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&switchMetadata);
+}
+
+static CompMetadata *
+switchGetMetadata (CompPlugin *plugin)
+{
+ return &switchMetadata;
+}
+
+CompPluginVTable switchVTable = {
+ "switcher",
+ switchGetMetadata,
+ switchInit,
+ switchFini,
+ switchInitObject,
+ switchFiniObject,
+ switchGetObjectOptions,
+ switchSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &switchVTable;
+}
diff --git a/plugins/video.c b/plugins/video.c
new file mode 100644
index 0000000..1f035c8
--- /dev/null
+++ b/plugins/video.c
@@ -0,0 +1,1329 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <unistd.h>
+
+#include <compiz-core.h>
+#include <decoration.h>
+
+#include <X11/Xatom.h>
+#include <X11/extensions/shape.h>
+
+/*
+ * compiz composited video
+ *
+ * supported image formats:
+ *
+ * RGB - packed RGB colorspace
+ *
+ * +---------------+
+ * | | width = image-width
+ * | | height = image-height
+ * | RGB |
+ * | | any pixmap depth with a matching
+ * | | fb-config can be used.
+ * +---------------+
+
+ * YV12 - planar YV12 colorspace
+ *
+ * +---------------+
+ * | | width = image-width
+ * | | height = image-height + image-height / 2
+ * | Y | depth = 8
+ * | |
+ * | | alpha only fb-config with pixmap support
+ * +-------+-------+ must be available.
+ * | | |
+ * | V | U |
+ * | | |
+ * +---------------+
+ *
+ */
+
+static CompMetadata videoMetadata;
+
+typedef struct _VideoTexture {
+ struct _VideoTexture *next;
+ int refCount;
+ Pixmap pixmap;
+ int width;
+ int height;
+ Damage damage;
+ CompTexture texture;
+} VideoTexture;
+
+typedef struct _VideoFunction {
+ struct _VideoFunction *next;
+
+ int handle;
+ int target;
+ int param;
+} VideoFunction;
+
+#define IMAGE_FORMAT_RGB 0
+#define IMAGE_FORMAT_YV12 1
+#define IMAGE_FORMAT_NUM 2
+
+static int displayPrivateIndex;
+
+#define VIDEO_DISPLAY_OPTION_YV12 0
+#define VIDEO_DISPLAY_OPTION_NUM 1
+
+typedef struct _VideoDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+ VideoTexture *textures;
+ Atom videoAtom;
+ Atom videoSupportedAtom;
+ Atom videoImageFormatAtom[IMAGE_FORMAT_NUM];
+
+ CompOption opt[VIDEO_DISPLAY_OPTION_NUM];
+} VideoDisplay;
+
+typedef struct _VideoScreen {
+ int windowPrivateIndex;
+
+ DrawWindowProc drawWindow;
+ DrawWindowTextureProc drawWindowTexture;
+ DamageWindowRectProc damageWindowRect;
+
+ WindowMoveNotifyProc windowMoveNotify;
+ WindowResizeNotifyProc windowResizeNotify;
+
+ VideoFunction *yv12Functions;
+
+ Bool imageFormat[IMAGE_FORMAT_NUM];
+} VideoScreen;
+
+typedef struct _VideoSource {
+ VideoTexture *texture;
+ int format;
+ decor_point_t p1;
+ decor_point_t p2;
+ Bool aspect;
+ float aspectRatio;
+ float panScan;
+ int width;
+ int height;
+} VideoSource;
+
+typedef struct _VideoContext {
+ VideoSource *source;
+ int width;
+ int height;
+ REGION box;
+ CompMatrix matrix;
+ Bool scaled;
+ float panX;
+ float panY;
+ Bool full;
+} VideoContext;
+
+typedef struct _VideoWindow {
+ VideoSource *source;
+ VideoContext *context;
+} VideoWindow;
+
+#define GET_VIDEO_DISPLAY(d) \
+ ((VideoDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define VIDEO_DISPLAY(d) \
+ VideoDisplay *vd = GET_VIDEO_DISPLAY (d)
+
+#define GET_VIDEO_SCREEN(s, vd) \
+ ((VideoScreen *) (s)->base.privates[(vd)->screenPrivateIndex].ptr)
+
+#define VIDEO_SCREEN(s) \
+ VideoScreen *vs = GET_VIDEO_SCREEN (s, GET_VIDEO_DISPLAY (s->display))
+
+#define GET_VIDEO_WINDOW(w, vs) \
+ ((VideoWindow *) (w)->base.privates[(vs)->windowPrivateIndex].ptr)
+
+#define VIDEO_WINDOW(w) \
+ VideoWindow *vw = GET_VIDEO_WINDOW (w, \
+ GET_VIDEO_SCREEN (w->screen, \
+ GET_VIDEO_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static void
+videoSetSupportedHint (CompScreen *s)
+{
+ Atom data[16];
+ int i, n = 0;
+
+ VIDEO_DISPLAY (s->display);
+ VIDEO_SCREEN (s);
+
+ for (i = 0; i < IMAGE_FORMAT_NUM; i++)
+ {
+ if (!vs->imageFormat[i])
+ continue;
+
+ if (i == 0 || vd->opt[i - 1].value.b)
+ data[n++] = vd->videoImageFormatAtom[i];
+ }
+
+ XChangeProperty (s->display->display, s->root,
+ vd->videoSupportedAtom, XA_ATOM, 32,
+ PropModeReplace, (unsigned char *) data, n);
+}
+
+static CompOption *
+videoGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ VIDEO_DISPLAY (display);
+
+ *count = NUM_OPTIONS (vd);
+ return vd->opt;
+}
+
+static Bool
+videoSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ VIDEO_DISPLAY (display);
+
+ o = compFindOption (vd->opt, NUM_OPTIONS (vd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case VIDEO_DISPLAY_OPTION_YV12:
+ if (compSetBoolOption (o, value))
+ {
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ videoSetSupportedHint (s);
+ }
+ default:
+ break;
+ }
+
+ return FALSE;
+}
+
+static int
+getYV12FragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int param)
+{
+ VideoFunction *function;
+ CompFunctionData *data;
+ int target;
+
+ VIDEO_SCREEN (s);
+
+ if (texture->target == GL_TEXTURE_2D)
+ target = COMP_FETCH_TARGET_2D;
+ else
+ target = COMP_FETCH_TARGET_RECT;
+
+ for (function = vs->yv12Functions; function; function = function->next)
+ if (function->param == param && function->target == target)
+ return function->handle;
+
+ data = createFunctionData ();
+ if (data)
+ {
+ static char *temp[] = { "uv", "tmp", "position" };
+ int i, handle = 0;
+ char str[1024];
+ Bool ok = TRUE;
+
+ for (i = 0; i < sizeof (temp) / sizeof (temp[0]); i++)
+ ok &= addTempHeaderOpToFunctionData (data, temp[i]);
+
+ snprintf (str, 1024,
+ "MOV position, fragment.texcoord[0];"
+ "MAX position, position, program.env[%d];"
+ "MIN position, position, program.env[%d].zwww;",
+ param, param);
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ if (target == COMP_FETCH_TARGET_RECT)
+ {
+ snprintf (str, 1024,
+ "TEX output, position, texture[0], RECT;"
+ "MOV output, output.a;");
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ if (s->glxPixmapFBConfigs[8].yInverted)
+ {
+ snprintf (str, 1024,
+ "MAD position, position, 0.5, program.env[%d].xy;",
+ param + 1);
+ }
+ else
+ {
+ snprintf (str, 1024,
+ "ADD position, position, program.env[%d].xy;"
+ "MUL position, position, 0.5;",
+ param + 1);
+ }
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "TEX tmp, position, texture[0], RECT;"
+ "MOV uv, tmp.a;"
+ "MAD output, output, 1.164, -0.073;"
+ "ADD position.x, position.x, program.env[%d].z;"
+ "TEX tmp, position, texture[0], RECT;"
+ "MOV uv.y, tmp.a;",
+ param + 1);
+ }
+ else
+ {
+ snprintf (str, 1024,
+ "TEX output, position, texture[0], 2D;"
+ "MOV output, output.a;");
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ if (s->glxPixmapFBConfigs[8].yInverted)
+ {
+ snprintf (str, 1024,
+ "MAD position, position, 0.5, { 0.0, %f };",
+ 2.0f / 3.0f);
+ }
+ else
+ {
+ snprintf (str, 1024,
+ "SUB position, position, { 0.0, %f };"
+ "MUL position, position, 0.5;",
+ 1.0f / 3.0f);
+ }
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "TEX tmp, position, texture[0], 2D;"
+ "MOV uv, tmp.a;"
+ "MAD output, output, 1.164, -0.073;"
+ "ADD position.x, position.x, 0.5;"
+ "TEX tmp, position, texture[0], 2D;"
+ "MOV uv.y, tmp.a;");
+ }
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ snprintf (str, 1024,
+ "SUB uv, uv, { 0.5, 0.5 };"
+ "MAD output.xyz, { 1.596, -0.813, 0.0 }, uv.xxxw, output;"
+ "MAD output.xyz, { 0.0, -0.391, 2.018 }, uv.yyyw, output;"
+ "MOV output.a, 1.0;");
+
+ ok &= addDataOpToFunctionData (data, str);
+
+ if (!ok)
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ function = malloc (sizeof (VideoFunction));
+ if (function)
+ {
+ handle = createFragmentFunction (s, "video", data);
+
+ function->handle = handle;
+ function->target = target;
+ function->param = param;
+
+ function->next = vs->yv12Functions;
+ vs->yv12Functions = function;
+ }
+
+ destroyFunctionData (data);
+
+ return handle;
+ }
+
+ return 0;
+}
+
+static void
+videoDestroyFragmentFunctions (CompScreen *s,
+ VideoFunction **videoFunctions)
+{
+ VideoFunction *function, *next;
+
+ function = *videoFunctions;
+ while (function)
+ {
+ destroyFragmentFunction (s, function->handle);
+
+ next = function->next;
+ free (function);
+ function = next;
+ }
+
+ *videoFunctions = NULL;
+}
+
+static void
+videoDrawWindowTexture (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+
+ VIDEO_SCREEN (s);
+ VIDEO_WINDOW (w);
+
+ if (vw->context)
+ {
+ VideoSource *src = vw->context->source;
+
+ if (src->format == IMAGE_FORMAT_YV12 &&
+ &src->texture->texture == texture)
+ {
+ FragmentAttrib fa = *attrib;
+ int param, function;
+
+ param = allocFragmentParameters (&fa, 2);
+
+ function = getYV12FragmentFunction (s, texture, param);
+ if (function)
+ {
+ float minX, minY, maxX, maxY, y1, y2;
+
+ addFragmentFunction (&fa, function);
+
+ minX = COMP_TEX_COORD_X (&texture->matrix, 1.0f);
+ maxX = COMP_TEX_COORD_X (&texture->matrix, src->width - 1.0f);
+
+ y1 = COMP_TEX_COORD_Y (&texture->matrix, 1.0f);
+ y2 = COMP_TEX_COORD_Y (&texture->matrix, src->height - 1.0f);
+
+ minY = MIN (y1, y2);
+ maxY = MAX (y1, y2);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB, param,
+ minX, minY, maxX, maxY);
+
+ /* need to provide plane offsets when texture coordinates
+ are not normalized */
+ if (texture->target != GL_TEXTURE_2D)
+ {
+ float offsetX, offsetY;
+
+ offsetX = COMP_TEX_COORD_X (&texture->matrix,
+ src->width / 2);
+
+ if (s->glxPixmapFBConfigs[8].yInverted)
+ offsetY = COMP_TEX_COORD_Y (&texture->matrix,
+ src->height);
+ else
+ offsetY = COMP_TEX_COORD_Y (&texture->matrix,
+ -src->height / 2);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB,
+ param + 1,
+ 0.0f, offsetY, offsetX, 0.0f);
+ }
+ }
+
+ UNWRAP (vs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, &fa, mask);
+ WRAP (vs, s, drawWindowTexture, videoDrawWindowTexture);
+ }
+ else
+ {
+ if (!(mask & PAINT_WINDOW_BLEND_MASK))
+ {
+ /* we don't have to draw client window texture when
+ video cover the full window and blending isn't used */
+ if (vw->context->full && texture == w->texture)
+ return;
+ }
+
+ UNWRAP (vs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, attrib, mask);
+ WRAP (vs, s, drawWindowTexture, videoDrawWindowTexture);
+ }
+ }
+ else
+ {
+ UNWRAP (vs, s, drawWindowTexture);
+ (*s->drawWindowTexture) (w, texture, attrib, mask);
+ WRAP (vs, s, drawWindowTexture, videoDrawWindowTexture);
+ }
+}
+
+static Bool
+videoDrawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *attrib,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+
+ VIDEO_SCREEN (w->screen);
+
+ UNWRAP (vs, w->screen, drawWindow);
+ status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
+ WRAP (vs, w->screen, drawWindow, videoDrawWindow);
+
+ if (status)
+ {
+ VIDEO_WINDOW (w);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ region = &infiniteRegion;
+
+ if (vw->context && region->numRects)
+ {
+ CompTexture *texture = &vw->context->source->texture->texture;
+ int saveFilter;
+
+ w->vCount = w->indexCount = 0;
+
+ if (vw->context->box.extents.x1 < vw->context->box.extents.x2 &&
+ vw->context->box.extents.y1 < vw->context->box.extents.y2)
+ {
+ (*w->screen->addWindowGeometry) (w,
+ &vw->context->matrix, 1,
+ &vw->context->box,
+ region);
+ }
+
+ if (mask & PAINT_WINDOW_TRANSLUCENT_MASK)
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ saveFilter = w->screen->filter[NOTHING_TRANS_FILTER];
+
+ if (vw->context->scaled)
+ w->screen->filter[NOTHING_TRANS_FILTER] =
+ COMP_TEXTURE_FILTER_GOOD;
+
+ if (w->vCount)
+ (*w->screen->drawWindowTexture) (w, texture, attrib, mask);
+
+ w->screen->filter[NOTHING_TRANS_FILTER] = saveFilter;
+ }
+ }
+
+ return status;
+}
+
+static VideoTexture *
+videoGetTexture (CompScreen *screen,
+ Pixmap pixmap)
+{
+ VideoTexture *texture;
+ unsigned int width, height, depth, ui;
+ Window root;
+ int i;
+
+ VIDEO_DISPLAY (screen->display);
+
+ for (texture = vd->textures; texture; texture = texture->next)
+ {
+ if (texture->pixmap == pixmap)
+ {
+ texture->refCount++;
+ return texture;
+ }
+ }
+
+ texture = malloc (sizeof (VideoTexture));
+ if (!texture)
+ return NULL;
+
+ initTexture (screen, &texture->texture);
+
+ if (!XGetGeometry (screen->display->display, pixmap, &root,
+ &i, &i, &width, &height, &ui, &depth))
+ {
+ finiTexture (screen, &texture->texture);
+ free (texture);
+ return NULL;
+ }
+
+ if (!bindPixmapToTexture (screen, &texture->texture, pixmap,
+ width, height, depth))
+ {
+ finiTexture (screen, &texture->texture);
+ free (texture);
+ return NULL;
+ }
+
+ texture->damage = XDamageCreate (screen->display->display, pixmap,
+ XDamageReportRawRectangles);
+
+ texture->refCount = 1;
+ texture->pixmap = pixmap;
+ texture->width = width;
+ texture->height = height;
+ texture->next = vd->textures;
+
+ vd->textures = texture;
+
+ return texture;
+}
+
+static void
+videoReleaseTexture (CompScreen *screen,
+ VideoTexture *texture)
+{
+ VIDEO_DISPLAY (screen->display);
+
+ texture->refCount--;
+ if (texture->refCount)
+ return;
+
+ if (texture == vd->textures)
+ {
+ vd->textures = texture->next;
+ }
+ else
+ {
+ VideoTexture *t;
+
+ for (t = vd->textures; t; t = t->next)
+ {
+ if (t->next == texture)
+ {
+ t->next = texture->next;
+ break;
+ }
+ }
+ }
+
+ finiTexture (screen, &texture->texture);
+ free (texture);
+}
+
+static void
+updateWindowVideoMatrix (CompWindow *w)
+{
+ VIDEO_WINDOW (w);
+
+ if (!vw->context)
+ return;
+
+ vw->context->matrix = vw->context->source->texture->texture.matrix;
+
+ vw->context->matrix.yy /= (float)
+ vw->context->height / vw->context->source->height;
+
+ if (vw->context->width != vw->context->source->width ||
+ vw->context->height != vw->context->source->height)
+ {
+ vw->context->matrix.xx /= (float)
+ vw->context->width / vw->context->source->width;
+
+ vw->context->scaled = TRUE;
+ }
+ else
+ {
+ vw->context->scaled = FALSE;
+ }
+
+ vw->context->matrix.x0 -=
+ (vw->context->box.extents.x1 * vw->context->matrix.xx);
+ vw->context->matrix.y0 -=
+ (vw->context->box.extents.y1 * vw->context->matrix.yy);
+
+ vw->context->matrix.x0 += (vw->context->panX * vw->context->matrix.xx);
+ vw->context->matrix.y0 += (vw->context->panY * vw->context->matrix.yy);
+}
+
+static void
+updateWindowVideoContext (CompWindow *w,
+ VideoSource *source)
+{
+ int x1, y1, x2, y2;
+
+ VIDEO_WINDOW (w);
+
+ if (!vw->context)
+ {
+ vw->context = malloc (sizeof (VideoContext));
+ if (!vw->context)
+ return;
+ }
+
+ vw->context->source = source;
+
+ vw->context->box.rects = &vw->context->box.extents;
+ vw->context->box.numRects = 1;
+
+ decor_apply_gravity (source->p1.gravity,
+ source->p1.x, source->p1.y,
+ w->width, w->height,
+ &x1, &y1);
+
+ decor_apply_gravity (source->p2.gravity,
+ source->p2.x, source->p2.y,
+ w->width, w->height,
+ &x2, &y2);
+
+ x1 = MAX (x1, 0);
+ y1 = MAX (y1, 0);
+ x2 = MIN (x2, w->width);
+ y2 = MIN (y2, w->height);
+
+ vw->context->width = x2 - x1;
+ vw->context->height = y2 - y1;
+
+ vw->context->panX = 0.0f;
+ vw->context->panY = 0.0f;
+
+ if (source->aspect)
+ {
+ float aspect, width, height, v;
+
+ width = vw->context->width;
+ height = vw->context->height;
+
+ aspect = width / height;
+
+ if (aspect < source->aspectRatio)
+ {
+ v = (width + width * source->panScan) / source->aspectRatio;
+ height = MIN (vw->context->height, v);
+ width = height * source->aspectRatio;
+ }
+ else
+ {
+ v = (height + height * source->panScan) * source->aspectRatio;
+ width = MIN (vw->context->width, v);
+ height = width / source->aspectRatio;
+ }
+
+ x1 = (vw->context->width / 2.0f) - (width / 2.0f);
+ y1 = (vw->context->height / 2.0f) - (height / 2.0f);
+ x2 = ((vw->context->width / 2.0f) + (width / 2.0f) + 0.5f);
+ y2 = ((vw->context->height / 2.0f) + (height / 2.0f) + 0.5f);
+
+ vw->context->width = x2 - x1;
+ vw->context->height = y2 - y1;
+
+ if (x1 < 0)
+ vw->context->panX = -x1;
+
+ if (y1 < 0)
+ vw->context->panY = -y1;
+
+ x1 = MAX (x1, 0);
+ y1 = MAX (y1, 0);
+ x2 = MIN (x2, w->width);
+ y2 = MIN (y2, w->height);
+ }
+
+ if (x1 == 0 &&
+ y1 == 0 &&
+ x2 == w->width &&
+ y2 == w->height)
+ {
+ vw->context->full = TRUE;
+ }
+ else
+ {
+ vw->context->full = FALSE;
+ }
+
+ vw->context->box.extents.x1 = x1;
+ vw->context->box.extents.y1 = y1;
+ vw->context->box.extents.x2 = x2;
+ vw->context->box.extents.y2 = y2;
+
+ vw->context->box.extents.x1 += w->attrib.x;
+ vw->context->box.extents.y1 += w->attrib.y;
+ vw->context->box.extents.x2 += w->attrib.x;
+ vw->context->box.extents.y2 += w->attrib.y;
+
+ updateWindowVideoMatrix (w);
+}
+
+static void
+videoWindowUpdate (CompWindow *w)
+{
+ Atom actual;
+ int result, format, i;
+ unsigned long n, left;
+ unsigned char *propData;
+ VideoTexture *texture = NULL;
+ Pixmap pixmap = None;
+ Atom imageFormat = 0;
+ decor_point_t p[2];
+ int aspectX = 0;
+ int aspectY = 0;
+ int panScan = 0;
+ int width = 0;
+ int height = 0;
+
+ VIDEO_DISPLAY (w->screen->display);
+ VIDEO_SCREEN (w->screen);
+ VIDEO_WINDOW (w);
+
+ memset (p, 0, sizeof (p));
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ vd->videoAtom, 0L, 13L, FALSE,
+ XA_INTEGER, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n == 13)
+ {
+ long *data = (long *) propData;
+
+ pixmap = *data++;
+ imageFormat = *data++;
+
+ width = *data++;
+ height = *data++;
+
+ aspectX = *data++;
+ aspectY = *data++;
+ panScan = *data++;
+
+ p[0].gravity = *data++;
+ p[0].x = *data++;
+ p[0].y = *data++;
+ p[1].gravity = *data++;
+ p[1].x = *data++;
+ p[1].y = *data++;
+ }
+
+ XFree (propData);
+ }
+
+ for (i = 0; i < IMAGE_FORMAT_NUM; i++)
+ if (vd->videoImageFormatAtom[i] == imageFormat)
+ break;
+
+ if (i < IMAGE_FORMAT_NUM)
+ {
+ if (!vs->imageFormat[i])
+ {
+ compLogMessage ("video", CompLogLevelWarn,
+ "Image format not supported");
+ i = IMAGE_FORMAT_NUM;
+ }
+ }
+
+ if (i < IMAGE_FORMAT_NUM)
+ {
+ texture = videoGetTexture (w->screen, pixmap);
+ if (!texture)
+ {
+ compLogMessage ("video", CompLogLevelWarn,
+ "Bad pixmap 0x%x", (int) pixmap);
+ }
+ }
+
+ if (vw->source)
+ {
+ videoReleaseTexture (w->screen, vw->source->texture);
+ }
+ else
+ {
+ vw->source = malloc (sizeof (VideoSource));
+ }
+
+ if (texture && vw->source)
+ {
+ vw->source->texture = texture;
+ vw->source->format = i;
+ vw->source->p1 = p[0];
+ vw->source->p2 = p[1];
+ vw->source->width = width;
+ vw->source->height = height;
+ vw->source->aspect = aspectX && aspectY;
+ vw->source->panScan = panScan / 65536.0f;
+
+ if (vw->source->aspect)
+ vw->source->aspectRatio = (float) aspectX / aspectY;
+
+ updateWindowVideoContext (w, vw->source);
+ }
+ else
+ {
+ if (texture)
+ videoReleaseTexture (w->screen, texture);
+
+ if (vw->source)
+ {
+ free (vw->source);
+ vw->source = NULL;
+ }
+
+ if (vw->context)
+ {
+ free (vw->context);
+ vw->context = NULL;
+ }
+ }
+}
+
+static void
+videoHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompWindow *w;
+
+ VIDEO_DISPLAY (d);
+
+ switch (event->type) {
+ case PropertyNotify:
+ if (event->xproperty.atom == vd->videoAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ videoWindowUpdate (w);
+ }
+ break;
+ default:
+ if (event->type == d->damageEvent + XDamageNotify)
+ {
+ XDamageNotifyEvent *de = (XDamageNotifyEvent *) event;
+ VideoTexture *t;
+
+ for (t = vd->textures; t; t = t->next)
+ {
+ if (t->pixmap == de->drawable)
+ {
+ VideoWindow *vw;
+ VideoScreen *vs;
+ CompScreen *s;
+ BoxRec box;
+ int bw;
+
+ t->texture.oldMipmaps = TRUE;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ vs = GET_VIDEO_SCREEN (s, vd);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->shaded || w->mapNum)
+ {
+ vw = GET_VIDEO_WINDOW (w, vs);
+
+ if (vw->context &&
+ vw->context->source->texture == t)
+ {
+ box = vw->context->box.extents;
+
+ bw = w->attrib.border_width;
+
+ box.x1 -= w->attrib.x + bw;
+ box.y1 -= w->attrib.y + bw;
+ box.x2 -= w->attrib.x + bw;
+ box.y2 -= w->attrib.y + bw;
+
+ addWindowDamageRect (w, &box);
+ }
+ }
+ }
+ }
+ return;
+ }
+ }
+ }
+ break;
+ }
+
+ UNWRAP (vd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (vd, d, handleEvent, videoHandleEvent);
+}
+
+static Bool
+videoDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status;
+
+ VIDEO_SCREEN (w->screen);
+
+ if (initial)
+ videoWindowUpdate (w);
+
+ UNWRAP (vs, w->screen, damageWindowRect);
+ status = (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (vs, w->screen, damageWindowRect, videoDamageWindowRect);
+
+ return status;
+}
+
+static void
+videoWindowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+ VIDEO_SCREEN (w->screen);
+ VIDEO_WINDOW (w);
+
+ if (vw->context)
+ {
+ vw->context->box.extents.x1 += dx;
+ vw->context->box.extents.y1 += dy;
+ vw->context->box.extents.x2 += dx;
+ vw->context->box.extents.y2 += dy;
+
+ updateWindowVideoMatrix (w);
+ }
+
+ UNWRAP (vs, w->screen, windowMoveNotify);
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+ WRAP (vs, w->screen, windowMoveNotify, videoWindowMoveNotify);
+}
+
+static void
+videoWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ VIDEO_SCREEN (w->screen);
+ VIDEO_WINDOW (w);
+
+ if (vw->source)
+ updateWindowVideoContext (w, vw->source);
+
+ UNWRAP (vs, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (vs, w->screen, windowResizeNotify, videoWindowResizeNotify);
+}
+
+static const CompMetadataOptionInfo videoDisplayOptionInfo[] = {
+ { "yv12", "bool", 0, 0, 0 }
+};
+
+static Bool
+videoInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ VideoDisplay *vd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ vd = malloc (sizeof (VideoDisplay));
+ if (!vd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &videoMetadata,
+ videoDisplayOptionInfo,
+ vd->opt,
+ VIDEO_DISPLAY_OPTION_NUM))
+ {
+ free (vd);
+ return FALSE;
+ }
+
+ vd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (vd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, vd->opt, VIDEO_DISPLAY_OPTION_NUM);
+ free (vd);
+ return FALSE;
+ }
+
+ vd->textures = 0;
+
+ vd->videoAtom =
+ XInternAtom (d->display, "_COMPIZ_VIDEO", 0);
+ vd->videoSupportedAtom =
+ XInternAtom (d->display, "_COMPIZ_VIDEO_SUPPORTED", 0);
+
+ vd->videoImageFormatAtom[IMAGE_FORMAT_RGB] =
+ XInternAtom (d->display, "_COMPIZ_VIDEO_IMAGE_FORMAT_RGB", 0);
+ vd->videoImageFormatAtom[IMAGE_FORMAT_YV12] =
+ XInternAtom (d->display, "_COMPIZ_VIDEO_IMAGE_FORMAT_YV12", 0);
+
+ WRAP (vd, d, handleEvent, videoHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = vd;
+
+ return TRUE;
+}
+
+static void
+videoFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ VIDEO_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, vd->screenPrivateIndex);
+
+ UNWRAP (vd, d, handleEvent);
+
+ compFiniDisplayOptions (d, vd->opt, VIDEO_DISPLAY_OPTION_NUM);
+
+ free (vd);
+}
+
+static Bool
+videoInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ VideoScreen *vs;
+
+ VIDEO_DISPLAY (s->display);
+
+ vs = malloc (sizeof (VideoScreen));
+ if (!vs)
+ return FALSE;
+
+ vs->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (vs->windowPrivateIndex < 0)
+ {
+ free (vs);
+ return FALSE;
+ }
+
+ vs->yv12Functions = NULL;
+
+ memset (vs->imageFormat, 0, sizeof (vs->imageFormat));
+
+ vs->imageFormat[IMAGE_FORMAT_RGB] = TRUE;
+ if (s->fragmentProgram)
+ {
+ if (s->glxPixmapFBConfigs[8].fbConfig)
+ {
+ vs->imageFormat[IMAGE_FORMAT_YV12] = TRUE;
+ }
+ else
+ {
+ compLogMessage ("video", CompLogLevelWarn,
+ "No 8 bit GLX pixmap format, "
+ "disabling YV12 image format");
+ }
+ }
+
+ WRAP (vs, s, drawWindow, videoDrawWindow);
+ WRAP (vs, s, drawWindowTexture, videoDrawWindowTexture);
+ WRAP (vs, s, damageWindowRect, videoDamageWindowRect);
+ WRAP (vs, s, windowMoveNotify, videoWindowMoveNotify);
+ WRAP (vs, s, windowResizeNotify, videoWindowResizeNotify);
+
+ s->base.privates[vd->screenPrivateIndex].ptr = vs;
+
+ videoSetSupportedHint (s);
+
+ return TRUE;
+}
+
+static void
+videoFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ VIDEO_DISPLAY (s->display);
+ VIDEO_SCREEN (s);
+
+ freeWindowPrivateIndex (s, vs->windowPrivateIndex);
+
+ XDeleteProperty (s->display->display, s->root, vd->videoSupportedAtom);
+
+ videoDestroyFragmentFunctions (s, &vs->yv12Functions);
+
+ UNWRAP (vs, s, drawWindow);
+ UNWRAP (vs, s, drawWindowTexture);
+ UNWRAP (vs, s, damageWindowRect);
+ UNWRAP (vs, s, windowMoveNotify);
+ UNWRAP (vs, s, windowResizeNotify);
+
+ free (vs);
+}
+
+static Bool
+videoInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ VideoWindow *vw;
+
+ VIDEO_SCREEN (w->screen);
+
+ vw = malloc (sizeof (VideoWindow));
+ if (!vw)
+ return FALSE;
+
+ vw->source = NULL;
+ vw->context = NULL;
+
+ w->base.privates[vs->windowPrivateIndex].ptr = vw;
+
+ if (w->shaded || w->attrib.map_state == IsViewable)
+ videoWindowUpdate (w);
+
+ return TRUE;
+}
+
+static void
+videoFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ VIDEO_WINDOW (w);
+
+ if (vw->source)
+ {
+ videoReleaseTexture (w->screen, vw->source->texture);
+ free (vw->source);
+ }
+
+ if (vw->context)
+ free (vw->context);
+
+ free (vw);
+}
+
+static CompBool
+videoInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) videoInitDisplay,
+ (InitPluginObjectProc) videoInitScreen,
+ (InitPluginObjectProc) videoInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+videoFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) videoFiniDisplay,
+ (FiniPluginObjectProc) videoFiniScreen,
+ (FiniPluginObjectProc) videoFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+videoGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) videoGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+videoSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) videoSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+videoInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&videoMetadata,
+ p->vTable->name,
+ videoDisplayOptionInfo,
+ VIDEO_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&videoMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&videoMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+videoFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&videoMetadata);
+}
+
+static CompMetadata *
+videoGetMetadata (CompPlugin *plugin)
+{
+ return &videoMetadata;
+}
+
+static CompPluginVTable videoVTable = {
+ "video",
+ videoGetMetadata,
+ videoInit,
+ videoFini,
+ videoInitObject,
+ videoFiniObject,
+ videoGetObjectOptions,
+ videoSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &videoVTable;
+}
diff --git a/plugins/water.c b/plugins/water.c
new file mode 100644
index 0000000..6b39d70
--- /dev/null
+++ b/plugins/water.c
@@ -0,0 +1,1824 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+#define TEXTURE_SIZE 256
+
+#define K 0.1964f
+
+#define TEXTURE_NUM 3
+
+typedef struct _WaterFunction {
+ struct _WaterFunction *next;
+
+ int handle;
+ int target;
+ int param;
+ int unit;
+} WaterFunction;
+
+#define TINDEX(ws, i) (((ws)->tIndex + (i)) % TEXTURE_NUM)
+
+#define CLAMP(v, min, max) \
+ if ((v) > (max)) \
+ (v) = (max); \
+ else if ((v) < (min)) \
+ (v) = (min)
+
+#define WATER_INITIATE_MODIFIERS_DEFAULT (ControlMask | CompSuperMask)
+
+static CompMetadata waterMetadata;
+
+static int displayPrivateIndex;
+
+static int waterLastPointerX = 0;
+static int waterLastPointerY = 0;
+
+#define WATER_DISPLAY_OPTION_INITIATE_KEY 0
+#define WATER_DISPLAY_OPTION_TOGGLE_RAIN_KEY 1
+#define WATER_DISPLAY_OPTION_TOGGLE_WIPER_KEY 2
+#define WATER_DISPLAY_OPTION_OFFSET_SCALE 3
+#define WATER_DISPLAY_OPTION_RAIN_DELAY 4
+#define WATER_DISPLAY_OPTION_TITLE_WAVE 5
+#define WATER_DISPLAY_OPTION_POINT 6
+#define WATER_DISPLAY_OPTION_LINE 7
+#define WATER_DISPLAY_OPTION_NUM 8
+
+typedef struct _WaterDisplay {
+ int screenPrivateIndex;
+
+ CompOption opt[WATER_DISPLAY_OPTION_NUM];
+
+ HandleEventProc handleEvent;
+
+ float offsetScale;
+} WaterDisplay;
+
+typedef struct _WaterScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ DrawWindowTextureProc drawWindowTexture;
+
+ int grabIndex;
+ int width, height;
+
+ GLuint program;
+ GLuint texture[TEXTURE_NUM];
+
+ int tIndex;
+ GLenum target;
+ GLfloat tx, ty;
+
+ int count;
+
+ GLuint fbo;
+ GLint fboStatus;
+
+ void *data;
+ float *d0;
+ float *d1;
+ unsigned char *t0;
+
+ CompTimeoutHandle rainHandle;
+ CompTimeoutHandle wiperHandle;
+
+ float wiperAngle;
+ float wiperSpeed;
+
+ WaterFunction *bumpMapFunctions;
+} WaterScreen;
+
+#define GET_WATER_DISPLAY(d) \
+ ((WaterDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define WATER_DISPLAY(d) \
+ WaterDisplay *wd = GET_WATER_DISPLAY (d)
+
+#define GET_WATER_SCREEN(s, wd) \
+ ((WaterScreen *) (s)->base.privates[(wd)->screenPrivateIndex].ptr)
+
+#define WATER_SCREEN(s) \
+ WaterScreen *ws = GET_WATER_SCREEN (s, GET_WATER_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static Bool
+waterRainTimeout (void *closure);
+
+static Bool
+waterWiperTimeout (void *closure);
+
+static const char *waterFpString =
+ "!!ARBfp1.0"
+
+ "PARAM param = program.local[0];"
+ "ATTRIB t11 = fragment.texcoord[0];"
+
+ "TEMP t01, t21, t10, t12;"
+ "TEMP c11, c01, c21, c10, c12;"
+ "TEMP prev, v, temp, accel;"
+
+ "TEX prev, t11, texture[0], %s;"
+ "TEX c11, t11, texture[1], %s;"
+
+ /* sample offsets */
+ "ADD t01, t11, { - %f, 0.0, 0.0, 0.0 };"
+ "ADD t21, t11, { %f, 0.0, 0.0, 0.0 };"
+ "ADD t10, t11, { 0.0, - %f, 0.0, 0.0 };"
+ "ADD t12, t11, { 0.0, %f, 0.0, 0.0 };"
+
+ /* fetch nesseccary samples */
+ "TEX c01, t01, texture[1], %s;"
+ "TEX c21, t21, texture[1], %s;"
+ "TEX c10, t10, texture[1], %s;"
+ "TEX c12, t12, texture[1], %s;"
+
+ /* x/y normals from height */
+ "MOV v, { 0.0, 0.0, 0.75, 0.0 };"
+ "SUB v.x, c12.w, c10.w;"
+ "SUB v.y, c01.w, c21.w;"
+
+ /* bumpiness */
+ "MUL v, v, 1.5;"
+
+ /* normalize */
+ "MAD temp, v.x, v.x, 1.0;"
+ "MAD temp, v.y, v.y, temp;"
+ "RSQ temp, temp.x;"
+ "MUL v, v, temp;"
+
+ /* add scale and bias to normal */
+ "MAD v, v, 0.5, 0.5;"
+
+ /* done with computing the normal, continue with computing the next
+ height value */
+ "ADD accel, c10, c12;"
+ "ADD accel, c01, accel;"
+ "ADD accel, c21, accel;"
+ "MAD accel, -4.0, c11, accel;"
+
+ /* store new height in alpha component */
+ "MAD v.w, 2.0, c11, -prev.w;"
+ "MAD v.w, accel, param.x, v.w;"
+
+ /* fade out height */
+ "MUL v.w, v.w, param.y;"
+
+ "MOV result.color, v;"
+
+ "END";
+
+static int
+loadFragmentProgram (CompScreen *s,
+ GLuint *program,
+ const char *string)
+{
+ GLint errorPos;
+
+ /* clear errors */
+ glGetError ();
+
+ if (!*program)
+ (*s->genPrograms) (1, program);
+
+ (*s->bindProgram) (GL_FRAGMENT_PROGRAM_ARB, *program);
+ (*s->programString) (GL_FRAGMENT_PROGRAM_ARB,
+ GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen (string), string);
+
+ glGetIntegerv (GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
+ if (glGetError () != GL_NO_ERROR || errorPos != -1)
+ {
+ compLogMessage ("water", CompLogLevelError,
+ "failed to load bump map program");
+
+ (*s->deletePrograms) (1, program);
+ *program = 0;
+
+ return 0;
+ }
+
+ return 1;
+}
+
+static int
+loadWaterProgram (CompScreen *s)
+{
+ char buffer[1024];
+
+ WATER_SCREEN (s);
+
+ if (ws->target == GL_TEXTURE_2D)
+ sprintf (buffer, waterFpString,
+ "2D", "2D",
+ 1.0f / ws->width, 1.0f / ws->width,
+ 1.0f / ws->height, 1.0f / ws->height,
+ "2D", "2D", "2D", "2D");
+ else
+ sprintf (buffer, waterFpString,
+ "RECT", "RECT",
+ 1.0f, 1.0f, 1.0f, 1.0f,
+ "RECT", "RECT", "RECT", "RECT");
+
+ return loadFragmentProgram (s, &ws->program, buffer);
+}
+
+static int
+getBumpMapFragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int unit,
+ int param)
+{
+ WaterFunction *function;
+ CompFunctionData *data;
+ int target;
+
+ WATER_SCREEN (s);
+
+ if (texture->target == GL_TEXTURE_2D)
+ target = COMP_FETCH_TARGET_2D;
+ else
+ target = COMP_FETCH_TARGET_RECT;
+
+ for (function = ws->bumpMapFunctions; function; function = function->next)
+ {
+ if (function->param == param &&
+ function->unit == unit &&
+ function->target == target)
+ return function->handle;
+ }
+
+ data = createFunctionData ();
+ if (data)
+ {
+ static char *temp[] = { "normal", "temp", "total", "bump", "offset" };
+ int i, handle = 0;
+ char str[1024];
+
+ for (i = 0; i < sizeof (temp) / sizeof (temp[0]); i++)
+ {
+ if (!addTempHeaderOpToFunctionData (data, temp[i]))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+ }
+
+ snprintf (str, 1024,
+
+ /* get normal from normal map */
+ "TEX normal, fragment.texcoord[%d], texture[%d], %s;"
+
+ /* save height */
+ "MOV offset, normal;"
+
+ /* remove scale and bias from normal */
+ "MAD normal, normal, 2.0, -1.0;"
+
+ /* normalize the normal map */
+ "DP3 temp, normal, normal;"
+ "RSQ temp, temp.x;"
+ "MUL normal, normal, temp;"
+
+ /* scale down normal by height and constant and use as
+ offset in texture */
+ "MUL offset, normal, offset.w;"
+ "MUL offset, offset, program.env[%d];",
+
+ unit, unit,
+ (ws->target == GL_TEXTURE_2D) ? "2D" : "RECT",
+ param);
+
+ if (!addDataOpToFunctionData (data, str))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ if (!addFetchOpToFunctionData (data, "output", "offset.yxzz", target))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ snprintf (str, 1024,
+
+ /* normal dot lightdir, this should eventually be
+ changed to a real light vector */
+ "DP3 bump, normal, { 0.707, 0.707, 0.0, 0.0 };"
+ "MUL bump, bump, state.light[0].diffuse;");
+
+ if (!addDataOpToFunctionData (data, str))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ if (!addColorOpToFunctionData (data, "output", "output"))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ snprintf (str, 1024,
+
+ /* diffuse per-vertex lighting, opacity and brightness
+ and add lightsource bump color */
+ "ADD output, output, bump;");
+
+ if (!addDataOpToFunctionData (data, str))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ function = malloc (sizeof (WaterFunction));
+ if (function)
+ {
+ handle = createFragmentFunction (s, "water", data);
+
+ function->handle = handle;
+ function->target = target;
+ function->param = param;
+ function->unit = unit;
+
+ function->next = ws->bumpMapFunctions;
+ ws->bumpMapFunctions = function;
+ }
+
+ destroyFunctionData (data);
+
+ return handle;
+ }
+
+ return 0;
+}
+
+static void
+allocTexture (CompScreen *s,
+ int index)
+{
+ WATER_SCREEN (s);
+
+ glGenTextures (1, &ws->texture[index]);
+ glBindTexture (ws->target, ws->texture[index]);
+
+ glTexParameteri (ws->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (ws->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri (ws->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (ws->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glTexImage2D (ws->target,
+ 0,
+ GL_RGBA,
+ ws->width,
+ ws->height,
+ 0,
+ GL_BGRA,
+
+#if IMAGE_BYTE_ORDER == MSBFirst
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else
+ GL_UNSIGNED_BYTE,
+#endif
+
+ ws->t0);
+
+ glBindTexture (ws->target, 0);
+}
+
+static int
+fboPrologue (CompScreen *s,
+ int tIndex)
+{
+ WATER_SCREEN (s);
+
+ if (!ws->fbo)
+ return 0;
+
+ if (!ws->texture[tIndex])
+ allocTexture (s, tIndex);
+
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, ws->fbo);
+
+ (*s->framebufferTexture2D) (GL_FRAMEBUFFER_EXT,
+ GL_COLOR_ATTACHMENT0_EXT,
+ ws->target, ws->texture[tIndex],
+ 0);
+
+ glDrawBuffer (GL_COLOR_ATTACHMENT0_EXT);
+ glReadBuffer (GL_COLOR_ATTACHMENT0_EXT);
+
+ /* check status the first time */
+ if (!ws->fboStatus)
+ {
+ ws->fboStatus = (*s->checkFramebufferStatus) (GL_FRAMEBUFFER_EXT);
+ if (ws->fboStatus != GL_FRAMEBUFFER_COMPLETE_EXT)
+ {
+ compLogMessage ("water", CompLogLevelError,
+ "framebuffer incomplete");
+
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, 0);
+ (*s->deleteFramebuffers) (1, &ws->fbo);
+
+ glDrawBuffer (GL_BACK);
+ glReadBuffer (GL_BACK);
+
+ ws->fbo = 0;
+
+ return 0;
+ }
+ }
+
+ glViewport (0, 0, ws->width, ws->height);
+ glMatrixMode (GL_PROJECTION);
+ glPushMatrix ();
+ glLoadIdentity ();
+ glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
+ glMatrixMode (GL_MODELVIEW);
+ glPushMatrix ();
+ glLoadIdentity ();
+
+ return 1;
+}
+
+static void
+fboEpilogue (CompScreen *s)
+{
+ (*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, 0);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ glDepthRange (0, 1);
+ glViewport (-1, -1, 2, 2);
+ glRasterPos2f (0, 0);
+
+ s->rasterX = s->rasterY = 0;
+
+ setDefaultViewport (s);
+
+ glMatrixMode (GL_PROJECTION);
+ glPopMatrix ();
+ glMatrixMode (GL_MODELVIEW);
+ glPopMatrix ();
+
+ glDrawBuffer (GL_BACK);
+ glReadBuffer (GL_BACK);
+}
+
+static int
+fboUpdate (CompScreen *s,
+ float dt,
+ float fade)
+{
+ WATER_SCREEN (s);
+
+ if (!fboPrologue (s, TINDEX (ws, 1)))
+ return 0;
+
+ if (!ws->texture[TINDEX (ws, 2)])
+ allocTexture (s, TINDEX (ws, 2));
+
+ if (!ws->texture[TINDEX (ws, 0)])
+ allocTexture (s, TINDEX (ws, 0));
+
+ glEnable (ws->target);
+
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+ glBindTexture (ws->target, ws->texture[TINDEX (ws, 2)]);
+
+ glTexParameteri (ws->target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (ws->target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ (*s->activeTexture) (GL_TEXTURE1_ARB);
+ glBindTexture (ws->target, ws->texture[TINDEX (ws, 0)]);
+ glTexParameteri (ws->target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (ws->target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+ glEnable (GL_FRAGMENT_PROGRAM_ARB);
+ (*s->bindProgram) (GL_FRAGMENT_PROGRAM_ARB, ws->program);
+
+ (*s->programLocalParameter4f) (GL_FRAGMENT_PROGRAM_ARB, 0,
+ dt * K, fade, 1.0f, 1.0f);
+
+ glBegin (GL_QUADS);
+
+ glTexCoord2f (0.0f, 0.0f);
+ glVertex2f (0.0f, 0.0f);
+ glTexCoord2f (ws->tx, 0.0f);
+ glVertex2f (1.0f, 0.0f);
+ glTexCoord2f (ws->tx, ws->ty);
+ glVertex2f (1.0f, 1.0f);
+ glTexCoord2f (0.0f, ws->ty);
+ glVertex2f (0.0f, 1.0f);
+
+ glEnd ();
+
+ glDisable (GL_FRAGMENT_PROGRAM_ARB);
+
+ glTexParameteri (ws->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (ws->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glBindTexture (ws->target, 0);
+ (*s->activeTexture) (GL_TEXTURE0_ARB);
+ glTexParameteri (ws->target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri (ws->target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glBindTexture (ws->target, 0);
+
+ glDisable (ws->target);
+
+ fboEpilogue (s);
+
+ /* increment texture index */
+ ws->tIndex = TINDEX (ws, 1);
+
+ return 1;
+}
+
+static int
+fboVertices (CompScreen *s,
+ GLenum type,
+ XPoint *p,
+ int n,
+ float v)
+{
+ WATER_SCREEN (s);
+
+ if (!fboPrologue (s, TINDEX (ws, 0)))
+ return 0;
+
+ glColorMask (GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
+ glColor4f (0.0f, 0.0f, 0.0f, v);
+
+ glPointSize (3.0f);
+ glLineWidth (1.0f);
+
+ glScalef (1.0f / ws->width, 1.0f / ws->height, 1.0);
+ glTranslatef (0.5f, 0.5f, 0.0f);
+
+ glBegin (type);
+
+ while (n--)
+ {
+ glVertex2i (p->x, p->y);
+ p++;
+ }
+
+ glEnd ();
+
+ glColor4usv (defaultColor);
+ glColorMask (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+
+ fboEpilogue (s);
+
+ return 1;
+}
+
+static void
+softwareUpdate (CompScreen *s,
+ float dt,
+ float fade)
+{
+ float *dTmp;
+ int i, j;
+ float v0, v1, inv;
+ float accel, value;
+ unsigned char *t0, *t;
+ int dWidth, dHeight;
+ float *d01, *d10, *d11, *d12;
+
+ WATER_SCREEN (s);
+
+ if (!ws->texture[TINDEX (ws, 0)])
+ allocTexture (s, TINDEX (ws, 0));
+
+ dt *= K * 2.0f;
+ fade *= 0.99f;
+
+ dWidth = ws->width + 2;
+ dHeight = ws->height + 2;
+
+#define D(d, j) (*((d) + (j)))
+
+ d01 = ws->d0 + dWidth;
+ d10 = ws->d1;
+ d11 = d10 + dWidth;
+ d12 = d11 + dWidth;
+
+ for (i = 1; i < dHeight - 1; i++)
+ {
+ for (j = 1; j < dWidth - 1; j++)
+ {
+ accel = dt * (D (d10, j) +
+ D (d12, j) +
+ D (d11, j - 1) +
+ D (d11, j + 1) - 4.0f * D (d11, j));
+
+ value = (2.0f * D (d11, j) - D (d01, j) + accel) * fade;
+
+ CLAMP (value, 0.0f, 1.0f);
+
+ D (d01, j) = value;
+ }
+
+ d01 += dWidth;
+ d10 += dWidth;
+ d11 += dWidth;
+ d12 += dWidth;
+ }
+
+ /* update border */
+ memcpy (ws->d0, ws->d0 + dWidth, dWidth * sizeof (GLfloat));
+ memcpy (ws->d0 + dWidth * (dHeight - 1),
+ ws->d0 + dWidth * (dHeight - 2),
+ dWidth * sizeof (GLfloat));
+
+ d01 = ws->d0 + dWidth;
+
+ for (i = 1; i < dHeight - 1; i++)
+ {
+ D (d01, 0) = D (d01, 1);
+ D (d01, dWidth - 1) = D (d01, dWidth - 2);
+
+ d01 += dWidth;
+ }
+
+ d10 = ws->d1;
+ d11 = d10 + dWidth;
+ d12 = d11 + dWidth;
+
+ t0 = ws->t0;
+
+ /* update texture */
+ for (i = 0; i < ws->height; i++)
+ {
+ for (j = 0; j < ws->width; j++)
+ {
+ v0 = (D (d12, j) - D (d10, j)) * 1.5f;
+ v1 = (D (d11, j - 1) - D (d11, j + 1)) * 1.5f;
+
+ /* 0.5 for scale */
+ inv = 0.5f / sqrtf (v0 * v0 + v1 * v1 + 1.0f);
+
+ /* add scale and bias to normal */
+ v0 = v0 * inv + 0.5f;
+ v1 = v1 * inv + 0.5f;
+
+ /* store normal map in RGB components */
+ t = t0 + (j * 4);
+ t[0] = (unsigned char) ((inv + 0.5f) * 255.0f);
+ t[1] = (unsigned char) (v1 * 255.0f);
+ t[2] = (unsigned char) (v0 * 255.0f);
+
+ /* store height in A component */
+ t[3] = (unsigned char) (D (d11, j) * 255.0f);
+ }
+
+ d10 += dWidth;
+ d11 += dWidth;
+ d12 += dWidth;
+
+ t0 += ws->width * 4;
+ }
+
+#undef D
+
+ /* swap height maps */
+ dTmp = ws->d0;
+ ws->d0 = ws->d1;
+ ws->d1 = dTmp;
+
+ if (ws->texture[TINDEX (ws, 0)])
+ {
+ glBindTexture (ws->target, ws->texture[TINDEX (ws, 0)]);
+ glTexImage2D (ws->target,
+ 0,
+ GL_RGBA,
+ ws->width,
+ ws->height,
+ 0,
+ GL_BGRA,
+
+#if IMAGE_BYTE_ORDER == MSBFirst
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else
+ GL_UNSIGNED_BYTE,
+#endif
+
+ ws->t0);
+ }
+}
+
+
+#define SET(x, y, v) *((ws->d1) + (ws->width + 2) * (y + 1) + (x + 1)) = (v)
+
+static void
+softwarePoints (CompScreen *s,
+ XPoint *p,
+ int n,
+ float add)
+{
+ WATER_SCREEN (s);
+
+ while (n--)
+ {
+ SET (p->x - 1, p->y - 1, add);
+ SET (p->x, p->y - 1, add);
+ SET (p->x + 1, p->y - 1, add);
+
+ SET (p->x - 1, p->y, add);
+ SET (p->x, p->y, add);
+ SET (p->x + 1, p->y, add);
+
+ SET (p->x - 1, p->y + 1, add);
+ SET (p->x, p->y + 1, add);
+ SET (p->x + 1, p->y + 1, add);
+
+ p++;
+ }
+}
+
+/* bresenham */
+static void
+softwareLines (CompScreen *s,
+ XPoint *p,
+ int n,
+ float v)
+{
+ int x1, y1, x2, y2;
+ Bool steep;
+ int tmp;
+ int deltaX, deltaY;
+ int error = 0;
+ int yStep;
+ int x, y;
+
+ WATER_SCREEN (s);
+
+#define SWAP(v0, v1) \
+ tmp = v0; \
+ v0 = v1; \
+ v1 = tmp
+
+ while (n > 1)
+ {
+ x1 = p->x;
+ y1 = p->y;
+
+ p++;
+ n--;
+
+ x2 = p->x;
+ y2 = p->y;
+
+ p++;
+ n--;
+
+ steep = abs (y2 - y1) > abs (x2 - x1);
+ if (steep)
+ {
+ SWAP (x1, y1);
+ SWAP (x2, y2);
+ }
+
+ if (x1 > x2)
+ {
+ SWAP (x1, x2);
+ SWAP (y1, y2);
+ }
+
+#undef SWAP
+
+ deltaX = x2 - x1;
+ deltaY = abs (y2 - y1);
+
+ y = y1;
+ if (y1 < y2)
+ yStep = 1;
+ else
+ yStep = -1;
+
+ for (x = x1; x <= x2; x++)
+ {
+ if (steep)
+ {
+ SET (y, x, v);
+ }
+ else
+ {
+ SET (x, y, v);
+ }
+
+ error += deltaY;
+ if (2 * error >= deltaX)
+ {
+ y += yStep;
+ error -= deltaX;
+ }
+ }
+ }
+}
+
+#undef SET
+
+static void
+softwareVertices (CompScreen *s,
+ GLenum type,
+ XPoint *p,
+ int n,
+ float v)
+{
+ switch (type) {
+ case GL_POINTS:
+ softwarePoints (s, p, n, v);
+ break;
+ case GL_LINES:
+ softwareLines (s, p, n, v);
+ break;
+ }
+}
+
+static void
+waterUpdate (CompScreen *s,
+ float dt)
+{
+ GLfloat fade = 1.0f;
+
+ WATER_SCREEN (s);
+
+ if (ws->count < 1000)
+ {
+ if (ws->count > 1)
+ fade = 0.90f + ws->count / 10000.0f;
+ else
+ fade = 0.0f;
+ }
+
+ if (!fboUpdate (s, dt, fade))
+ softwareUpdate (s, dt, fade);
+}
+
+static void
+scaleVertices (CompScreen *s,
+ XPoint *p,
+ int n)
+{
+ WATER_SCREEN (s);
+
+ while (n--)
+ {
+ p[n].x = (ws->width * p[n].x) / s->width;
+ p[n].y = (ws->height * p[n].y) / s->height;
+ }
+}
+
+static void
+waterVertices (CompScreen *s,
+ GLenum type,
+ XPoint *p,
+ int n,
+ float v)
+{
+ WATER_SCREEN (s);
+
+ if (!s->fragmentProgram)
+ return;
+
+ scaleVertices (s, p, n);
+
+ if (!fboVertices (s, type, p, n, v))
+ softwareVertices (s, type, p, n, v);
+
+ if (ws->count < 3000)
+ ws->count = 3000;
+}
+
+static Bool
+waterRainTimeout (void *closure)
+{
+ CompScreen *s = closure;
+ XPoint p;
+
+ p.x = (int) (s->width * (rand () / (float) RAND_MAX));
+ p.y = (int) (s->height * (rand () / (float) RAND_MAX));
+
+ waterVertices (s, GL_POINTS, &p, 1, 0.8f * (rand () / (float) RAND_MAX));
+
+ damageScreen (s);
+
+ return TRUE;
+}
+
+static Bool
+waterWiperTimeout (void *closure)
+{
+ CompScreen *s = closure;
+
+ WATER_SCREEN (s);
+
+ if (ws->count)
+ {
+ if (ws->wiperAngle == 0.0f)
+ ws->wiperSpeed = 2.5f;
+ else if (ws->wiperAngle == 180.0f)
+ ws->wiperSpeed = -2.5f;
+ }
+
+ return TRUE;
+}
+
+static void
+waterReset (CompScreen *s)
+{
+ int size, i, j;
+
+ WATER_SCREEN (s);
+
+ ws->height = TEXTURE_SIZE;
+ ws->width = (ws->height * s->width) / s->height;
+
+ if (s->textureNonPowerOfTwo ||
+ (POWER_OF_TWO (ws->width) && POWER_OF_TWO (ws->height)))
+ {
+ ws->target = GL_TEXTURE_2D;
+ ws->tx = ws->ty = 1.0f;
+ }
+ else
+ {
+ ws->target = GL_TEXTURE_RECTANGLE_NV;
+ ws->tx = ws->width;
+ ws->ty = ws->height;
+ }
+
+ if (!s->fragmentProgram)
+ return;
+
+ if (s->fbo)
+ {
+ loadWaterProgram (s);
+ if (!ws->fbo)
+ (*s->genFramebuffers) (1, &ws->fbo);
+ }
+
+ ws->fboStatus = 0;
+
+ for (i = 0; i < TEXTURE_NUM; i++)
+ {
+ if (ws->texture[i])
+ {
+ glDeleteTextures (1, &ws->texture[i]);
+ ws->texture[i] = 0;
+ }
+ }
+
+ if (ws->data)
+ free (ws->data);
+
+ size = (ws->width + 2) * (ws->height + 2);
+
+ ws->data = calloc (1, (sizeof (float) * size * 2) +
+ (sizeof (GLubyte) * ws->width * ws->height * 4));
+ if (!ws->data)
+ return;
+
+ ws->d0 = ws->data;
+ ws->d1 = (ws->d0 + (size));
+ ws->t0 = (unsigned char *) (ws->d1 + (size));
+
+ for (i = 0; i < ws->height; i++)
+ {
+ for (j = 0; j < ws->width; j++)
+ {
+ (ws->t0 + (ws->width * 4 * i + j * 4))[0] = 0xff;
+ }
+ }
+}
+
+static void
+waterDrawWindowTexture (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ unsigned int mask)
+{
+ WATER_SCREEN (w->screen);
+
+ if (ws->count)
+ {
+ FragmentAttrib fa = *attrib;
+ Bool lighting = w->screen->lighting;
+ int param, function, unit;
+ GLfloat plane[4];
+
+ WATER_DISPLAY (w->screen->display);
+
+ param = allocFragmentParameters (&fa, 1);
+ unit = allocFragmentTextureUnits (&fa, 1);
+
+ function = getBumpMapFragmentFunction (w->screen, texture, unit, param);
+ if (function)
+ {
+ addFragmentFunction (&fa, function);
+
+ screenLighting (w->screen, TRUE);
+
+ (*w->screen->activeTexture) (GL_TEXTURE0_ARB + unit);
+
+ glBindTexture (ws->target, ws->texture[TINDEX (ws, 0)]);
+
+ plane[1] = plane[2] = 0.0f;
+ plane[0] = ws->tx / (GLfloat) w->screen->width;
+ plane[3] = 0.0f;
+
+ glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
+ glTexGenfv (GL_S, GL_EYE_PLANE, plane);
+ glEnable (GL_TEXTURE_GEN_S);
+
+ plane[0] = plane[2] = 0.0f;
+ plane[1] = ws->ty / (GLfloat) w->screen->height;
+ plane[3] = 0.0f;
+
+ glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
+ glTexGenfv (GL_T, GL_EYE_PLANE, plane);
+ glEnable (GL_TEXTURE_GEN_T);
+
+ (*w->screen->activeTexture) (GL_TEXTURE0_ARB);
+
+ (*w->screen->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB, param,
+ texture->matrix.yy *
+ wd->offsetScale,
+ -texture->matrix.xx *
+ wd->offsetScale,
+ 0.0f, 0.0f);
+ }
+
+ /* to get appropriate filtering of texture */
+ mask |= PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK;
+
+ UNWRAP (ws, w->screen, drawWindowTexture);
+ (*w->screen->drawWindowTexture) (w, texture, &fa, mask);
+ WRAP (ws, w->screen, drawWindowTexture, waterDrawWindowTexture);
+
+ if (function)
+ {
+ (*w->screen->activeTexture) (GL_TEXTURE0_ARB + unit);
+ glDisable (GL_TEXTURE_GEN_T);
+ glDisable (GL_TEXTURE_GEN_S);
+ glBindTexture (ws->target, 0);
+ (*w->screen->activeTexture) (GL_TEXTURE0_ARB);
+
+ screenLighting (w->screen, lighting);
+ }
+ }
+ else
+ {
+ UNWRAP (ws, w->screen, drawWindowTexture);
+ (*w->screen->drawWindowTexture) (w, texture, attrib, mask);
+ WRAP (ws, w->screen, drawWindowTexture, waterDrawWindowTexture);
+ }
+}
+
+/* TODO: a way to control the speed */
+static void
+waterPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ WATER_SCREEN (s);
+
+ if (ws->count)
+ {
+ ws->count -= 10;
+ if (ws->count < 0)
+ ws->count = 0;
+
+ if (ws->wiperHandle)
+ {
+ float step, angle0, angle1;
+ Bool wipe = FALSE;
+ XPoint p[3];
+
+ p[1].x = s->width / 2;
+ p[1].y = s->height;
+
+ step = ws->wiperSpeed * msSinceLastPaint / 20.0f;
+
+ if (ws->wiperSpeed > 0.0f)
+ {
+ if (ws->wiperAngle < 180.0f)
+ {
+ angle0 = ws->wiperAngle;
+
+ ws->wiperAngle += step;
+ ws->wiperAngle = MIN (ws->wiperAngle, 180.0f);
+
+ angle1 = ws->wiperAngle;
+
+ wipe = TRUE;
+ }
+ }
+ else
+ {
+ if (ws->wiperAngle > 0.0f)
+ {
+ angle1 = ws->wiperAngle;
+
+ ws->wiperAngle += step;
+ ws->wiperAngle = MAX (ws->wiperAngle, 0.0f);
+
+ angle0 = ws->wiperAngle;
+
+ wipe = TRUE;
+ }
+ }
+
+#define TAN(a) (tanf ((a) * (M_PI / 180.0f)))
+
+ if (wipe)
+ {
+ if (angle0 > 0.0f)
+ {
+ p[2].x = s->width / 2 - s->height / TAN (angle0);
+ p[2].y = 0;
+ }
+ else
+ {
+ p[2].x = 0;
+ p[2].y = s->height;
+ }
+
+ if (angle1 < 180.0f)
+ {
+ p[0].x = s->width / 2 - s->height / TAN (angle1);
+ p[0].y = 0;
+ }
+ else
+ {
+ p[0].x = s->width;
+ p[0].y = s->height;
+ }
+
+ /* software rasterizer doesn't support triangles yet so wiper
+ effect will only work with FBOs right now */
+ waterVertices (s, GL_TRIANGLES, p, 3, 0.0f);
+ }
+
+#undef TAN
+
+ }
+
+ waterUpdate (s, 0.8f);
+ }
+
+ UNWRAP (ws, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ws, s, preparePaintScreen, waterPreparePaintScreen);
+}
+
+static void
+waterDonePaintScreen (CompScreen *s)
+{
+ WATER_SCREEN (s);
+
+ if (ws->count)
+ damageScreen (s);
+
+ UNWRAP (ws, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (ws, s, donePaintScreen, waterDonePaintScreen);
+}
+
+static void
+waterHandleMotionEvent (CompDisplay *d,
+ Window root)
+{
+ CompScreen *s;
+
+ s = findScreenAtDisplay (d, root);
+ if (s)
+ {
+ WATER_SCREEN (s);
+
+ if (ws->grabIndex)
+ {
+ XPoint p[2];
+
+ p[0].x = waterLastPointerX;
+ p[0].y = waterLastPointerY;
+
+ p[1].x = waterLastPointerX = pointerX;
+ p[1].y = waterLastPointerY = pointerY;
+
+ waterVertices (s, GL_LINES, p, 2, 0.2f);
+
+ damageScreen (s);
+ }
+ }
+}
+
+static Bool
+waterInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ unsigned int ui;
+ Window root, child;
+ int xRoot, yRoot, i;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ WATER_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "water", 0))
+ continue;
+
+ if (!ws->grabIndex)
+ ws->grabIndex = pushScreenGrab (s, None, "water");
+
+ if (XQueryPointer (d->display, s->root, &root, &child, &xRoot, &yRoot,
+ &i, &i, &ui))
+ {
+ XPoint p;
+
+ p.x = waterLastPointerX = xRoot;
+ p.y = waterLastPointerY = yRoot;
+
+ waterVertices (s, GL_POINTS, &p, 1, 0.8f);
+
+ damageScreen (s);
+ }
+ }
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (state & CompActionStateInitKey)
+ action->state |= CompActionStateTermKey;
+
+ return FALSE;
+}
+
+static Bool
+waterTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ WATER_SCREEN (s);
+
+ if (ws->grabIndex)
+ {
+ removeScreenGrab (s, ws->grabIndex, 0);
+ ws->grabIndex = 0;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+waterToggleRain (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+
+ WATER_DISPLAY (d);
+
+ s = findScreenAtDisplay (d, getIntOptionNamed (option, nOption, "root", 0));
+ if (s)
+ {
+ WATER_SCREEN (s);
+
+ if (!ws->rainHandle)
+ {
+ int delay;
+
+ delay = wd->opt[WATER_DISPLAY_OPTION_RAIN_DELAY].value.i;
+ ws->rainHandle = compAddTimeout (delay, (float) delay * 1.2,
+ waterRainTimeout, s);
+ }
+ else
+ {
+ compRemoveTimeout (ws->rainHandle);
+ ws->rainHandle = 0;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+waterToggleWiper (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+
+ s = findScreenAtDisplay (d, getIntOptionNamed (option, nOption, "root", 0));
+ if (s)
+ {
+ WATER_SCREEN (s);
+
+ if (!ws->wiperHandle)
+ {
+ ws->wiperHandle = compAddTimeout (2000, 2400, waterWiperTimeout, s);
+ }
+ else
+ {
+ compRemoveTimeout (ws->wiperHandle);
+ ws->wiperHandle = 0;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+waterTitleWave (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ int xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", d->activeWindow);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w)
+ {
+ XPoint p[2];
+
+ p[0].x = w->attrib.x - w->input.left;
+ p[0].y = w->attrib.y - w->input.top / 2;
+
+ p[1].x = w->attrib.x + w->width + w->input.right;
+ p[1].y = p[0].y;
+
+ waterVertices (w->screen, GL_LINES, p, 2, 0.15f);
+
+ damageScreen (w->screen);
+ }
+
+ return FALSE;
+}
+
+static Bool
+waterPoint (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ int xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ XPoint p;
+ float amp;
+
+ p.x = getIntOptionNamed (option, nOption, "x", s->width / 2);
+ p.y = getIntOptionNamed (option, nOption, "y", s->height / 2);
+
+ amp = getFloatOptionNamed (option, nOption, "amplitude", 0.5f);
+
+ waterVertices (s, GL_POINTS, &p, 1, amp);
+
+ damageScreen (s);
+ }
+
+ return FALSE;
+}
+
+static Bool
+waterLine (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ int xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ XPoint p[2];
+ float amp;
+
+ p[0].x = getIntOptionNamed (option, nOption, "x0", s->width / 4);
+ p[0].y = getIntOptionNamed (option, nOption, "y0", s->height / 2);
+
+ p[1].x = getIntOptionNamed (option, nOption, "x1",
+ s->width - s->width / 4);
+ p[1].y = getIntOptionNamed (option, nOption, "y1", s->height / 2);
+
+
+ amp = getFloatOptionNamed (option, nOption, "amplitude", 0.25f);
+
+ waterVertices (s, GL_LINES, p, 2, amp);
+
+ damageScreen (s);
+ }
+
+ return FALSE;
+}
+
+static void
+waterHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ WATER_DISPLAY (d);
+
+ switch (event->type) {
+ case ButtonPress:
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ {
+ WATER_SCREEN (s);
+
+ if (ws->grabIndex)
+ {
+ XPoint p;
+
+ p.x = pointerX;
+ p.y = pointerY;
+
+ waterVertices (s, GL_POINTS, &p, 1, 0.8f);
+ damageScreen (s);
+ }
+ }
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ waterHandleMotionEvent (d, event->xcrossing.root);
+ break;
+ case MotionNotify:
+ waterHandleMotionEvent (d, event->xmotion.root);
+ default:
+ break;
+ }
+
+ UNWRAP (wd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (wd, d, handleEvent, waterHandleEvent);
+}
+
+static CompOption *
+waterGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ WATER_DISPLAY (display);
+
+ *count = NUM_OPTIONS (wd);
+ return wd->opt;
+}
+
+static Bool
+waterSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ WATER_DISPLAY (display);
+
+ o = compFindOption (wd->opt, NUM_OPTIONS (wd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case WATER_DISPLAY_OPTION_OFFSET_SCALE:
+ if (compSetFloatOption (o, value))
+ {
+ wd->offsetScale = o->value.f * 50.0f;
+ return TRUE;
+ }
+ break;
+ case WATER_DISPLAY_OPTION_RAIN_DELAY:
+ if (compSetIntOption (o, value))
+ {
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ {
+ WATER_SCREEN (s);
+
+ if (!ws->rainHandle)
+ continue;
+
+ compRemoveTimeout (ws->rainHandle);
+ ws->rainHandle = compAddTimeout (value->i,
+ (float)value->i * 1.2,
+ waterRainTimeout, s);
+ }
+ return TRUE;
+ }
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo waterDisplayOptionInfo[] = {
+ { "initiate_key", "key", 0, waterInitiate, waterTerminate },
+ { "toggle_rain_key", "key", 0, waterToggleRain, 0 },
+ { "toggle_wiper_key", "key", 0, waterToggleWiper, 0 },
+ { "offset_scale", "float", "<min>0</min>", 0, 0 },
+ { "rain_delay", "int", "<min>1</min>", 0, 0 },
+ { "title_wave", "bell", 0, waterTitleWave, 0 },
+ { "point", "action", 0, waterPoint, 0 },
+ { "line", "action", 0, waterLine, 0 }
+};
+
+static Bool
+waterInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ WaterDisplay *wd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ wd = malloc (sizeof (WaterDisplay));
+ if (!wd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &waterMetadata,
+ waterDisplayOptionInfo,
+ wd->opt,
+ WATER_DISPLAY_OPTION_NUM))
+ {
+ free (wd);
+ return FALSE;
+ }
+
+ wd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (wd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, wd->opt, WATER_DISPLAY_OPTION_NUM);
+ free (wd);
+ return FALSE;
+ }
+
+ wd->offsetScale = wd->opt[WATER_DISPLAY_OPTION_OFFSET_SCALE].value.f * 50.0f;
+
+ WRAP (wd, d, handleEvent, waterHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = wd;
+
+ return TRUE;
+}
+
+static void
+waterFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ WATER_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, wd->screenPrivateIndex);
+
+ UNWRAP (wd, d, handleEvent);
+
+ compFiniDisplayOptions (d, wd->opt, WATER_DISPLAY_OPTION_NUM);
+
+ free (wd);
+}
+
+static Bool
+waterInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ WaterScreen *ws;
+
+ WATER_DISPLAY (s->display);
+
+ ws = calloc (1, sizeof (WaterScreen));
+ if (!ws)
+ return FALSE;
+
+ ws->grabIndex = 0;
+
+ WRAP (ws, s, preparePaintScreen, waterPreparePaintScreen);
+ WRAP (ws, s, donePaintScreen, waterDonePaintScreen);
+ WRAP (ws, s, drawWindowTexture, waterDrawWindowTexture);
+
+ s->base.privates[wd->screenPrivateIndex].ptr = ws;
+
+ waterReset (s);
+
+ return TRUE;
+}
+
+static void
+waterFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ WaterFunction *function, *next;
+ int i;
+
+ WATER_SCREEN (s);
+
+ if (ws->rainHandle)
+ compRemoveTimeout (ws->rainHandle);
+
+ if (ws->wiperHandle)
+ compRemoveTimeout (ws->wiperHandle);
+
+ if (ws->fbo)
+ (*s->deleteFramebuffers) (1, &ws->fbo);
+
+ for (i = 0; i < TEXTURE_NUM; i++)
+ {
+ if (ws->texture[i])
+ glDeleteTextures (1, &ws->texture[i]);
+ }
+
+ if (ws->program)
+ (*s->deletePrograms) (1, &ws->program);
+
+ if (ws->data)
+ free (ws->data);
+
+ function = ws->bumpMapFunctions;
+ while (function)
+ {
+ destroyFragmentFunction (s, function->handle);
+
+ next = function->next;
+ free (function);
+ function = next;
+ }
+
+ UNWRAP (ws, s, preparePaintScreen);
+ UNWRAP (ws, s, donePaintScreen);
+ UNWRAP (ws, s, drawWindowTexture);
+
+ free (ws);
+}
+
+static CompBool
+waterInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) waterInitDisplay,
+ (InitPluginObjectProc) waterInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+waterFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) waterFiniDisplay,
+ (FiniPluginObjectProc) waterFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+waterGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) waterGetDisplayOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+waterSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) waterSetDisplayOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+waterInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&waterMetadata,
+ p->vTable->name,
+ waterDisplayOptionInfo,
+ WATER_DISPLAY_OPTION_NUM,
+ 0, 0))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&waterMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&waterMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+waterFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&waterMetadata);
+}
+
+static CompMetadata *
+waterGetMetadata (CompPlugin *plugin)
+{
+ return &waterMetadata;
+}
+
+static CompPluginVTable waterVTable = {
+ "water",
+ waterGetMetadata,
+ waterInit,
+ waterFini,
+ waterInitObject,
+ waterFiniObject,
+ waterGetObjectOptions,
+ waterSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &waterVTable;
+}
diff --git a/plugins/wobbly.c b/plugins/wobbly.c
new file mode 100644
index 0000000..4773e9d
--- /dev/null
+++ b/plugins/wobbly.c
@@ -0,0 +1,2967 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+/*
+ * Spring model implemented by Kristian Hogsberg.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+#define WIN_X(w) ((w)->attrib.x - (w)->output.left)
+#define WIN_Y(w) ((w)->attrib.y - (w)->output.top)
+#define WIN_W(w) ((w)->width + (w)->output.left + (w)->output.right)
+#define WIN_H(w) ((w)->height + (w)->output.top + (w)->output.bottom)
+
+#define GRID_WIDTH 4
+#define GRID_HEIGHT 4
+
+#define MODEL_MAX_SPRINGS (GRID_WIDTH * GRID_HEIGHT * 2)
+
+#define MASS 15.0f
+
+typedef struct _xy_pair {
+ float x, y;
+} Point, Vector;
+
+#define NorthEdgeMask (1L << 0)
+#define SouthEdgeMask (1L << 1)
+#define WestEdgeMask (1L << 2)
+#define EastEdgeMask (1L << 3)
+
+#define EDGE_DISTANCE 25.0f
+#define EDGE_VELOCITY 13.0f
+
+typedef struct _Edge {
+ float next, prev;
+
+ float start;
+ float end;
+
+ float attract;
+ float velocity;
+
+ Bool snapped;
+} Edge;
+
+typedef struct _Object {
+ Vector force;
+ Point position;
+ Vector velocity;
+ float theta;
+ Bool immobile;
+ unsigned int edgeMask;
+ Edge vertEdge;
+ Edge horzEdge;
+} Object;
+
+typedef struct _Spring {
+ Object *a;
+ Object *b;
+ Vector offset;
+} Spring;
+
+#define NORTH 0
+#define SOUTH 1
+#define WEST 2
+#define EAST 3
+
+typedef struct _Model {
+ Object *objects;
+ int numObjects;
+ Spring springs[MODEL_MAX_SPRINGS];
+ int numSprings;
+ Object *anchorObject;
+ float steps;
+ Point topLeft;
+ Point bottomRight;
+ unsigned int edgeMask;
+ unsigned int snapCnt[4];
+} Model;
+
+#define WOBBLY_EFFECT_NONE 0
+#define WOBBLY_EFFECT_SHIVER 1
+#define WOBBLY_EFFECT_LAST WOBBLY_EFFECT_SHIVER
+
+static CompMetadata wobblyMetadata;
+
+static int displayPrivateIndex;
+
+#define WOBBLY_DISPLAY_OPTION_SNAP_KEY 0
+#define WOBBLY_DISPLAY_OPTION_SNAP_INVERTED 1
+#define WOBBLY_DISPLAY_OPTION_SHIVER 2
+#define WOBBLY_DISPLAY_OPTION_NUM 3
+
+typedef struct _WobblyDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[WOBBLY_DISPLAY_OPTION_NUM];
+
+ Bool snapping;
+} WobblyDisplay;
+
+#define WOBBLY_SCREEN_OPTION_FRICTION 0
+#define WOBBLY_SCREEN_OPTION_SPRING_K 1
+#define WOBBLY_SCREEN_OPTION_GRID_RESOLUTION 2
+#define WOBBLY_SCREEN_OPTION_MIN_GRID_SIZE 3
+#define WOBBLY_SCREEN_OPTION_MAP_EFFECT 4
+#define WOBBLY_SCREEN_OPTION_FOCUS_EFFECT 5
+#define WOBBLY_SCREEN_OPTION_MAP_WINDOW_MATCH 6
+#define WOBBLY_SCREEN_OPTION_FOCUS_WINDOW_MATCH 7
+#define WOBBLY_SCREEN_OPTION_GRAB_WINDOW_MATCH 8
+#define WOBBLY_SCREEN_OPTION_MOVE_WINDOW_MATCH 9
+#define WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT 10
+#define WOBBLY_SCREEN_OPTION_NUM 11
+
+typedef struct _WobblyScreen {
+ int windowPrivateIndex;
+
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+ PaintWindowProc paintWindow;
+ DamageWindowRectProc damageWindowRect;
+ AddWindowGeometryProc addWindowGeometry;
+
+ WindowResizeNotifyProc windowResizeNotify;
+ WindowMoveNotifyProc windowMoveNotify;
+ WindowGrabNotifyProc windowGrabNotify;
+ WindowUngrabNotifyProc windowUngrabNotify;
+
+ CompOption opt[WOBBLY_SCREEN_OPTION_NUM];
+
+ Bool wobblyWindows;
+
+ unsigned int grabMask;
+ CompWindow *grabWindow;
+ Bool moveWindow;
+} WobblyScreen;
+
+#define WobblyInitial (1L << 0)
+#define WobblyForce (1L << 1)
+#define WobblyVelocity (1L << 2)
+
+typedef struct _WobblyWindow {
+ Model *model;
+ int wobbly;
+ Bool grabbed;
+ Bool velocity;
+ unsigned int state;
+} WobblyWindow;
+
+#define GET_WOBBLY_DISPLAY(d) \
+ ((WobblyDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define WOBBLY_DISPLAY(d) \
+ WobblyDisplay *wd = GET_WOBBLY_DISPLAY (d)
+
+#define GET_WOBBLY_SCREEN(s, wd) \
+ ((WobblyScreen *) (s)->base.privates[(wd)->screenPrivateIndex].ptr)
+
+#define WOBBLY_SCREEN(s) \
+ WobblyScreen *ws = GET_WOBBLY_SCREEN (s, GET_WOBBLY_DISPLAY (s->display))
+
+#define GET_WOBBLY_WINDOW(w, ws) \
+ ((WobblyWindow *) (w)->base.privates[(ws)->windowPrivateIndex].ptr)
+
+#define WOBBLY_WINDOW(w) \
+ WobblyWindow *ww = GET_WOBBLY_WINDOW (w, \
+ GET_WOBBLY_SCREEN (w->screen, \
+ GET_WOBBLY_DISPLAY (w->screen->display)))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+wobblyGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ WOBBLY_SCREEN (screen);
+
+ *count = NUM_OPTIONS (ws);
+ return ws->opt;
+}
+
+static Bool
+wobblySetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ WOBBLY_SCREEN (screen);
+
+ o = compFindOption (ws->opt, NUM_OPTIONS (ws), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetScreenOption (screen, o, value);
+}
+
+static const CompMetadataOptionInfo wobblyScreenOptionInfo[] = {
+ { "friction", "float", "<min>0.1</min>", 0, 0 },
+ { "spring_k", "float", "<min>0.1</min>", 0, 0 },
+ { "grid_resolution", "int", "<min>1</min><max>64</max>", 0, 0 },
+ { "min_grid_size", "int", "<min>4</min><max>128</max>", 0, 0 },
+ { "map_effect", "int", RESTOSTRING (0, WOBBLY_EFFECT_LAST), 0, 0 },
+ { "focus_effect", "int", RESTOSTRING (0, WOBBLY_EFFECT_LAST), 0, 0 },
+ { "map_window_match", "match", 0, 0, 0 },
+ { "focus_window_match", "match", 0, 0, 0 },
+ { "grab_window_match", "match", 0, 0, 0 },
+ { "move_window_match", "match", 0, 0, 0 },
+ { "maximize_effect", "bool", 0, 0, 0 }
+};
+
+#define SNAP_WINDOW_TYPE (CompWindowTypeNormalMask | \
+ CompWindowTypeToolbarMask | \
+ CompWindowTypeMenuMask | \
+ CompWindowTypeUtilMask)
+
+static void
+findNextWestEdge (CompWindow *w,
+ Object *object)
+{
+ int v, v1, v2;
+ int s, start;
+ int e, end;
+ int x;
+ int output;
+
+ start = -65535.0f;
+ end = 65535.0f;
+
+ v1 = -65535.0f;
+ v2 = 65535.0f;
+
+ x = object->position.x + w->output.left - w->input.left;
+
+ output = outputDeviceForPoint (w->screen, x, object->position.y);
+
+ if (x >= w->screen->outputDev[output].region.extents.x1)
+ {
+ CompWindow *p;
+
+ v1 = w->screen->outputDev[output].region.extents.x1;
+
+ for (p = w->screen->windows; p; p = p->next)
+ {
+ if (w == p)
+ continue;
+
+ if (p->mapNum && p->struts)
+ {
+ s = p->struts->left.y - w->output.top;
+ e = p->struts->left.y + p->struts->left.height +
+ w->output.bottom;
+ }
+ else if (!p->invisible && (p->type & SNAP_WINDOW_TYPE))
+ {
+ s = p->attrib.y - p->input.top - w->output.top;
+ e = p->attrib.y + p->height + p->input.bottom +
+ w->output.bottom;
+ }
+ else
+ {
+ continue;
+ }
+
+ if (s > object->position.y)
+ {
+ if (s < end)
+ end = s;
+ }
+ else if (e < object->position.y)
+ {
+ if (e > start)
+ start = e;
+ }
+ else
+ {
+ if (s > start)
+ start = s;
+
+ if (e < end)
+ end = e;
+
+ if (p->mapNum && p->struts)
+ v = p->struts->left.x + p->struts->left.width;
+ else
+ v = p->attrib.x + p->width + p->input.right;
+
+ if (v <= x)
+ {
+ if (v > v1)
+ v1 = v;
+ }
+ else
+ {
+ if (v < v2)
+ v2 = v;
+ }
+ }
+ }
+ }
+ else
+ {
+ v2 = w->screen->outputDev[output].region.extents.x1;
+ }
+
+ v1 = v1 - w->output.left + w->input.left;
+ v2 = v2 - w->output.left + w->input.left;
+
+ if (v1 != (int) object->vertEdge.next)
+ object->vertEdge.snapped = FALSE;
+
+ object->vertEdge.start = start;
+ object->vertEdge.end = end;
+
+ object->vertEdge.next = v1;
+ object->vertEdge.prev = v2;
+
+ object->vertEdge.attract = v1 + EDGE_DISTANCE;
+ object->vertEdge.velocity = EDGE_VELOCITY;
+}
+
+static void
+findNextEastEdge (CompWindow *w,
+ Object *object)
+{
+ int v, v1, v2;
+ int s, start;
+ int e, end;
+ int x;
+ int output;
+
+ start = -65535.0f;
+ end = 65535.0f;
+
+ v1 = 65535.0f;
+ v2 = -65535.0f;
+
+ x = object->position.x - w->output.right + w->input.right;
+
+ output = outputDeviceForPoint (w->screen, x, object->position.y);
+
+ if (x <= w->screen->outputDev[output].region.extents.x2)
+ {
+ CompWindow *p;
+
+ v1 = w->screen->outputDev[output].region.extents.x2;
+
+ for (p = w->screen->windows; p; p = p->next)
+ {
+ if (w == p)
+ continue;
+
+ if (p->mapNum && p->struts)
+ {
+ s = p->struts->right.y - w->output.top;
+ e = p->struts->right.y + p->struts->right.height +
+ w->output.bottom;
+ }
+ else if (!p->invisible && (p->type & SNAP_WINDOW_TYPE))
+ {
+ s = p->attrib.y - p->input.top - w->output.top;
+ e = p->attrib.y + p->height + p->input.bottom +
+ w->output.bottom;
+ }
+ else
+ {
+ continue;
+ }
+
+ if (s > object->position.y)
+ {
+ if (s < end)
+ end = s;
+ }
+ else if (e < object->position.y)
+ {
+ if (e > start)
+ start = e;
+ }
+ else
+ {
+ if (s > start)
+ start = s;
+
+ if (e < end)
+ end = e;
+
+ if (p->mapNum && p->struts)
+ v = p->struts->right.x;
+ else
+ v = p->attrib.x - p->input.left;
+
+ if (v >= x)
+ {
+ if (v < v1)
+ v1 = v;
+ }
+ else
+ {
+ if (v > v2)
+ v2 = v;
+ }
+ }
+ }
+ }
+ else
+ {
+ v2 = w->screen->outputDev[output].region.extents.x2;
+ }
+
+ v1 = v1 + w->output.right - w->input.right;
+ v2 = v2 + w->output.right - w->input.right;
+
+ if (v1 != (int) object->vertEdge.next)
+ object->vertEdge.snapped = FALSE;
+
+ object->vertEdge.start = start;
+ object->vertEdge.end = end;
+
+ object->vertEdge.next = v1;
+ object->vertEdge.prev = v2;
+
+ object->vertEdge.attract = v1 - EDGE_DISTANCE;
+ object->vertEdge.velocity = EDGE_VELOCITY;
+}
+
+static void
+findNextNorthEdge (CompWindow *w,
+ Object *object)
+{
+ int v, v1, v2;
+ int s, start;
+ int e, end;
+ int y;
+ int output;
+
+ start = -65535.0f;
+ end = 65535.0f;
+
+ v1 = -65535.0f;
+ v2 = 65535.0f;
+
+ y = object->position.y + w->output.top - w->input.top;
+
+ output = outputDeviceForPoint (w->screen, object->position.x, y);
+
+ if (y >= w->screen->outputDev[output].region.extents.y1)
+ {
+ CompWindow *p;
+
+ v1 = w->screen->outputDev[output].region.extents.y1;
+
+ for (p = w->screen->windows; p; p = p->next)
+ {
+ if (w == p)
+ continue;
+
+ if (p->mapNum && p->struts)
+ {
+ s = p->struts->top.x - w->output.left;
+ e = p->struts->top.x + p->struts->top.width + w->output.right;
+ }
+ else if (!p->invisible && (p->type & SNAP_WINDOW_TYPE))
+ {
+ s = p->attrib.x - p->input.left - w->output.left;
+ e = p->attrib.x + p->width + p->input.right + w->output.right;
+ }
+ else
+ {
+ continue;
+ }
+
+ if (s > object->position.x)
+ {
+ if (s < end)
+ end = s;
+ }
+ else if (e < object->position.x)
+ {
+ if (e > start)
+ start = e;
+ }
+ else
+ {
+ if (s > start)
+ start = s;
+
+ if (e < end)
+ end = e;
+
+ if (p->mapNum && p->struts)
+ v = p->struts->top.y + p->struts->top.height;
+ else
+ v = p->attrib.y + p->height + p->input.bottom;
+
+ if (v <= y)
+ {
+ if (v > v1)
+ v1 = v;
+ }
+ else
+ {
+ if (v < v2)
+ v2 = v;
+ }
+ }
+ }
+ }
+ else
+ {
+ v2 = w->screen->outputDev[output].region.extents.y1;
+ }
+
+ v1 = v1 - w->output.top + w->input.top;
+ v2 = v2 - w->output.top + w->input.top;
+
+ if (v1 != (int) object->horzEdge.next)
+ object->horzEdge.snapped = FALSE;
+
+ object->horzEdge.start = start;
+ object->horzEdge.end = end;
+
+ object->horzEdge.next = v1;
+ object->horzEdge.prev = v2;
+
+ object->horzEdge.attract = v1 + EDGE_DISTANCE;
+ object->horzEdge.velocity = EDGE_VELOCITY;
+}
+
+static void
+findNextSouthEdge (CompWindow *w,
+ Object *object)
+{
+ int v, v1, v2;
+ int s, start;
+ int e, end;
+ int y;
+ int output;
+
+ start = -65535.0f;
+ end = 65535.0f;
+
+ v1 = 65535.0f;
+ v2 = -65535.0f;
+
+ y = object->position.y - w->output.bottom + w->input.bottom;
+
+ output = outputDeviceForPoint (w->screen, object->position.x, y);
+
+ if (y <= w->screen->outputDev[output].region.extents.y2)
+ {
+ CompWindow *p;
+
+ v1 = w->screen->outputDev[output].region.extents.y2;
+
+ for (p = w->screen->windows; p; p = p->next)
+ {
+ if (w == p)
+ continue;
+
+ if (p->mapNum && p->struts)
+ {
+ s = p->struts->bottom.x - w->output.left;
+ e = p->struts->bottom.x + p->struts->bottom.width +
+ w->output.right;
+ }
+ else if (!p->invisible && (p->type & SNAP_WINDOW_TYPE))
+ {
+ s = p->attrib.x - p->input.left - w->output.left;
+ e = p->attrib.x + p->width + p->input.right + w->output.right;
+ }
+ else
+ {
+ continue;
+ }
+
+ if (s > object->position.x)
+ {
+ if (s < end)
+ end = s;
+ }
+ else if (e < object->position.x)
+ {
+ if (e > start)
+ start = e;
+ }
+ else
+ {
+ if (s > start)
+ start = s;
+
+ if (e < end)
+ end = e;
+
+ if (p->mapNum && p->struts)
+ v = p->struts->bottom.y;
+ else
+ v = p->attrib.y - p->input.top;
+
+ if (v >= y)
+ {
+ if (v < v1)
+ v1 = v;
+ }
+ else
+ {
+ if (v > v2)
+ v2 = v;
+ }
+ }
+ }
+ }
+ else
+ {
+ v2 = w->screen->outputDev[output].region.extents.y2;
+ }
+
+ v1 = v1 + w->output.bottom - w->input.bottom;
+ v2 = v2 + w->output.bottom - w->input.bottom;
+
+ if (v1 != (int) object->horzEdge.next)
+ object->horzEdge.snapped = FALSE;
+
+ object->horzEdge.start = start;
+ object->horzEdge.end = end;
+
+ object->horzEdge.next = v1;
+ object->horzEdge.prev = v2;
+
+ object->horzEdge.attract = v1 - EDGE_DISTANCE;
+ object->horzEdge.velocity = EDGE_VELOCITY;
+}
+
+static void
+objectInit (Object *object,
+ float positionX,
+ float positionY,
+ float velocityX,
+ float velocityY)
+{
+ object->force.x = 0;
+ object->force.y = 0;
+
+ object->position.x = positionX;
+ object->position.y = positionY;
+
+ object->velocity.x = velocityX;
+ object->velocity.y = velocityY;
+
+ object->theta = 0;
+ object->immobile = FALSE;
+
+ object->edgeMask = 0;
+
+ object->vertEdge.snapped = FALSE;
+ object->horzEdge.snapped = FALSE;
+
+ object->vertEdge.next = 0.0f;
+ object->horzEdge.next = 0.0f;
+}
+
+static void
+springInit (Spring *spring,
+ Object *a,
+ Object *b,
+ float offsetX,
+ float offsetY)
+{
+ spring->a = a;
+ spring->b = b;
+ spring->offset.x = offsetX;
+ spring->offset.y = offsetY;
+}
+
+static void
+modelCalcBounds (Model *model)
+{
+ int i;
+
+ model->topLeft.x = MAXSHORT;
+ model->topLeft.y = MAXSHORT;
+ model->bottomRight.x = MINSHORT;
+ model->bottomRight.y = MINSHORT;
+
+ for (i = 0; i < model->numObjects; i++)
+ {
+ if (model->objects[i].position.x < model->topLeft.x)
+ model->topLeft.x = model->objects[i].position.x;
+ else if (model->objects[i].position.x > model->bottomRight.x)
+ model->bottomRight.x = model->objects[i].position.x;
+
+ if (model->objects[i].position.y < model->topLeft.y)
+ model->topLeft.y = model->objects[i].position.y;
+ else if (model->objects[i].position.y > model->bottomRight.y)
+ model->bottomRight.y = model->objects[i].position.y;
+ }
+}
+
+static void
+modelAddSpring (Model *model,
+ Object *a,
+ Object *b,
+ float offsetX,
+ float offsetY)
+{
+ Spring *spring;
+
+ spring = &model->springs[model->numSprings];
+ model->numSprings++;
+
+ springInit (spring, a, b, offsetX, offsetY);
+}
+
+static void
+modelSetMiddleAnchor (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ float gx, gy;
+
+ gx = ((GRID_WIDTH - 1) / 2 * width) / (float) (GRID_WIDTH - 1);
+ gy = ((GRID_HEIGHT - 1) / 2 * height) / (float) (GRID_HEIGHT - 1);
+
+ if (model->anchorObject)
+ model->anchorObject->immobile = FALSE;
+
+ model->anchorObject = &model->objects[GRID_WIDTH *
+ ((GRID_HEIGHT - 1) / 2) +
+ (GRID_WIDTH - 1) / 2];
+ model->anchorObject->position.x = x + gx;
+ model->anchorObject->position.y = y + gy;
+
+ model->anchorObject->immobile = TRUE;
+}
+
+static void
+modelSetTopAnchor (Model *model,
+ int x,
+ int y,
+ int width)
+{
+ float gx;
+
+ gx = ((GRID_WIDTH - 1) / 2 * width) / (float) (GRID_WIDTH - 1);
+
+ if (model->anchorObject)
+ model->anchorObject->immobile = FALSE;
+
+ model->anchorObject = &model->objects[(GRID_WIDTH - 1) / 2];
+ model->anchorObject->position.x = x + gx;
+ model->anchorObject->position.y = y;
+
+ model->anchorObject->immobile = TRUE;
+}
+
+static void
+modelAddEdgeAnchors (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ Object *o;
+
+ o = &model->objects[0];
+ o->position.x = x;
+ o->position.y = y;
+ o->immobile = TRUE;
+
+ o = &model->objects[GRID_WIDTH - 1];
+ o->position.x = x + width;
+ o->position.y = y;
+ o->immobile = TRUE;
+
+ o = &model->objects[GRID_WIDTH * (GRID_HEIGHT - 1)];
+ o->position.x = x;
+ o->position.y = y + height;
+ o->immobile = TRUE;
+
+ o = &model->objects[model->numObjects - 1];
+ o->position.x = x + width;
+ o->position.y = y + height;
+ o->immobile = TRUE;
+
+ if (!model->anchorObject)
+ model->anchorObject = &model->objects[0];
+}
+
+static void
+modelRemoveEdgeAnchors (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ Object *o;
+
+ o = &model->objects[0];
+ o->position.x = x;
+ o->position.y = y;
+ if (o != model->anchorObject)
+ o->immobile = FALSE;
+
+ o = &model->objects[GRID_WIDTH - 1];
+ o->position.x = x + width;
+ o->position.y = y;
+ if (o != model->anchorObject)
+ o->immobile = FALSE;
+
+ o = &model->objects[GRID_WIDTH * (GRID_HEIGHT - 1)];
+ o->position.x = x;
+ o->position.y = y + height;
+ if (o != model->anchorObject)
+ o->immobile = FALSE;
+
+ o = &model->objects[model->numObjects - 1];
+ o->position.x = x + width;
+ o->position.y = y + height;
+ if (o != model->anchorObject)
+ o->immobile = FALSE;
+}
+
+static void
+modelAdjustObjectPosition (Model *model,
+ Object *object,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ Object *o;
+ int gridX, gridY, i = 0;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ o = &model->objects[i];
+ if (o == object)
+ {
+ o->position.x = x + (gridX * width) / (GRID_WIDTH - 1);
+ o->position.y = y + (gridY * height) / (GRID_HEIGHT - 1);
+
+ return;
+ }
+
+ i++;
+ }
+ }
+}
+
+static void
+modelInitObjects (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ int gridX, gridY, i = 0;
+ float gw, gh;
+
+ gw = GRID_WIDTH - 1;
+ gh = GRID_HEIGHT - 1;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ objectInit (&model->objects[i],
+ x + (gridX * width) / gw,
+ y + (gridY * height) / gh,
+ 0, 0);
+ i++;
+ }
+ }
+
+ modelSetMiddleAnchor (model, x, y, width, height);
+}
+
+static void
+modelUpdateSnapping (CompWindow *window,
+ Model *model)
+{
+ unsigned int edgeMask, gridMask, mask;
+ int gridX, gridY, i = 0;
+
+ edgeMask = model->edgeMask;
+
+ if (model->snapCnt[NORTH])
+ edgeMask &= ~SouthEdgeMask;
+ else if (model->snapCnt[SOUTH])
+ edgeMask &= ~NorthEdgeMask;
+
+ if (model->snapCnt[WEST])
+ edgeMask &= ~EastEdgeMask;
+ else if (model->snapCnt[EAST])
+ edgeMask &= ~WestEdgeMask;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ if (gridY == 0)
+ gridMask = edgeMask & NorthEdgeMask;
+ else if (gridY == GRID_HEIGHT - 1)
+ gridMask = edgeMask & SouthEdgeMask;
+ else
+ gridMask = 0;
+
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ mask = gridMask;
+
+ if (gridX == 0)
+ mask |= edgeMask & WestEdgeMask;
+ else if (gridX == GRID_WIDTH - 1)
+ mask |= edgeMask & EastEdgeMask;
+
+ if (mask != model->objects[i].edgeMask)
+ {
+ model->objects[i].edgeMask = mask;
+
+ if (mask & WestEdgeMask)
+ {
+ if (!model->objects[i].vertEdge.snapped)
+ findNextWestEdge (window, &model->objects[i]);
+ }
+ else if (mask & EastEdgeMask)
+ {
+ if (!model->objects[i].vertEdge.snapped)
+ findNextEastEdge (window, &model->objects[i]);
+ }
+ else
+ model->objects[i].vertEdge.snapped = FALSE;
+
+ if (mask & NorthEdgeMask)
+ {
+ if (!model->objects[i].horzEdge.snapped)
+ findNextNorthEdge (window, &model->objects[i]);
+ }
+ else if (mask & SouthEdgeMask)
+ {
+ if (!model->objects[i].horzEdge.snapped)
+ findNextSouthEdge (window, &model->objects[i]);
+ }
+ else
+ model->objects[i].horzEdge.snapped = FALSE;
+ }
+
+ i++;
+ }
+ }
+}
+
+static void
+modelReduceEdgeEscapeVelocity (Model *model)
+{
+ int gridX, gridY, i = 0;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ if (model->objects[i].vertEdge.snapped)
+ model->objects[i].vertEdge.velocity *= drand48 () * 0.25f;
+
+ if (model->objects[i].horzEdge.snapped)
+ model->objects[i].horzEdge.velocity *= drand48 () * 0.25f;
+
+ i++;
+ }
+ }
+}
+
+static Bool
+modelDisableSnapping (CompWindow *window,
+ Model *model)
+{
+ int gridX, gridY, i = 0;
+ Bool snapped = FALSE;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ if (model->objects[i].vertEdge.snapped ||
+ model->objects[i].horzEdge.snapped)
+ snapped = TRUE;
+
+ model->objects[i].vertEdge.snapped = FALSE;
+ model->objects[i].horzEdge.snapped = FALSE;
+
+ model->objects[i].edgeMask = 0;
+
+ i++;
+ }
+ }
+
+ memset (model->snapCnt, 0, sizeof (model->snapCnt));
+
+ return snapped;
+}
+
+static void
+modelAdjustObjectsForShiver (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ int gridX, gridY, i = 0;
+ float vX, vY;
+ float w, h;
+ float scale;
+
+ w = width;
+ h = height;
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ if (!model->objects[i].immobile)
+ {
+ vX = model->objects[i].position.x - (x + w / 2);
+ vY = model->objects[i].position.y - (y + h / 2);
+
+ vX /= w;
+ vY /= h;
+
+ scale = ((float) rand () * 7.5f) / RAND_MAX;
+
+ model->objects[i].velocity.x += vX * scale;
+ model->objects[i].velocity.y += vY * scale;
+ }
+
+ i++;
+ }
+ }
+}
+
+static void
+modelInitSprings (Model *model,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ int gridX, gridY, i = 0;
+ float hpad, vpad;
+
+ model->numSprings = 0;
+
+ hpad = ((float) width) / (GRID_WIDTH - 1);
+ vpad = ((float) height) / (GRID_HEIGHT - 1);
+
+ for (gridY = 0; gridY < GRID_HEIGHT; gridY++)
+ {
+ for (gridX = 0; gridX < GRID_WIDTH; gridX++)
+ {
+ if (gridX > 0)
+ modelAddSpring (model,
+ &model->objects[i - 1],
+ &model->objects[i],
+ hpad, 0);
+
+ if (gridY > 0)
+ modelAddSpring (model,
+ &model->objects[i - GRID_WIDTH],
+ &model->objects[i],
+ 0, vpad);
+
+ i++;
+ }
+ }
+}
+
+static void
+modelMove (Model *model,
+ float tx,
+ float ty)
+{
+ int i;
+
+ for (i = 0; i < model->numObjects; i++)
+ {
+ model->objects[i].position.x += tx;
+ model->objects[i].position.y += ty;
+ }
+}
+
+static Model *
+createModel (int x,
+ int y,
+ int width,
+ int height,
+ unsigned int edgeMask)
+{
+ Model *model;
+
+ model = malloc (sizeof (Model));
+ if (!model)
+ return 0;
+
+ model->numObjects = GRID_WIDTH * GRID_HEIGHT;
+ model->objects = malloc (sizeof (Object) * model->numObjects);
+ if (!model->objects)
+ {
+ free (model);
+ return 0;
+ }
+
+ model->anchorObject = 0;
+ model->numSprings = 0;
+
+ model->steps = 0;
+
+ memset (model->snapCnt, 0, sizeof (model->snapCnt));
+
+ model->edgeMask = edgeMask;
+
+ modelInitObjects (model, x, y, width, height);
+ modelInitSprings (model, x, y, width, height);
+
+ modelCalcBounds (model);
+
+ return model;
+}
+
+static void
+objectApplyForce (Object *object,
+ float fx,
+ float fy)
+{
+ object->force.x += fx;
+ object->force.y += fy;
+}
+
+static void
+springExertForces (Spring *spring,
+ float k)
+{
+ Vector da, db;
+ Vector a, b;
+
+ a = spring->a->position;
+ b = spring->b->position;
+
+ da.x = 0.5f * (b.x - a.x - spring->offset.x);
+ da.y = 0.5f * (b.y - a.y - spring->offset.y);
+
+ db.x = 0.5f * (a.x - b.x + spring->offset.x);
+ db.y = 0.5f * (a.y - b.y + spring->offset.y);
+
+ objectApplyForce (spring->a, k * da.x, k * da.y);
+ objectApplyForce (spring->b, k * db.x, k * db.y);
+}
+
+static Bool
+objectReleaseWestEdge (CompWindow *w,
+ Model *model,
+ Object *object)
+{
+ if (fabs (object->velocity.x) > object->vertEdge.velocity)
+ {
+ object->position.x += object->velocity.x * 2.0f;
+
+ model->snapCnt[WEST]--;
+
+ object->vertEdge.snapped = FALSE;
+ object->edgeMask = 0;
+
+ modelUpdateSnapping (w, model);
+
+ return TRUE;
+ }
+
+ object->velocity.x = 0.0f;
+
+ return FALSE;
+}
+
+static Bool
+objectReleaseEastEdge (CompWindow *w,
+ Model *model,
+ Object *object)
+{
+ if (fabs (object->velocity.x) > object->vertEdge.velocity)
+ {
+ object->position.x += object->velocity.x * 2.0f;
+
+ model->snapCnt[EAST]--;
+
+ object->vertEdge.snapped = FALSE;
+ object->edgeMask = 0;
+
+ modelUpdateSnapping (w, model);
+
+ return TRUE;
+ }
+
+ object->velocity.x = 0.0f;
+
+ return FALSE;
+}
+
+static Bool
+objectReleaseNorthEdge (CompWindow *w,
+ Model *model,
+ Object *object)
+{
+ if (fabs (object->velocity.y) > object->horzEdge.velocity)
+ {
+ object->position.y += object->velocity.y * 2.0f;
+
+ model->snapCnt[NORTH]--;
+
+ object->horzEdge.snapped = FALSE;
+ object->edgeMask = 0;
+
+ modelUpdateSnapping (w, model);
+
+ return TRUE;
+ }
+
+ object->velocity.y = 0.0f;
+
+ return FALSE;
+}
+
+static Bool
+objectReleaseSouthEdge (CompWindow *w,
+ Model *model,
+ Object *object)
+{
+ if (fabs (object->velocity.y) > object->horzEdge.velocity)
+ {
+ object->position.y += object->velocity.y * 2.0f;
+
+ model->snapCnt[SOUTH]--;
+
+ object->horzEdge.snapped = FALSE;
+ object->edgeMask = 0;
+
+ modelUpdateSnapping (w, model);
+
+ return TRUE;
+ }
+
+ object->velocity.y = 0.0f;
+
+ return FALSE;
+}
+
+static float
+modelStepObject (CompWindow *window,
+ Model *model,
+ Object *object,
+ float friction,
+ float *force)
+{
+ object->theta += 0.05f;
+
+ if (object->immobile)
+ {
+ object->velocity.x = 0.0f;
+ object->velocity.y = 0.0f;
+
+ object->force.x = 0.0f;
+ object->force.y = 0.0f;
+
+ *force = 0.0f;
+
+ return 0.0f;
+ }
+ else
+ {
+ object->force.x -= friction * object->velocity.x;
+ object->force.y -= friction * object->velocity.y;
+
+ object->velocity.x += object->force.x / MASS;
+ object->velocity.y += object->force.y / MASS;
+
+ if (object->edgeMask)
+ {
+ if (object->edgeMask & WestEdgeMask)
+ {
+ if (object->position.y < object->vertEdge.start ||
+ object->position.y > object->vertEdge.end)
+ findNextWestEdge (window, object);
+
+ if (!object->vertEdge.snapped ||
+ objectReleaseWestEdge (window, model, object))
+ {
+ object->position.x += object->velocity.x;
+
+ if (object->velocity.x < 0.0f &&
+ object->position.x < object->vertEdge.attract)
+ {
+ if (object->position.x < object->vertEdge.next)
+ {
+ object->vertEdge.snapped = TRUE;
+ object->position.x = object->vertEdge.next;
+ object->velocity.x = 0.0f;
+
+ model->snapCnt[WEST]++;
+
+ modelUpdateSnapping (window, model);
+ }
+ else
+ {
+ object->velocity.x -=
+ object->vertEdge.attract - object->position.x;
+ }
+ }
+
+ if (object->position.x > object->vertEdge.prev)
+ findNextWestEdge (window, object);
+ }
+ }
+ else if (object->edgeMask & EastEdgeMask)
+ {
+ if (object->position.y < object->vertEdge.start ||
+ object->position.y > object->vertEdge.end)
+ findNextEastEdge (window, object);
+
+ if (!object->vertEdge.snapped ||
+ objectReleaseEastEdge (window, model, object))
+ {
+ object->position.x += object->velocity.x;
+
+ if (object->velocity.x > 0.0f &&
+ object->position.x > object->vertEdge.attract)
+ {
+ if (object->position.x > object->vertEdge.next)
+ {
+ object->vertEdge.snapped = TRUE;
+ object->position.x = object->vertEdge.next;
+ object->velocity.x = 0.0f;
+
+ model->snapCnt[EAST]++;
+
+ modelUpdateSnapping (window, model);
+ }
+ else
+ {
+ object->velocity.x =
+ object->position.x - object->vertEdge.attract;
+ }
+ }
+
+ if (object->position.x < object->vertEdge.prev)
+ findNextEastEdge (window, object);
+ }
+ }
+ else
+ object->position.x += object->velocity.x;
+
+ if (object->edgeMask & NorthEdgeMask)
+ {
+ if (object->position.x < object->horzEdge.start ||
+ object->position.x > object->horzEdge.end)
+ findNextNorthEdge (window, object);
+
+ if (!object->horzEdge.snapped ||
+ objectReleaseNorthEdge (window, model, object))
+ {
+ object->position.y += object->velocity.y;
+
+ if (object->velocity.y < 0.0f &&
+ object->position.y < object->horzEdge.attract)
+ {
+ if (object->position.y < object->horzEdge.next)
+ {
+ object->horzEdge.snapped = TRUE;
+ object->position.y = object->horzEdge.next;
+ object->velocity.y = 0.0f;
+
+ model->snapCnt[NORTH]++;
+
+ modelUpdateSnapping (window, model);
+ }
+ else
+ {
+ object->velocity.y -=
+ object->horzEdge.attract - object->position.y;
+ }
+ }
+
+ if (object->position.y > object->horzEdge.prev)
+ findNextNorthEdge (window, object);
+ }
+ }
+ else if (object->edgeMask & SouthEdgeMask)
+ {
+ if (object->position.x < object->horzEdge.start ||
+ object->position.x > object->horzEdge.end)
+ findNextSouthEdge (window, object);
+
+ if (!object->horzEdge.snapped ||
+ objectReleaseSouthEdge (window, model, object))
+ {
+ object->position.y += object->velocity.y;
+
+ if (object->velocity.y > 0.0f &&
+ object->position.y > object->horzEdge.attract)
+ {
+ if (object->position.y > object->horzEdge.next)
+ {
+ object->horzEdge.snapped = TRUE;
+ object->position.y = object->horzEdge.next;
+ object->velocity.y = 0.0f;
+
+ model->snapCnt[SOUTH]++;
+
+ modelUpdateSnapping (window, model);
+ }
+ else
+ {
+ object->velocity.y =
+ object->position.y - object->horzEdge.attract;
+ }
+ }
+
+ if (object->position.y < object->horzEdge.prev)
+ findNextSouthEdge (window, object);
+ }
+ }
+ else
+ object->position.y += object->velocity.y;
+ }
+ else
+ {
+ object->position.x += object->velocity.x;
+ object->position.y += object->velocity.y;
+ }
+
+ *force = fabs (object->force.x) + fabs (object->force.y);
+
+ object->force.x = 0.0f;
+ object->force.y = 0.0f;
+
+ return fabs (object->velocity.x) + fabs (object->velocity.y);
+ }
+}
+
+static int
+modelStep (CompWindow *window,
+ Model *model,
+ float friction,
+ float k,
+ float time)
+{
+ int i, j, steps, wobbly = 0;
+ float velocitySum = 0.0f;
+ float force, forceSum = 0.0f;
+
+ model->steps += time / 15.0f;
+ steps = floor (model->steps);
+ model->steps -= steps;
+
+ if (!steps)
+ return TRUE;
+
+ for (j = 0; j < steps; j++)
+ {
+ for (i = 0; i < model->numSprings; i++)
+ springExertForces (&model->springs[i], k);
+
+ for (i = 0; i < model->numObjects; i++)
+ {
+ velocitySum += modelStepObject (window,
+ model,
+ &model->objects[i],
+ friction,
+ &force);
+ forceSum += force;
+ }
+ }
+
+ modelCalcBounds (model);
+
+ if (velocitySum > 0.5f)
+ wobbly |= WobblyVelocity;
+
+ if (forceSum > 20.0f)
+ wobbly |= WobblyForce;
+
+ return wobbly;
+}
+
+static void
+bezierPatchEvaluate (Model *model,
+ float u,
+ float v,
+ float *patchX,
+ float *patchY)
+{
+ float coeffsU[4], coeffsV[4];
+ float x, y;
+ int i, j;
+
+ coeffsU[0] = (1 - u) * (1 - u) * (1 - u);
+ coeffsU[1] = 3 * u * (1 - u) * (1 - u);
+ coeffsU[2] = 3 * u * u * (1 - u);
+ coeffsU[3] = u * u * u;
+
+ coeffsV[0] = (1 - v) * (1 - v) * (1 - v);
+ coeffsV[1] = 3 * v * (1 - v) * (1 - v);
+ coeffsV[2] = 3 * v * v * (1 - v);
+ coeffsV[3] = v * v * v;
+
+ x = y = 0.0f;
+
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ x += coeffsU[i] * coeffsV[j] *
+ model->objects[j * GRID_WIDTH + i].position.x;
+ y += coeffsU[i] * coeffsV[j] *
+ model->objects[j * GRID_WIDTH + i].position.y;
+ }
+ }
+
+ *patchX = x;
+ *patchY = y;
+}
+
+static Bool
+wobblyEnsureModel (CompWindow *w)
+{
+ WOBBLY_WINDOW (w);
+
+ if (!ww->model)
+ {
+ unsigned int edgeMask = 0;
+
+ if (w->type & CompWindowTypeNormalMask)
+ edgeMask = WestEdgeMask | EastEdgeMask | NorthEdgeMask |
+ SouthEdgeMask;
+
+ ww->model = createModel (WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w),
+ edgeMask);
+ if (!ww->model)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static float
+objectDistance (Object *object,
+ float x,
+ float y)
+{
+ float dx, dy;
+
+ dx = object->position.x - x;
+ dy = object->position.y - y;
+
+ return sqrt (dx * dx + dy * dy);
+}
+
+static Object *
+modelFindNearestObject (Model *model,
+ float x,
+ float y)
+{
+ Object *object = &model->objects[0];
+ float distance, minDistance = 0.0;
+ int i;
+
+ for (i = 0; i < model->numObjects; i++)
+ {
+ distance = objectDistance (&model->objects[i], x, y);
+ if (i == 0 || distance < minDistance)
+ {
+ minDistance = distance;
+ object = &model->objects[i];
+ }
+ }
+
+ return object;
+}
+
+static Bool
+isWobblyWin (CompWindow *w)
+{
+ WOBBLY_WINDOW (w);
+
+ if (ww->model)
+ return TRUE;
+
+ /* avoid tiny windows */
+ if (w->width == 1 && w->height == 1)
+ return FALSE;
+
+ /* avoid fullscreen windows */
+ if (w->attrib.x <= 0 &&
+ w->attrib.y <= 0 &&
+ w->attrib.x + w->width >= w->screen->width &&
+ w->attrib.y + w->height >= w->screen->height)
+ return FALSE;
+
+ return TRUE;
+}
+
+static void
+wobblyPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ WobblyWindow *ww;
+ CompWindow *w;
+
+ WOBBLY_SCREEN (s);
+
+ if (ws->wobblyWindows & (WobblyInitial | WobblyVelocity))
+ {
+ BoxRec box;
+ Point topLeft, bottomRight;
+ float friction, springK;
+ Model *model;
+
+ friction = ws->opt[WOBBLY_SCREEN_OPTION_FRICTION].value.f;
+ springK = ws->opt[WOBBLY_SCREEN_OPTION_SPRING_K].value.f;
+
+ ws->wobblyWindows = 0;
+ for (w = s->windows; w; w = w->next)
+ {
+ ww = GET_WOBBLY_WINDOW (w, ws);
+
+ if (ww->wobbly)
+ {
+ if (ww->wobbly & (WobblyInitial | WobblyVelocity))
+ {
+ model = ww->model;
+
+ topLeft = model->topLeft;
+ bottomRight = model->bottomRight;
+
+ ww->wobbly = modelStep (w, model, friction, springK,
+ (ww->wobbly & WobblyVelocity) ?
+ msSinceLastPaint :
+ s->redrawTime);
+
+ if ((ww->state & MAXIMIZE_STATE) && ww->grabbed)
+ ww->wobbly |= WobblyForce;
+
+ if (ww->wobbly)
+ {
+ /* snapped to more than one edge, we have to reduce
+ edge escape velocity until only one edge is snapped */
+ if (ww->wobbly == WobblyForce && !ww->grabbed)
+ {
+ modelReduceEdgeEscapeVelocity (ww->model);
+ ww->wobbly |= WobblyInitial;
+ }
+ }
+ else
+ {
+ ww->model = 0;
+
+ if (w->attrib.x == w->serverX &&
+ w->attrib.y == w->serverY)
+ {
+ moveWindow (w,
+ model->topLeft.x + w->output.left -
+ w->attrib.x,
+ model->topLeft.y + w->output.top -
+ w->attrib.y,
+ TRUE, TRUE);
+ syncWindowPosition (w);
+ }
+
+ ww->model = model;
+ }
+
+ if (!(s->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK))
+ {
+ if (ww->wobbly)
+ {
+ if (ww->model->topLeft.x < topLeft.x)
+ topLeft.x = ww->model->topLeft.x;
+ if (ww->model->topLeft.y < topLeft.y)
+ topLeft.y = ww->model->topLeft.y;
+ if (ww->model->bottomRight.x > bottomRight.x)
+ bottomRight.x = ww->model->bottomRight.x;
+ if (ww->model->bottomRight.y > bottomRight.y)
+ bottomRight.y = ww->model->bottomRight.y;
+ }
+ else
+ addWindowDamage (w);
+
+ box.x1 = topLeft.x;
+ box.y1 = topLeft.y;
+ box.x2 = bottomRight.x + 0.5f;
+ box.y2 = bottomRight.y + 0.5f;
+
+ box.x1 -= w->attrib.x + w->attrib.border_width;
+ box.y1 -= w->attrib.y + w->attrib.border_width;
+ box.x2 -= w->attrib.x + w->attrib.border_width;
+ box.y2 -= w->attrib.y + w->attrib.border_width;
+
+ addWindowDamageRect (w, &box);
+ }
+ }
+
+ ws->wobblyWindows |= ww->wobbly;
+ }
+ }
+ }
+
+ UNWRAP (ws, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ws, s, preparePaintScreen, wobblyPreparePaintScreen);
+}
+
+static void
+wobblyDonePaintScreen (CompScreen *s)
+{
+ WOBBLY_SCREEN (s);
+
+ if (ws->wobblyWindows & (WobblyVelocity | WobblyInitial))
+ damagePendingOnScreen (s);
+
+ UNWRAP (ws, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (ws, s, donePaintScreen, wobblyDonePaintScreen);
+}
+
+static void
+wobblyDrawWindowGeometry (CompWindow *w)
+{
+ int texUnit = w->texUnits;
+ int currentTexUnit = 0;
+ int stride = w->vertexStride;
+ GLfloat *vertices = w->vertices + (stride - 3);
+
+ stride *= sizeof (GLfloat);
+
+ glVertexPointer (3, GL_FLOAT, stride, vertices);
+
+ while (texUnit--)
+ {
+ if (texUnit != currentTexUnit)
+ {
+ w->screen->clientActiveTexture (GL_TEXTURE0_ARB + texUnit);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ currentTexUnit = texUnit;
+ }
+ vertices -= w->texCoordSize;
+ glTexCoordPointer (w->texCoordSize, GL_FLOAT, stride, vertices);
+ }
+
+ glDrawElements (GL_QUADS, w->indexCount, GL_UNSIGNED_SHORT, w->indices);
+
+ /* disable all texture coordinate arrays except 0 */
+ texUnit = w->texUnits;
+ if (texUnit > 1)
+ {
+ while (--texUnit)
+ {
+ (*w->screen->clientActiveTexture) (GL_TEXTURE0_ARB + texUnit);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ }
+
+ (*w->screen->clientActiveTexture) (GL_TEXTURE0_ARB);
+ }
+}
+
+static void
+wobblyAddWindowGeometry (CompWindow *w,
+ CompMatrix *matrix,
+ int nMatrix,
+ Region region,
+ Region clip)
+{
+ WOBBLY_WINDOW (w);
+ WOBBLY_SCREEN (w->screen);
+
+ if (ww->wobbly)
+ {
+ BoxPtr pClip;
+ int nClip, nVertices, nIndices;
+ GLushort *i;
+ GLfloat *v;
+ int x1, y1, x2, y2;
+ float width, height;
+ float deformedX, deformedY;
+ int x, y, iw, ih, wx, wy;
+ int vSize, it;
+ int gridW, gridH;
+ Bool rect = TRUE;
+
+ for (it = 0; it < nMatrix; it++)
+ {
+ if (matrix[it].xy != 0.0f || matrix[it].yx != 0.0f)
+ {
+ rect = FALSE;
+ break;
+ }
+ }
+
+ wx = WIN_X (w);
+ wy = WIN_Y (w);
+ width = WIN_W (w);
+ height = WIN_H (w);
+
+ gridW = width / ws->opt[WOBBLY_SCREEN_OPTION_GRID_RESOLUTION].value.i;
+ if (gridW < ws->opt[WOBBLY_SCREEN_OPTION_MIN_GRID_SIZE].value.i)
+ gridW = ws->opt[WOBBLY_SCREEN_OPTION_MIN_GRID_SIZE].value.i;
+
+ gridH = height / ws->opt[WOBBLY_SCREEN_OPTION_GRID_RESOLUTION].value.i;
+ if (gridH < ws->opt[WOBBLY_SCREEN_OPTION_MIN_GRID_SIZE].value.i)
+ gridH = ws->opt[WOBBLY_SCREEN_OPTION_MIN_GRID_SIZE].value.i;
+
+ nClip = region->numRects;
+ pClip = region->rects;
+
+ w->texUnits = nMatrix;
+
+ vSize = 3 + nMatrix * 2;
+
+ nVertices = w->vCount;
+ nIndices = w->indexCount;
+
+ v = w->vertices + (nVertices * vSize);
+ i = w->indices + nIndices;
+
+ while (nClip--)
+ {
+ x1 = pClip->x1;
+ y1 = pClip->y1;
+ x2 = pClip->x2;
+ y2 = pClip->y2;
+
+ iw = ((x2 - x1 - 1) / gridW) + 1;
+ ih = ((y2 - y1 - 1) / gridH) + 1;
+
+ if (nIndices + (iw * ih * 4) > w->indexSize)
+ {
+ if (!moreWindowIndices (w, nIndices + (iw * ih * 4)))
+ return;
+
+ i = w->indices + nIndices;
+ }
+
+ iw++;
+ ih++;
+
+ for (y = 0; y < ih - 1; y++)
+ {
+ for (x = 0; x < iw - 1; x++)
+ {
+ *i++ = nVertices + iw * (y + 1) + x;
+ *i++ = nVertices + iw * (y + 1) + x + 1;
+ *i++ = nVertices + iw * y + x + 1;
+ *i++ = nVertices + iw * y + x;
+
+ nIndices += 4;
+ }
+ }
+
+ if (((nVertices + iw * ih) * vSize) > w->vertexSize)
+ {
+ if (!moreWindowVertices (w, (nVertices + iw * ih) * vSize))
+ return;
+
+ v = w->vertices + (nVertices * vSize);
+ }
+
+ for (y = y1;; y += gridH)
+ {
+ if (y > y2)
+ y = y2;
+
+ for (x = x1;; x += gridW)
+ {
+ if (x > x2)
+ x = x2;
+
+ bezierPatchEvaluate (ww->model,
+ (x - wx) / width,
+ (y - wy) / height,
+ &deformedX,
+ &deformedY);
+
+ if (rect)
+ {
+ for (it = 0; it < nMatrix; it++)
+ {
+ *v++ = COMP_TEX_COORD_X (&matrix[it], x);
+ *v++ = COMP_TEX_COORD_Y (&matrix[it], y);
+ }
+ }
+ else
+ {
+ for (it = 0; it < nMatrix; it++)
+ {
+ *v++ = COMP_TEX_COORD_XY (&matrix[it], x, y);
+ *v++ = COMP_TEX_COORD_YX (&matrix[it], x, y);
+ }
+ }
+
+ *v++ = deformedX;
+ *v++ = deformedY;
+ *v++ = 0.0;
+
+ nVertices++;
+
+ if (x == x2)
+ break;
+ }
+
+ if (y == y2)
+ break;
+ }
+
+ pClip++;
+ }
+
+ w->vCount = nVertices;
+ w->vertexStride = vSize;
+ w->texCoordSize = 2;
+ w->indexCount = nIndices;
+ w->drawWindowGeometry = wobblyDrawWindowGeometry;
+ }
+ else
+ {
+ UNWRAP (ws, w->screen, addWindowGeometry);
+ (*w->screen->addWindowGeometry) (w, matrix, nMatrix, region, clip);
+ WRAP (ws, w->screen, addWindowGeometry, wobblyAddWindowGeometry);
+ }
+}
+
+static Bool
+wobblyPaintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ Bool status;
+
+ WOBBLY_SCREEN (w->screen);
+ WOBBLY_WINDOW (w);
+
+ if (ww->wobbly)
+ mask |= PAINT_WINDOW_TRANSFORMED_MASK;
+
+ UNWRAP (ws, w->screen, paintWindow);
+ status = (*w->screen->paintWindow) (w, attrib, transform, region, mask);
+ WRAP (ws, w->screen, paintWindow, wobblyPaintWindow);
+
+ return status;
+}
+
+static Bool
+wobblyEnableSnapping (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ WOBBLY_DISPLAY (d);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ WOBBLY_WINDOW (w);
+
+ if (ww->grabbed && ww->model)
+ modelUpdateSnapping (w, ww->model);
+ }
+ }
+
+ wd->snapping = TRUE;
+
+ return FALSE;
+}
+
+static Bool
+wobblyDisableSnapping (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ WOBBLY_DISPLAY (d);
+
+ if (!wd->snapping)
+ return FALSE;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ WOBBLY_WINDOW (w);
+
+ if (ww->grabbed && ww->model)
+ {
+ if (modelDisableSnapping (w, ww->model))
+ {
+ WOBBLY_SCREEN (w->screen);
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ }
+ }
+ }
+
+ wd->snapping = FALSE;
+
+ return FALSE;
+}
+
+static Bool
+wobblyShiver (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findWindowAtDisplay (d, xid);
+ if (w && isWobblyWin (w) && wobblyEnsureModel (w))
+ {
+ WOBBLY_SCREEN (w->screen);
+ WOBBLY_WINDOW (w);
+
+ modelSetMiddleAnchor (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ modelAdjustObjectsForShiver (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+
+ return FALSE;
+}
+
+static void
+wobblyHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ Window activeWindow = d->activeWindow;
+ CompWindow *w;
+ CompScreen *s;
+
+ WOBBLY_DISPLAY (d);
+
+ switch (event->type) {
+ case MapNotify:
+ w = findWindowAtDisplay (d, event->xmap.window);
+ if (w)
+ {
+ WOBBLY_WINDOW (w);
+
+ if (ww->model)
+ {
+ modelInitObjects (ww->model,
+ WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w));
+
+ modelInitSprings (ww->model,
+ WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w));
+ }
+ }
+ break;
+ default:
+ if (event->type == d->xkbEvent)
+ {
+ XkbAnyEvent *xkbEvent = (XkbAnyEvent *) event;
+
+ if (xkbEvent->xkb_type == XkbStateNotify)
+ {
+ XkbStateNotifyEvent *stateEvent = (XkbStateNotifyEvent *) event;
+ CompAction *action;
+ Bool inverted;
+ unsigned int mods = 0xffffffff;
+
+ action =
+ &wd->opt[WOBBLY_DISPLAY_OPTION_SNAP_KEY].value.action;
+ inverted = wd->opt[WOBBLY_DISPLAY_OPTION_SNAP_INVERTED].value.b;
+
+ if (action->type & CompBindingTypeKey)
+ mods = action->key.modifiers;
+
+ if ((stateEvent->mods & mods) == mods)
+ {
+ if (inverted)
+ wobblyDisableSnapping (d, NULL, 0, NULL, 0);
+ else
+ wobblyEnableSnapping (d, NULL, 0, NULL, 0);
+ }
+ else
+ {
+ if (inverted)
+ wobblyEnableSnapping (d, NULL, 0, NULL, 0);
+ else
+ wobblyDisableSnapping (d, NULL, 0, NULL, 0);
+ }
+ }
+ }
+ break;
+ }
+
+ UNWRAP (wd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (wd, d, handleEvent, wobblyHandleEvent);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ {
+ WOBBLY_SCREEN (s);
+
+ if (ws->grabWindow &&
+ ws->moveWindow &&
+ ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
+ {
+ WOBBLY_WINDOW (ws->grabWindow);
+
+ if (ww->state & MAXIMIZE_STATE)
+ {
+ if (ww->model && ww->grabbed)
+ {
+ int dx, dy;
+
+ if (ww->state & CompWindowStateMaximizedHorzMask)
+ dx = pointerX - lastPointerX;
+ else
+ dx = 0;
+
+ if (ww->state & CompWindowStateMaximizedVertMask)
+ dy = pointerY - lastPointerY;
+ else
+ dy = 0;
+
+ ww->model->anchorObject->position.x += dx;
+ ww->model->anchorObject->position.y += dy;
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (s);
+ }
+ }
+ }
+ }
+ default:
+ break;
+ }
+
+ if (d->activeWindow != activeWindow)
+ {
+ w = findWindowAtDisplay (d, d->activeWindow);
+ if (w && isWobblyWin (w))
+ {
+ int mIndex;
+ int focusEffect;
+
+ WOBBLY_WINDOW (w);
+ WOBBLY_SCREEN (w->screen);
+
+ mIndex = WOBBLY_SCREEN_OPTION_FOCUS_WINDOW_MATCH;
+ focusEffect = ws->opt[WOBBLY_SCREEN_OPTION_FOCUS_EFFECT].value.i;
+
+ if ((focusEffect != WOBBLY_EFFECT_NONE) &&
+ matchEval (&ws->opt[mIndex].value.match, w) &&
+ wobblyEnsureModel (w))
+ {
+ switch (focusEffect) {
+ case WOBBLY_EFFECT_SHIVER:
+ modelAdjustObjectsForShiver (ww->model,
+ WIN_X (w),
+ WIN_Y (w),
+ WIN_W (w),
+ WIN_H (w));
+ default:
+ break;
+ }
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ }
+ }
+}
+
+static Bool
+wobblyDamageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ Bool status;
+
+ WOBBLY_SCREEN (w->screen);
+
+ if (!initial)
+ {
+ WOBBLY_WINDOW (w);
+
+ if (ww->wobbly == WobblyForce)
+ {
+ REGION region;
+
+ region.rects = &region.extents;
+ region.numRects = region.size = 1;
+
+ region.extents.x1 = ww->model->topLeft.x;
+ region.extents.y1 = ww->model->topLeft.y;
+ region.extents.x2 = ww->model->bottomRight.x + 0.5f;
+ region.extents.y2 = ww->model->bottomRight.y + 0.5f;
+
+ damageScreenRegion (w->screen, &region);
+
+ return TRUE;
+ }
+ }
+
+ UNWRAP (ws, w->screen, damageWindowRect);
+ status = (*w->screen->damageWindowRect) (w, initial, rect);
+ WRAP (ws, w->screen, damageWindowRect, wobblyDamageWindowRect);
+
+ if (initial)
+ {
+ if (isWobblyWin (w))
+ {
+ int mIndex;
+ int mapEffect;
+
+ WOBBLY_WINDOW (w);
+ WOBBLY_SCREEN (w->screen);
+
+ mIndex = WOBBLY_SCREEN_OPTION_MAP_WINDOW_MATCH;
+ mapEffect = ws->opt[WOBBLY_SCREEN_OPTION_MAP_EFFECT].value.i;
+
+ if (ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
+ wobblyEnsureModel (w);
+
+ if ((mapEffect != WOBBLY_EFFECT_NONE) &&
+ matchEval (&ws->opt[mIndex].value.match, w) &&
+ wobblyEnsureModel (w))
+ {
+ switch (mapEffect) {
+ case WOBBLY_EFFECT_SHIVER:
+ modelAdjustObjectsForShiver (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ default:
+ break;
+ }
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ }
+ }
+
+ return status;
+}
+
+static void
+wobblyWindowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+ WOBBLY_SCREEN (w->screen);
+ WOBBLY_WINDOW (w);
+
+ if (ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b &&
+ isWobblyWin (w) &&
+ /* prevent wobbling when shading maximized windows - assuming that
+ the height difference shaded - non-shaded will hardly be -1 and
+ a lack of wobbly animation in that corner case is tolerable */
+ (dheight != -1) &&
+ ((w->state | ww->state) & MAXIMIZE_STATE))
+ {
+ ww->state &= ~MAXIMIZE_STATE;
+ ww->state |= w->state & MAXIMIZE_STATE;
+
+ if (wobblyEnsureModel (w))
+ {
+ if (w->state & MAXIMIZE_STATE)
+ {
+ if (!ww->grabbed && ww->model->anchorObject)
+ {
+ ww->model->anchorObject->immobile = FALSE;
+ ww->model->anchorObject = NULL;
+ }
+
+ modelAddEdgeAnchors (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ }
+ else
+ {
+ modelRemoveEdgeAnchors (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ modelSetMiddleAnchor (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ }
+
+ modelInitSprings (ww->model,
+ WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w));
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ }
+ else if (ww->model)
+ {
+ if (ww->wobbly)
+ {
+ if (!(ww->state & MAXIMIZE_STATE))
+ modelSetTopAnchor (ww->model, WIN_X (w), WIN_Y (w), WIN_W (w));
+ }
+ else
+ {
+ modelInitObjects (ww->model,
+ WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w));
+ }
+
+ modelInitSprings (ww->model,
+ WIN_X (w), WIN_Y (w), WIN_W (w), WIN_H (w));
+ }
+
+ /* update grab */
+ if (ww->model && ww->grabbed)
+ {
+ if (ww->model->anchorObject)
+ ww->model->anchorObject->immobile = FALSE;
+
+ ww->model->anchorObject = modelFindNearestObject (ww->model,
+ pointerX,
+ pointerY);
+ ww->model->anchorObject->immobile = TRUE;
+
+ modelAdjustObjectPosition (ww->model,
+ ww->model->anchorObject,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ }
+
+ UNWRAP (ws, w->screen, windowResizeNotify);
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+ WRAP (ws, w->screen, windowResizeNotify, wobblyWindowResizeNotify);
+}
+
+static void
+wobblyWindowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+ WOBBLY_SCREEN (w->screen);
+ WOBBLY_WINDOW (w);
+
+ if (ww->model)
+ {
+ if (ww->grabbed && !immediate)
+ {
+ if (ww->state & MAXIMIZE_STATE)
+ {
+ int i;
+
+ for (i = 0; i < ww->model->numObjects; i++)
+ {
+ if (ww->model->objects[i].immobile)
+ {
+ ww->model->objects[i].position.x += dx;
+ ww->model->objects[i].position.y += dy;
+ }
+ }
+ }
+ else
+ {
+ ww->model->anchorObject->position.x += dx;
+ ww->model->anchorObject->position.y += dy;
+ }
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ else
+ modelMove (ww->model, dx, dy);
+ }
+
+ UNWRAP (ws, w->screen, windowMoveNotify);
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+ WRAP (ws, w->screen, windowMoveNotify, wobblyWindowMoveNotify);
+}
+
+static void
+wobblyWindowGrabNotify (CompWindow *w,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask)
+{
+ int mIndex;
+
+ WOBBLY_SCREEN (w->screen);
+
+ mIndex = WOBBLY_SCREEN_OPTION_MOVE_WINDOW_MATCH;
+
+ if (!ws->grabWindow)
+ {
+ ws->grabMask = mask;
+ ws->grabWindow = w;
+ }
+ ws->moveWindow = FALSE;
+
+ if ((mask & CompWindowGrabButtonMask) &&
+ matchEval (&ws->opt[mIndex].value.match, w) &&
+ isWobblyWin (w))
+ {
+ WOBBLY_WINDOW (w);
+
+ ws->moveWindow = TRUE;
+
+ if (wobblyEnsureModel (w))
+ {
+ Spring *s;
+ int i;
+
+ if (ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
+ {
+ if (w->state & MAXIMIZE_STATE)
+ {
+ modelAddEdgeAnchors (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ }
+ else
+ {
+ modelRemoveEdgeAnchors (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+
+ if (ww->model->anchorObject)
+ ww->model->anchorObject->immobile = FALSE;
+ }
+ }
+ else
+ {
+ if (ww->model->anchorObject)
+ ww->model->anchorObject->immobile = FALSE;
+ }
+
+ ww->model->anchorObject = modelFindNearestObject (ww->model, x, y);
+ ww->model->anchorObject->immobile = TRUE;
+
+ ww->grabbed = TRUE;
+
+ if (mask & CompWindowGrabMoveMask)
+ {
+ WOBBLY_DISPLAY (w->screen->display);
+
+ modelDisableSnapping (w, ww->model);
+ if (wd->snapping)
+ modelUpdateSnapping (w, ww->model);
+ }
+
+ mIndex = WOBBLY_SCREEN_OPTION_GRAB_WINDOW_MATCH;
+
+ if (matchEval (&ws->opt[mIndex].value.match, w))
+ {
+ for (i = 0; i < ww->model->numSprings; i++)
+ {
+ s = &ww->model->springs[i];
+
+ if (s->a == ww->model->anchorObject)
+ {
+ s->b->velocity.x -= s->offset.x * 0.05f;
+ s->b->velocity.y -= s->offset.y * 0.05f;
+ }
+ else if (s->b == ww->model->anchorObject)
+ {
+ s->a->velocity.x += s->offset.x * 0.05f;
+ s->a->velocity.y += s->offset.y * 0.05f;
+ }
+ }
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+ }
+ }
+
+ UNWRAP (ws, w->screen, windowGrabNotify);
+ (*w->screen->windowGrabNotify) (w, x, y, state, mask);
+ WRAP (ws, w->screen, windowGrabNotify, wobblyWindowGrabNotify);
+}
+
+static void
+wobblyWindowUngrabNotify (CompWindow *w)
+{
+ WOBBLY_SCREEN (w->screen);
+ WOBBLY_WINDOW (w);
+
+ if (w == ws->grabWindow)
+ {
+ ws->grabMask = 0;
+ ws->grabWindow = NULL;
+ }
+
+ if (ww->grabbed)
+ {
+ if (ww->model)
+ {
+ if (ww->model->anchorObject)
+ ww->model->anchorObject->immobile = FALSE;
+
+ ww->model->anchorObject = NULL;
+
+ if (ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
+ {
+ if (ww->state & MAXIMIZE_STATE)
+ modelAddEdgeAnchors (ww->model,
+ WIN_X (w), WIN_Y (w),
+ WIN_W (w), WIN_H (w));
+ }
+
+ ww->wobbly |= WobblyInitial;
+ ws->wobblyWindows |= ww->wobbly;
+
+ damagePendingOnScreen (w->screen);
+ }
+
+ ww->grabbed = FALSE;
+ }
+
+ UNWRAP (ws, w->screen, windowUngrabNotify);
+ (*w->screen->windowUngrabNotify) (w);
+ WRAP (ws, w->screen, windowUngrabNotify, wobblyWindowUngrabNotify);
+}
+
+
+static Bool
+wobblyPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ Bool status;
+
+ WOBBLY_SCREEN (s);
+
+ if (ws->wobblyWindows)
+ mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK;
+
+ UNWRAP (ws, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
+ WRAP (ws, s, paintOutput, wobblyPaintOutput);
+
+ return status;
+}
+
+static CompOption *
+wobblyGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ WOBBLY_DISPLAY (display);
+
+ *count = NUM_OPTIONS (wd);
+ return wd->opt;
+}
+
+static Bool
+wobblySetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ WOBBLY_DISPLAY (display);
+
+ o = compFindOption (wd->opt, NUM_OPTIONS (wd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case WOBBLY_DISPLAY_OPTION_SNAP_KEY:
+ /* ignore the key */
+ value->action.key.keycode = 0;
+
+ if (compSetActionOption (o, value))
+ return TRUE;
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo wobblyDisplayOptionInfo[] = {
+ { "snap_key", "key", "<passive_grab>false</passive_grab>",
+ wobblyEnableSnapping, wobblyDisableSnapping },
+ { "snap_inverted", "bool", 0, 0, 0 },
+ { "shiver", "bell", 0, wobblyShiver, 0 }
+};
+
+static Bool
+wobblyInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ WobblyDisplay *wd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ wd = malloc (sizeof (WobblyDisplay));
+ if (!wd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &wobblyMetadata,
+ wobblyDisplayOptionInfo,
+ wd->opt,
+ WOBBLY_DISPLAY_OPTION_NUM))
+ {
+ free (wd);
+ return FALSE;
+ }
+
+ wd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (wd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, wd->opt, WOBBLY_DISPLAY_OPTION_NUM);
+ free (wd);
+ return FALSE;
+ }
+
+ WRAP (wd, d, handleEvent, wobblyHandleEvent);
+
+ wd->snapping = FALSE;
+
+ d->base.privates[displayPrivateIndex].ptr = wd;
+
+ return TRUE;
+}
+
+static void
+wobblyFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ WOBBLY_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, wd->screenPrivateIndex);
+
+ UNWRAP (wd, d, handleEvent);
+
+ compFiniDisplayOptions (d, wd->opt, WOBBLY_DISPLAY_OPTION_NUM);
+
+ free (wd);
+}
+
+static Bool
+wobblyInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ WobblyScreen *ws;
+
+ WOBBLY_DISPLAY (s->display);
+
+ ws = malloc (sizeof (WobblyScreen));
+ if (!ws)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &wobblyMetadata,
+ wobblyScreenOptionInfo,
+ ws->opt,
+ WOBBLY_SCREEN_OPTION_NUM))
+ {
+ free (ws);
+ return FALSE;
+ }
+
+ ws->windowPrivateIndex = allocateWindowPrivateIndex (s);
+ if (ws->windowPrivateIndex < 0)
+ {
+ compFiniScreenOptions (s, ws->opt, WOBBLY_SCREEN_OPTION_NUM);
+ free (ws);
+ return FALSE;
+ }
+
+ ws->wobblyWindows = FALSE;
+
+ ws->grabMask = 0;
+ ws->grabWindow = NULL;
+ ws->moveWindow = FALSE;
+
+ WRAP (ws, s, preparePaintScreen, wobblyPreparePaintScreen);
+ WRAP (ws, s, donePaintScreen, wobblyDonePaintScreen);
+ WRAP (ws, s, paintOutput, wobblyPaintOutput);
+ WRAP (ws, s, paintWindow, wobblyPaintWindow);
+ WRAP (ws, s, damageWindowRect, wobblyDamageWindowRect);
+ WRAP (ws, s, addWindowGeometry, wobblyAddWindowGeometry);
+ WRAP (ws, s, windowResizeNotify, wobblyWindowResizeNotify);
+ WRAP (ws, s, windowMoveNotify, wobblyWindowMoveNotify);
+ WRAP (ws, s, windowGrabNotify, wobblyWindowGrabNotify);
+ WRAP (ws, s, windowUngrabNotify, wobblyWindowUngrabNotify);
+
+ s->base.privates[wd->screenPrivateIndex].ptr = ws;
+
+ return TRUE;
+}
+
+static void
+wobblyFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ WOBBLY_SCREEN (s);
+
+ freeWindowPrivateIndex (s, ws->windowPrivateIndex);
+
+ UNWRAP (ws, s, preparePaintScreen);
+ UNWRAP (ws, s, donePaintScreen);
+ UNWRAP (ws, s, paintOutput);
+ UNWRAP (ws, s, paintWindow);
+ UNWRAP (ws, s, damageWindowRect);
+ UNWRAP (ws, s, addWindowGeometry);
+ UNWRAP (ws, s, windowResizeNotify);
+ UNWRAP (ws, s, windowMoveNotify);
+ UNWRAP (ws, s, windowGrabNotify);
+ UNWRAP (ws, s, windowUngrabNotify);
+
+ compFiniScreenOptions (s, ws->opt, WOBBLY_SCREEN_OPTION_NUM);
+
+ free (ws);
+}
+
+static Bool
+wobblyInitWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ WobblyWindow *ww;
+
+ WOBBLY_SCREEN (w->screen);
+
+ ww = malloc (sizeof (WobblyWindow));
+ if (!ww)
+ return FALSE;
+
+ ww->model = 0;
+ ww->wobbly = 0;
+ ww->grabbed = FALSE;
+ ww->state = w->state;
+
+ w->base.privates[ws->windowPrivateIndex].ptr = ww;
+
+ if (w->mapNum && ws->opt[WOBBLY_SCREEN_OPTION_MAXIMIZE_EFFECT].value.b)
+ {
+ if (isWobblyWin (w))
+ wobblyEnsureModel (w);
+ }
+
+ return TRUE;
+}
+
+static void
+wobblyFiniWindow (CompPlugin *p,
+ CompWindow *w)
+{
+ WOBBLY_WINDOW (w);
+ WOBBLY_SCREEN (w->screen);
+
+ if (ws->grabWindow == w)
+ {
+ ws->grabWindow = NULL;
+ ws->grabMask = 0;
+ }
+
+ if (ww->model)
+ {
+ free (ww->model->objects);
+ free (ww->model);
+ }
+
+ free (ww);
+}
+
+static CompBool
+wobblyInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) wobblyInitDisplay,
+ (InitPluginObjectProc) wobblyInitScreen,
+ (InitPluginObjectProc) wobblyInitWindow
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+wobblyFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) wobblyFiniDisplay,
+ (FiniPluginObjectProc) wobblyFiniScreen,
+ (FiniPluginObjectProc) wobblyFiniWindow
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+wobblyGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) wobblyGetDisplayOptions,
+ (GetPluginObjectOptionsProc) wobblyGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+wobblySetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) wobblySetDisplayOption,
+ (SetPluginObjectOptionProc) wobblySetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+wobblyInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&wobblyMetadata,
+ p->vTable->name,
+ wobblyDisplayOptionInfo,
+ WOBBLY_DISPLAY_OPTION_NUM,
+ wobblyScreenOptionInfo,
+ WOBBLY_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&wobblyMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&wobblyMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+wobblyFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&wobblyMetadata);
+}
+
+static CompMetadata *
+wobblyGetMetadata (CompPlugin *plugin)
+{
+ return &wobblyMetadata;
+}
+
+CompPluginVTable wobblyVTable = {
+ "wobbly",
+ wobblyGetMetadata,
+ wobblyInit,
+ wobblyFini,
+ wobblyInitObject,
+ wobblyFiniObject,
+ wobblyGetObjectOptions,
+ wobblySetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &wobblyVTable;
+}
diff --git a/plugins/zoom.c b/plugins/zoom.c
new file mode 100644
index 0000000..3726a47
--- /dev/null
+++ b/plugins/zoom.c
@@ -0,0 +1,1203 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/time.h>
+
+#include <X11/cursorfont.h>
+
+#include <compiz-core.h>
+
+static CompMetadata zoomMetadata;
+
+static int displayPrivateIndex;
+
+#define ZOOM_DISPLAY_OPTION_INITIATE_BUTTON 0
+#define ZOOM_DISPLAY_OPTION_IN_BUTTON 1
+#define ZOOM_DISPLAY_OPTION_OUT_BUTTON 2
+#define ZOOM_DISPLAY_OPTION_PAN_BUTTON 3
+#define ZOOM_DISPLAY_OPTION_NUM 4
+
+typedef struct _ZoomDisplay {
+ int screenPrivateIndex;
+ HandleEventProc handleEvent;
+
+ CompOption opt[ZOOM_DISPLAY_OPTION_NUM];
+} ZoomDisplay;
+
+typedef struct _ZoomBox {
+ float x1;
+ float y1;
+ float x2;
+ float y2;
+} ZoomBox;
+
+#define ZOOM_SCREEN_OPTION_SPEED 0
+#define ZOOM_SCREEN_OPTION_TIMESTEP 1
+#define ZOOM_SCREEN_OPTION_ZOOM_FACTOR 2
+#define ZOOM_SCREEN_OPTION_FILTER_LINEAR 3
+#define ZOOM_SCREEN_OPTION_NUM 4
+
+typedef struct _ZoomScreen {
+ PreparePaintScreenProc preparePaintScreen;
+ DonePaintScreenProc donePaintScreen;
+ PaintOutputProc paintOutput;
+
+ CompOption opt[ZOOM_SCREEN_OPTION_NUM];
+
+ float pointerSensitivity;
+
+ int grabIndex;
+ Bool grab;
+
+ int zoomed;
+
+ Bool adjust;
+
+ int panGrabIndex;
+ Cursor panCursor;
+
+ GLfloat velocity;
+ GLfloat scale;
+
+ ZoomBox current[16];
+ ZoomBox last[16];
+
+ int x1, y1, x2, y2;
+
+ int zoomOutput;
+} ZoomScreen;
+
+#define GET_ZOOM_DISPLAY(d) \
+ ((ZoomDisplay *) (d)->base.privates[displayPrivateIndex].ptr)
+
+#define ZOOM_DISPLAY(d) \
+ ZoomDisplay *zd = GET_ZOOM_DISPLAY (d)
+
+#define GET_ZOOM_SCREEN(s, zd) \
+ ((ZoomScreen *) (s)->base.privates[(zd)->screenPrivateIndex].ptr)
+
+#define ZOOM_SCREEN(s) \
+ ZoomScreen *zs = GET_ZOOM_SCREEN (s, GET_ZOOM_DISPLAY (s->display))
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static CompOption *
+zoomGetScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ ZOOM_SCREEN (screen);
+
+ *count = NUM_OPTIONS (zs);
+ return zs->opt;
+}
+
+static Bool
+zoomSetScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+
+ ZOOM_SCREEN (screen);
+
+ o = compFindOption (zs->opt, NUM_OPTIONS (zs), name, NULL);
+ if (!o)
+ return FALSE;
+
+ return compSetScreenOption (screen, o, value);
+}
+
+static int
+adjustZoomVelocity (ZoomScreen *zs)
+{
+ float d, adjust, amount;
+
+ d = (1.0f - zs->scale) * 10.0f;
+
+ adjust = d * 0.002f;
+ amount = fabs (d);
+ if (amount < 1.0f)
+ amount = 1.0f;
+ else if (amount > 5.0f)
+ amount = 5.0f;
+
+ zs->velocity = (amount * zs->velocity + adjust) / (amount + 1.0f);
+
+ return (fabs (d) < 0.02f && fabs (zs->velocity) < 0.005f);
+}
+
+static void
+zoomInEvent (CompScreen *s)
+{
+ CompOption o[6];
+
+ ZOOM_SCREEN (s);
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "root";
+ o[0].value.i = s->root;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "output";
+ o[1].value.i = zs->zoomOutput;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "x1";
+ o[2].value.i = zs->current[zs->zoomOutput].x1;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "y1";
+ o[3].value.i = zs->current[zs->zoomOutput].y1;
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "x2";
+ o[4].value.i = zs->current[zs->zoomOutput].x2;
+
+ o[5].type = CompOptionTypeInt;
+ o[5].name = "y2";
+ o[5].value.i = zs->current[zs->zoomOutput].y2;
+
+ (*s->display->handleCompizEvent) (s->display, "zoom", "in", o, 6);
+}
+
+static void
+zoomOutEvent (CompScreen *s)
+{
+ CompOption o[2];
+
+ ZOOM_SCREEN (s);
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "root";
+ o[0].value.i = s->root;
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "output";
+ o[1].value.i = zs->zoomOutput;
+
+ (*s->display->handleCompizEvent) (s->display, "zoom", "out", o, 2);
+}
+
+static void
+zoomPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ ZOOM_SCREEN (s);
+
+ if (zs->adjust)
+ {
+ int steps;
+ float amount;
+
+ amount = msSinceLastPaint * 0.35f *
+ zs->opt[ZOOM_SCREEN_OPTION_SPEED].value.f;
+ steps = amount / (0.5f * zs->opt[ZOOM_SCREEN_OPTION_TIMESTEP].value.f);
+ if (!steps) steps = 1;
+
+ while (steps--)
+ {
+ if (adjustZoomVelocity (zs))
+ {
+ BoxPtr pBox = &s->outputDev[zs->zoomOutput].region.extents;
+
+ zs->scale = 1.0f;
+ zs->velocity = 0.0f;
+ zs->adjust = FALSE;
+
+ if (zs->current[zs->zoomOutput].x1 == pBox->x1 &&
+ zs->current[zs->zoomOutput].y1 == pBox->y1 &&
+ zs->current[zs->zoomOutput].x2 == pBox->x2 &&
+ zs->current[zs->zoomOutput].y2 == pBox->y2)
+ {
+ zs->zoomed &= ~(1 << zs->zoomOutput);
+ zoomOutEvent (s);
+ }
+ else
+ {
+ zoomInEvent (s);
+ }
+
+ break;
+ }
+ else
+ {
+ zs->scale += (zs->velocity * msSinceLastPaint) / s->redrawTime;
+ }
+ }
+ }
+
+ UNWRAP (zs, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (zs, s, preparePaintScreen, zoomPreparePaintScreen);
+}
+
+static void
+zoomGetCurrentZoom (CompScreen *s,
+ int output,
+ ZoomBox *pBox)
+{
+ ZOOM_SCREEN (s);
+
+ if (output == zs->zoomOutput)
+ {
+ float inverse;
+
+ inverse = 1.0f - zs->scale;
+
+ pBox->x1 = zs->scale * zs->current[output].x1 +
+ inverse * zs->last[output].x1;
+ pBox->y1 = zs->scale * zs->current[output].y1 +
+ inverse * zs->last[output].y1;
+ pBox->x2 = zs->scale * zs->current[output].x2 +
+ inverse * zs->last[output].x2;
+ pBox->y2 = zs->scale * zs->current[output].y2 +
+ inverse * zs->last[output].y2;
+ }
+ else
+ {
+ pBox->x1 = zs->current[output].x1;
+ pBox->y1 = zs->current[output].y1;
+ pBox->x2 = zs->current[output].x2;
+ pBox->y2 = zs->current[output].y2;
+ }
+}
+
+static void
+zoomDonePaintScreen (CompScreen *s)
+{
+ ZOOM_SCREEN (s);
+
+ if (zs->adjust)
+ damageScreen (s);
+
+ UNWRAP (zs, s, donePaintScreen);
+ (*s->donePaintScreen) (s);
+ WRAP (zs, s, donePaintScreen, zoomDonePaintScreen);
+}
+
+static Bool
+zoomPaintOutput (CompScreen *s,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ CompTransform zTransform = *transform;
+ Bool status;
+
+ ZOOM_SCREEN (s);
+
+ if (output->id != ~0 && (zs->zoomed & (1 << output->id)))
+ {
+ int saveFilter;
+ ZoomBox box;
+ float scale, x, y, x1, y1;
+ float oWidth = output->width;
+ float oHeight = output->height;
+
+ mask &= ~PAINT_SCREEN_REGION_MASK;
+
+ zoomGetCurrentZoom (s, output->id, &box);
+
+ x1 = box.x1 - output->region.extents.x1;
+ y1 = box.y1 - output->region.extents.y1;
+
+ scale = oWidth / (box.x2 - box.x1);
+
+ x = ((oWidth / 2.0f) - x1) / oWidth;
+ y = ((oHeight / 2.0f) - y1) / oHeight;
+
+ x = 0.5f - x * scale;
+ y = 0.5f - y * scale;
+
+ matrixTranslate (&zTransform, -x, y, 0.0f);
+ matrixScale (&zTransform, scale, scale, 1.0f);
+
+ mask |= PAINT_SCREEN_TRANSFORMED_MASK;
+
+ saveFilter = s->filter[SCREEN_TRANS_FILTER];
+
+ if ((zs->zoomOutput != output->id || !zs->adjust) && scale > 3.9f &&
+ !zs->opt[ZOOM_SCREEN_OPTION_FILTER_LINEAR].value.b)
+ s->filter[SCREEN_TRANS_FILTER] = COMP_TEXTURE_FILTER_FAST;
+
+ UNWRAP (zs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, &zTransform, region, output,
+ mask);
+ WRAP (zs, s, paintOutput, zoomPaintOutput);
+
+ s->filter[SCREEN_TRANS_FILTER] = saveFilter;
+ }
+ else
+ {
+ UNWRAP (zs, s, paintOutput);
+ status = (*s->paintOutput) (s, sAttrib, transform, region, output,
+ mask);
+ WRAP (zs, s, paintOutput, zoomPaintOutput);
+ }
+
+ if (status && zs->grab)
+ {
+ int x1, x2, y1, y2;
+
+ x1 = MIN (zs->x1, zs->x2);
+ y1 = MIN (zs->y1, zs->y2);
+ x2 = MAX (zs->x1, zs->x2);
+ y2 = MAX (zs->y1, zs->y2);
+
+ if (zs->grabIndex)
+ {
+ transformToScreenSpace (s, output, -DEFAULT_Z_CAMERA, &zTransform);
+
+ glPushMatrix ();
+ glLoadMatrixf (zTransform.m);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+ glColor4us (0x2fff, 0x2fff, 0x4fff, 0x4fff);
+ glRecti (x1, y2, x2, y1);
+ glColor4us (0x2fff, 0x2fff, 0x4fff, 0x9fff);
+ glBegin (GL_LINE_LOOP);
+ glVertex2i (x1, y1);
+ glVertex2i (x2, y1);
+ glVertex2i (x2, y2);
+ glVertex2i (x1, y2);
+ glEnd ();
+ glColor4usv (defaultColor);
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ glPopMatrix ();
+ }
+ }
+
+ return status;
+}
+
+static void
+zoomInitiateForSelection (CompScreen *s,
+ int output)
+{
+ int tmp;
+
+ ZOOM_SCREEN (s);
+
+ if (zs->x1 > zs->x2)
+ {
+ tmp = zs->x1;
+ zs->x1 = zs->x2;
+ zs->x2 = tmp;
+ }
+
+ if (zs->y1 > zs->y2)
+ {
+ tmp = zs->y1;
+ zs->y1 = zs->y2;
+ zs->y2 = tmp;
+ }
+
+ if (zs->x1 < zs->x2 && zs->y1 < zs->y2)
+ {
+ float oWidth, oHeight;
+ float xScale, yScale, scale;
+ BoxRec box;
+ int cx, cy;
+ int width, height;
+
+ oWidth = s->outputDev[output].width;
+ oHeight = s->outputDev[output].height;
+
+ cx = (int) ((zs->x1 + zs->x2) / 2.0f + 0.5f);
+ cy = (int) ((zs->y1 + zs->y2) / 2.0f + 0.5f);
+
+ width = zs->x2 - zs->x1;
+ height = zs->y2 - zs->y1;
+
+ xScale = oWidth / width;
+ yScale = oHeight / height;
+
+ scale = MAX (MIN (xScale, yScale), 1.0f);
+
+ box.x1 = cx - (oWidth / scale) / 2.0f;
+ box.y1 = cy - (oHeight / scale) / 2.0f;
+ box.x2 = cx + (oWidth / scale) / 2.0f;
+ box.y2 = cy + (oHeight / scale) / 2.0f;
+
+ if (box.x1 < s->outputDev[output].region.extents.x1)
+ {
+ box.x2 += s->outputDev[output].region.extents.x1 - box.x1;
+ box.x1 = s->outputDev[output].region.extents.x1;
+ }
+ else if (box.x2 > s->outputDev[output].region.extents.x2)
+ {
+ box.x1 -= box.x2 - s->outputDev[output].region.extents.x2;
+ box.x2 = s->outputDev[output].region.extents.x2;
+ }
+
+ if (box.y1 < s->outputDev[output].region.extents.y1)
+ {
+ box.y2 += s->outputDev[output].region.extents.y1 - box.y1;
+ box.y1 = s->outputDev[output].region.extents.y1;
+ }
+ else if (box.y2 > s->outputDev[output].region.extents.y2)
+ {
+ box.y1 -= box.y2 - s->outputDev[output].region.extents.y2;
+ box.y2 = s->outputDev[output].region.extents.y2;
+ }
+
+ if (zs->zoomed & (1 << output))
+ {
+ zoomGetCurrentZoom (s, output, &zs->last[output]);
+ }
+ else
+ {
+ zs->last[output].x1 = s->outputDev[output].region.extents.x1;
+ zs->last[output].y1 = s->outputDev[output].region.extents.y1;
+ zs->last[output].x2 = s->outputDev[output].region.extents.x2;
+ zs->last[output].y2 = s->outputDev[output].region.extents.y2;
+ }
+
+ zs->current[output].x1 = box.x1;
+ zs->current[output].y1 = box.y1;
+ zs->current[output].x2 = box.x2;
+ zs->current[output].y2 = box.y2;
+
+ zs->scale = 0.0f;
+ zs->adjust = TRUE;
+ zs->zoomOutput = output;
+ zs->zoomed |= (1 << output);
+
+ damageScreen (s);
+ }
+}
+
+static Bool
+zoomIn (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ float w, h, x0, y0;
+ int output;
+ ZoomBox box;
+
+ ZOOM_SCREEN (s);
+
+ output = outputDeviceForPoint (s, pointerX, pointerY);
+
+ if (!zs->grabIndex)
+ zs->grabIndex = pushScreenGrab (s, None, "zoom");
+
+ if (zs->zoomed & (1 << output))
+ {
+ zoomGetCurrentZoom (s, output, &box);
+ }
+ else
+ {
+ box.x1 = s->outputDev[output].region.extents.x1;
+ box.y1 = s->outputDev[output].region.extents.y1;
+ box.x2 = s->outputDev[output].region.extents.x2;
+ box.y2 = s->outputDev[output].region.extents.y2;
+ }
+
+ w = (box.x2 - box.x1) /
+ zs->opt[ZOOM_SCREEN_OPTION_ZOOM_FACTOR].value.f;
+ h = (box.y2 - box.y1) /
+ zs->opt[ZOOM_SCREEN_OPTION_ZOOM_FACTOR].value.f;
+
+ x0 = (pointerX - s->outputDev[output].region.extents.x1) / (float)
+ s->outputDev[output].width;
+ y0 = (pointerY - s->outputDev[output].region.extents.y1) / (float)
+ s->outputDev[output].height;
+
+ zs->x1 = box.x1 + (x0 * (box.x2 - box.x1) - x0 * w + 0.5f);
+ zs->y1 = box.y1 + (y0 * (box.y2 - box.y1) - y0 * h + 0.5f);
+ zs->x2 = zs->x1 + w;
+ zs->y2 = zs->y1 + h;
+
+ zoomInitiateForSelection (s, output);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+zoomInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int output, x1, y1;
+ float scale;
+
+ ZOOM_SCREEN (s);
+
+ if (otherScreenGrabExist (s, "zoom", 0))
+ return FALSE;
+
+ if (!zs->grabIndex)
+ zs->grabIndex = pushScreenGrab (s, None, "zoom");
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ /* start selection zoom rectangle */
+
+ output = outputDeviceForPoint (s, pointerX, pointerY);
+
+ if (zs->zoomed & (1 << output))
+ {
+ ZoomBox box;
+ float oWidth;
+
+ zoomGetCurrentZoom (s, output, &box);
+
+ oWidth = s->outputDev[output].width;
+ scale = oWidth / (box.x2 - box.x1);
+
+ x1 = box.x1;
+ y1 = box.y1;
+ }
+ else
+ {
+ scale = 1.0f;
+ x1 = s->outputDev[output].region.extents.x1;
+ y1 = s->outputDev[output].region.extents.y1;
+ }
+
+ zs->x1 = zs->x2 = x1 +
+ ((pointerX - s->outputDev[output].region.extents.x1) /
+ scale + 0.5f);
+ zs->y1 = zs->y2 = y1 +
+ ((pointerY - s->outputDev[output].region.extents.y1) /
+ scale + 0.5f);
+
+ zs->zoomOutput = output;
+
+ zs->grab = TRUE;
+
+ damageScreen (s);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+zoomOut (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int output;
+
+ ZOOM_SCREEN (s);
+
+ output = outputDeviceForPoint (s, pointerX, pointerY);
+
+ zoomGetCurrentZoom (s, output, &zs->last[output]);
+
+ zs->current[output].x1 = s->outputDev[output].region.extents.x1;
+ zs->current[output].y1 = s->outputDev[output].region.extents.y1;
+ zs->current[output].x2 = s->outputDev[output].region.extents.x2;
+ zs->current[output].y2 = s->outputDev[output].region.extents.y2;
+
+ zs->zoomOutput = output;
+ zs->scale = 0.0f;
+ zs->adjust = TRUE;
+ zs->grab = FALSE;
+
+ if (zs->grabIndex)
+ {
+ removeScreenGrab (s, zs->grabIndex, NULL);
+ zs->grabIndex = 0;
+ }
+
+ damageScreen (s);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+zoomTerminate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ZOOM_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (zs->grab)
+ {
+ int output;
+
+ output = outputDeviceForPoint (s, zs->x1, zs->y1);
+
+ if (zs->x2 > s->outputDev[output].region.extents.x2)
+ zs->x2 = s->outputDev[output].region.extents.x2;
+
+ if (zs->y2 > s->outputDev[output].region.extents.y2)
+ zs->y2 = s->outputDev[output].region.extents.y2;
+
+ zoomInitiateForSelection (s, output);
+
+ zs->grab = FALSE;
+ }
+ else
+ {
+ CompOption o;
+
+ o.type = CompOptionTypeInt;
+ o.name = "root";
+ o.value.i = s->root;
+
+ zoomOut (d, action, state, &o, 1);
+ }
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static Bool
+zoomInitiatePan (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ int output;
+
+ ZOOM_SCREEN (s);
+
+ output = outputDeviceForPoint (s, pointerX, pointerY);
+
+ if (!(zs->zoomed & (1 << output)))
+ return FALSE;
+
+ if (otherScreenGrabExist (s, "zoom", 0))
+ return FALSE;
+
+ if (state & CompActionStateInitButton)
+ action->state |= CompActionStateTermButton;
+
+ if (!zs->panGrabIndex)
+ zs->panGrabIndex = pushScreenGrab (s, zs->panCursor, "zoom-pan");
+
+ zs->zoomOutput = output;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+zoomTerminatePan (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ ZOOM_SCREEN (s);
+
+ if (xid && s->root != xid)
+ continue;
+
+ if (zs->panGrabIndex)
+ {
+ removeScreenGrab (s, zs->panGrabIndex, NULL);
+ zs->panGrabIndex = 0;
+
+ zoomInEvent (s);
+ }
+
+ return TRUE;
+ }
+
+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton);
+
+ return FALSE;
+}
+
+static void
+zoomHandleMotionEvent (CompScreen *s,
+ int xRoot,
+ int yRoot)
+{
+ ZOOM_SCREEN (s);
+
+ if (zs->grabIndex)
+ {
+ int output = zs->zoomOutput;
+ ZoomBox box;
+ float scale, oWidth = s->outputDev[output].width;
+
+ zoomGetCurrentZoom (s, output, &box);
+
+ if (zs->zoomed & (1 << output))
+ scale = oWidth / (box.x2 - box.x1);
+ else
+ scale = 1.0f;
+
+ if (zs->panGrabIndex)
+ {
+ float dx, dy;
+
+ dx = (xRoot - lastPointerX) / scale;
+ dy = (yRoot - lastPointerY) / scale;
+
+ box.x1 -= dx;
+ box.y1 -= dy;
+ box.x2 -= dx;
+ box.y2 -= dy;
+
+ if (box.x1 < s->outputDev[output].region.extents.x1)
+ {
+ box.x2 += s->outputDev[output].region.extents.x1 - box.x1;
+ box.x1 = s->outputDev[output].region.extents.x1;
+ }
+ else if (box.x2 > s->outputDev[output].region.extents.x2)
+ {
+ box.x1 -= box.x2 - s->outputDev[output].region.extents.x2;
+ box.x2 = s->outputDev[output].region.extents.x2;
+ }
+
+ if (box.y1 < s->outputDev[output].region.extents.y1)
+ {
+ box.y2 += s->outputDev[output].region.extents.y1 - box.y1;
+ box.y1 = s->outputDev[output].region.extents.y1;
+ }
+ else if (box.y2 > s->outputDev[output].region.extents.y2)
+ {
+ box.y1 -= box.y2 - s->outputDev[output].region.extents.y2;
+ box.y2 = s->outputDev[output].region.extents.y2;
+ }
+
+ zs->current[output] = box;
+
+ damageScreen (s);
+ }
+ else
+ {
+ int x1, y1;
+
+ if (zs->zoomed & (1 << output))
+ {
+ x1 = box.x1;
+ y1 = box.y1;
+ }
+ else
+ {
+ x1 = s->outputDev[output].region.extents.x1;
+ y1 = s->outputDev[output].region.extents.y1;
+ }
+
+ zs->x2 = x1 +
+ ((xRoot - s->outputDev[output].region.extents.x1) /
+ scale + 0.5f);
+ zs->y2 = y1 +
+ ((yRoot - s->outputDev[output].region.extents.y1) /
+ scale + 0.5f);
+
+ damageScreen (s);
+ }
+ }
+}
+
+static void
+zoomHandleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+
+ ZOOM_DISPLAY (d);
+
+ switch (event->type) {
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ zoomHandleMotionEvent (s, pointerX, pointerY);
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ zoomHandleMotionEvent (s, pointerX, pointerY);
+ default:
+ break;
+ }
+
+ UNWRAP (zd, d, handleEvent);
+ (*d->handleEvent) (d, event);
+ WRAP (zd, d, handleEvent, zoomHandleEvent);
+}
+
+static CompOption *
+zoomGetDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ ZOOM_DISPLAY (display);
+
+ *count = NUM_OPTIONS (zd);
+ return zd->opt;
+}
+
+static Bool
+zoomSetDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ ZOOM_DISPLAY (display);
+
+ o = compFindOption (zd->opt, NUM_OPTIONS (zd), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case ZOOM_DISPLAY_OPTION_OUT_BUTTON:
+ if (compSetActionOption (o, value))
+ return TRUE;
+ break;
+ default:
+ return compSetDisplayOption (display, o, value);
+ }
+
+ return FALSE;
+}
+
+static const CompMetadataOptionInfo zoomDisplayOptionInfo[] = {
+ { "initiate_button", "button", 0, zoomInitiate, zoomTerminate },
+ { "zoom_in_button", "button", 0, zoomIn, 0 },
+ { "zoom_out_button", "button", 0, zoomOut, 0 },
+ { "zoom_pan_button", "button", 0, zoomInitiatePan, zoomTerminatePan }
+};
+
+static Bool
+zoomInitDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ZoomDisplay *zd;
+
+ if (!checkPluginABI ("core", CORE_ABIVERSION))
+ return FALSE;
+
+ zd = malloc (sizeof (ZoomDisplay));
+ if (!zd)
+ return FALSE;
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &zoomMetadata,
+ zoomDisplayOptionInfo,
+ zd->opt,
+ ZOOM_DISPLAY_OPTION_NUM))
+ {
+ free (zd);
+ return FALSE;
+ }
+
+ zd->screenPrivateIndex = allocateScreenPrivateIndex (d);
+ if (zd->screenPrivateIndex < 0)
+ {
+ compFiniDisplayOptions (d, zd->opt, ZOOM_DISPLAY_OPTION_NUM);
+ free (zd);
+ return FALSE;
+ }
+
+ WRAP (zd, d, handleEvent, zoomHandleEvent);
+
+ d->base.privates[displayPrivateIndex].ptr = zd;
+
+ return TRUE;
+}
+
+static void
+zoomFiniDisplay (CompPlugin *p,
+ CompDisplay *d)
+{
+ ZOOM_DISPLAY (d);
+
+ freeScreenPrivateIndex (d, zd->screenPrivateIndex);
+
+ UNWRAP (zd, d, handleEvent);
+
+ compFiniDisplayOptions (d, zd->opt, ZOOM_DISPLAY_OPTION_NUM);
+
+ free (zd);
+}
+
+static const CompMetadataOptionInfo zoomScreenOptionInfo[] = {
+ { "speed", "float", "<min>0.1</min>", 0, 0 },
+ { "timestep", "float", "<min>0.1</min>", 0, 0 },
+ { "zoom_factor", "float", "<min>1.01</min>", 0, 0 },
+ { "filter_linear", "bool", 0, 0, 0 }
+};
+
+static Bool
+zoomInitScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ZoomScreen *zs;
+
+ ZOOM_DISPLAY (s->display);
+
+ zs = malloc (sizeof (ZoomScreen));
+ if (!zs)
+ return FALSE;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &zoomMetadata,
+ zoomScreenOptionInfo,
+ zs->opt,
+ ZOOM_SCREEN_OPTION_NUM))
+ {
+ free (zs);
+ return FALSE;
+ }
+
+ zs->grabIndex = 0;
+ zs->grab = FALSE;
+
+ zs->velocity = 0.0f;
+
+ zs->zoomOutput = 0;
+
+ zs->zoomed = 0;
+ zs->adjust = FALSE;
+
+ zs->panGrabIndex = 0;
+ zs->panCursor = XCreateFontCursor (s->display->display, XC_fleur);
+
+ zs->scale = 0.0f;
+
+ memset (&zs->current, 0, sizeof (zs->current));
+ memset (&zs->last, 0, sizeof (zs->last));
+
+ WRAP (zs, s, preparePaintScreen, zoomPreparePaintScreen);
+ WRAP (zs, s, donePaintScreen, zoomDonePaintScreen);
+ WRAP (zs, s, paintOutput, zoomPaintOutput);
+
+ s->base.privates[zd->screenPrivateIndex].ptr = zs;
+
+ return TRUE;
+}
+
+static void
+zoomFiniScreen (CompPlugin *p,
+ CompScreen *s)
+{
+ ZOOM_SCREEN (s);
+
+ if (zs->panCursor)
+ XFreeCursor (s->display->display, zs->panCursor);
+
+ UNWRAP (zs, s, preparePaintScreen);
+ UNWRAP (zs, s, donePaintScreen);
+ UNWRAP (zs, s, paintOutput);
+
+ compFiniScreenOptions (s, zs->opt, ZOOM_SCREEN_OPTION_NUM);
+
+ free (zs);
+}
+
+static CompBool
+zoomInitObject (CompPlugin *p,
+ CompObject *o)
+{
+ static InitPluginObjectProc dispTab[] = {
+ (InitPluginObjectProc) 0, /* InitCore */
+ (InitPluginObjectProc) zoomInitDisplay,
+ (InitPluginObjectProc) zoomInitScreen
+ };
+
+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
+}
+
+static void
+zoomFiniObject (CompPlugin *p,
+ CompObject *o)
+{
+ static FiniPluginObjectProc dispTab[] = {
+ (FiniPluginObjectProc) 0, /* FiniCore */
+ (FiniPluginObjectProc) zoomFiniDisplay,
+ (FiniPluginObjectProc) zoomFiniScreen
+ };
+
+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
+}
+
+static CompOption *
+zoomGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) zoomGetDisplayOptions,
+ (GetPluginObjectOptionsProc) zoomGetScreenOptions
+ };
+
+ *count = 0;
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) count, (plugin, object, count));
+}
+
+static CompBool
+zoomSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) zoomSetDisplayOption,
+ (SetPluginObjectOptionProc) zoomSetScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static Bool
+zoomInit (CompPlugin *p)
+{
+ if (!compInitPluginMetadataFromInfo (&zoomMetadata,
+ p->vTable->name,
+ zoomDisplayOptionInfo,
+ ZOOM_DISPLAY_OPTION_NUM,
+ zoomScreenOptionInfo,
+ ZOOM_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ displayPrivateIndex = allocateDisplayPrivateIndex ();
+ if (displayPrivateIndex < 0)
+ {
+ compFiniMetadata (&zoomMetadata);
+ return FALSE;
+ }
+
+ compAddMetadataFromFile (&zoomMetadata, p->vTable->name);
+
+ return TRUE;
+}
+
+static void
+zoomFini (CompPlugin *p)
+{
+ freeDisplayPrivateIndex (displayPrivateIndex);
+ compFiniMetadata (&zoomMetadata);
+}
+
+static CompMetadata *
+zoomGetMetadata (CompPlugin *plugin)
+{
+ return &zoomMetadata;
+}
+
+CompPluginVTable zoomVTable = {
+ "zoom",
+ zoomGetMetadata,
+ zoomInit,
+ zoomFini,
+ zoomInitObject,
+ zoomFiniObject,
+ zoomGetObjectOptions,
+ zoomSetObjectOption
+};
+
+CompPluginVTable *
+getCompPluginInfo20070830 (void)
+{
+ return &zoomVTable;
+}
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..b81e108
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1,25 @@
+2006-09-19 David Reveman <davidr@novell.com>
+
+ * sv.po: New from Daniel Nylander.
+
+2006-06-29 Dan Winship <danw@novell.com>
+
+ * cs.po, de.po, es.po, fr.po, hu.po, it.po, ja.po, pt_BR.po,
+ zh_CN.po, zh_TW.po: update
+
+2006-06-20 Dan Winship <danw@novell.com>
+
+ * pl.po: New from translation team
+
+2006-06-09 Dan Winship <danw@novell.com>
+
+ * *.po: add translations
+
+2006-05-18 Dan Winship <danw@novell.com>
+
+ * POTFILES.in: s/compiz.schemas.in/compiz.schemas.in.in/
+
+2006-05-05 Dan Winship <danw@novell.com>
+
+ * Add po/
+
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..57ef267
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,217 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
+#
+# This file may be copied and used freely without restrictions. It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
+# instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob@ximian.com> to install
+# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p@.
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && gencat $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+ $(GENPOT)
+
+install: install-data
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $$dir; \
+ if test -r $$lang.gmo; then \
+ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $(srcdir)/$$lang.gmo as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo"; \
+ fi; \
+ if test -r $$lang.gmo.m; then \
+ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ if test -r $(srcdir)/$$lang.gmo.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+ $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $(srcdir)/$$lang.gmo.m as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info tags TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+ done
+
+check: all $(GETTEXT_PACKAGE).pot
+ rm -f missing notexist
+ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+ if [ -r missing -o -r notexist ]; then \
+ exit 1; \
+ fi
+
+mostlyclean:
+ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+ rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES stamp-it
+ rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ extra_dists="$(EXTRA_DISTFILES)"; \
+ for file in $$extra_dists; do \
+ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+ done; \
+ for file in $$dists; do \
+ test -f $$file || file="$(srcdir)/$$file"; \
+ ln $$file $(distdir) 2> /dev/null \
+ || cp -p $$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ tmpdir=`pwd`; \
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ echo "$$lang:"; \
+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+ if $$result; then \
+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.gmo failed!"; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi; \
+ done
+
+Makefile POTFILES: stamp-it
+ @if test ! -f $@; then \
+ rm -f stamp-it; \
+ $(MAKE) stamp-it; \
+ fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..cd63e61
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,39 @@
+gtk/gnome/50-compiz-desktop-key.xml.in
+gtk/gnome/50-compiz-key.xml.in
+gtk/gnome/compiz.desktop.in
+gtk/gnome/compiz-window-manager.c
+gtk/window-decorator/gwd.schemas.in
+gtk/window-decorator/gtk-window-decorator.c
+metadata/annotate.xml.in
+metadata/blur.xml.in
+metadata/clone.xml.in
+metadata/commands.xml.in
+metadata/core.xml.in.in
+metadata/cube.xml.in
+metadata/dbus.xml.in
+metadata/decoration.xml.in
+metadata/fade.xml.in
+metadata/fs.xml.in
+metadata/gconf.xml.in
+metadata/glib.xml.in
+metadata/gnomecompat.xml.in
+metadata/ini.xml.in
+metadata/inotify.xml.in
+metadata/kconfig.xml.in
+metadata/minimize.xml.in
+metadata/move.xml.in
+metadata/obs.xml.in
+metadata/place.xml.in
+metadata/png.xml.in
+metadata/regex.xml.in
+metadata/resize.xml.in
+metadata/rotate.xml.in
+metadata/scale.xml.in
+metadata/screenshot.xml.in
+metadata/svg.xml.in
+metadata/switcher.xml.in
+metadata/video.xml.in
+metadata/water.xml.in
+metadata/wobbly.xml.in
+metadata/zoom.xml.in
+src/main.c
diff --git a/po/af.po b/po/af.po
new file mode 100644
index 0000000..ace45bf
--- /dev/null
+++ b/po/af.po
@@ -0,0 +1,3163 @@
+# Copyright (C) 2007 SuSE Linux Products GmbH, Nuernberg
+# This file is distributed under the same license as the package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: installation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:07+0100\n"
+"PO-Revision-Date: 2006-11-03 14:26\n"
+"Last-Translator: Novell Language <language@novell.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Werkskerm"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Inisialiseer"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Kies &niks"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Kies &niks"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Kataloguskeuse"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Opdragte:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Werkskerm"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Kies &niks"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Kies &niks"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normaal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Vernuwe"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Werkskerm"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Inisialiseer"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Werkskerm"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Opdragte:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Kies &niks"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Kies &niks"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Kies &niks"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Opdrag '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Kies &niks"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Berg konfigurasie"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Kies &niks"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Kies &niks"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Inisialiseer"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Inisialiseer"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Inisialiseer"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Inisialiseer"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Inisialiseer"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Inisialiseer"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Inisialiseer"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Kies &niks"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Kies &niks"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Kies &niks"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Begin van installasie ..."
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Inisialiseer"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Kies &niks"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Kies &niks"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "&Plaaslike gids ..."
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Kataloguskeuse"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Inisialiseer"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Tydens selflaai"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Werkskerm"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Kies &niks"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Kies &niks"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Kies &niks"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Kies &niks"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Kies &niks"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Kies &niks"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Kies &niks"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Tydens selflaai"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Werkskerm"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Installasie is voltooi"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Installasie is voltooi"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Opdrag '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Opdrag '%1'"
+
+#~ msgid "Unknown"
+#~ msgstr "Onbekend"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Berg konfigurasie"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Installasie is voltooi"
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..810eff7
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,3052 @@
+# @TITLE@
+# Copyright (C) 2006, SUSE Linux GmbH, Nuremberg
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+# This file is distributed under the same license as @PACKAGE@ package. FIRST
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: @PACKAGE@\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:07+0100\n"
+"PO-Revision-Date: 2001-07-13 15:36+0200\n"
+"Last-Translator: Ghayss Tarraf <jodi@suse.de>\n"
+"Language-Team: Arabic <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "ﺔﻴﺳﻭﺭ"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "ﺔﻴﺳﻭﺭ"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "ﺔﻴﺳﻭﺭ"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "ﺔﻴﺳﻭﺭ"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "ﺔﻴﺳﻭﺭ"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "ﺔﻴﺳﻭﺭ"
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..9647804
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,3816 @@
+# Bulgarian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) SuSE GmbH, 2000.
+# Dimitar Boin <cyclonetc@mail.bulgaria.com>, 2000.
+# Y Gonch <gonch@mail.bulgaria.com>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:07+0100\n"
+"PO-Revision-Date: 2008-12-25 18:14+0100\n"
+"Last-Translator: Dean Spirov <dean@spirov.com>\n"
+"Language-Team: Bulgarian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=0;\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Работен плот"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Мениджър на прозорци"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Без избор"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Сянка"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Уголемяване"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Хоризонтално максимизиране"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Вертикално максимизиране"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Намаляване"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Издигане"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Меню на прозорец"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Действие което да бъде предприето при движение на колелцето на мишката върху "
+"заглавната лента на прозорец."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Тип размиване"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Прозрачност на активния прозорец при тема на Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "&Изтриване изцяло на Windows"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Прозрачност на темата на Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Прозрачност за декорациите от темите на Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+# Can't find bulgarian word for titlebar.
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Действие на колелцето на мишката в заглавната лента на прозорците"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Вид замъгляване използван за декорациите на прозорците"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "използвай темата на Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Използвай Metacity темата при рисуване на декорациите на прозорците"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Затваряне на прозорец"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Демаксимизиране на прозорец"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Максимизиране на прозорец"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Минимизиране на прозорец"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+#, fuzzy
+msgid "Make Above"
+msgstr "Над другите"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+#, fuzzy
+msgid "Stick"
+msgstr "Лепкав"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+#, fuzzy
+msgid "Unmake Above"
+msgstr "Изключи над другите"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Прозорецът \"%s\" не отговаря."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Ако принудително изключите приложението ще загубите всички промени, които не "
+"са запазени"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Принудително изключване"
+
+# HT
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Анотации"
+
+# KM
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Цвят за запълване на анотациите"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Цвят за линиите на анотациите"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Модул за анотации"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Изчистване"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Изчертаване"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Изчертаване, използвайки инструмент"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Цвят за запълване на анотациите"
+
+# HT
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Започни"
+
+# HT
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Започни изчертаване на анотация"
+
+# HT
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Започни изтриване на анотация"
+
+# HT
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Изтрий анотация"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Ширина на линията"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Ширина на линията за анотации"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Цвят на чертите за анотации"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ширина на чертите"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ширина на чертите за анотации"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4 кратно билинеарно филтриране "
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Размиване по алфа канала"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Размиване на прозорци по алфа канала"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Филтър за размиване"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Преграждане на размиването"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Насищане на размиването"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Скорост на размиването"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Размиване на прозорци"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Размиване на прозрачните части на прозорците"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Насищане на размиването"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Размиване на прозорци"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Размиване на прозорци, които не са на фокус"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Изключи размиването за региони от екрана, закрити от други прозорци."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Метод за размиване "
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Размиване при фокус"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Прозорци размивани при фокус"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Гаусов"
+
+# RU
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Радиус"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Сила"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Радиус"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Сила"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Независимо получаване на текстурите"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Ниво на детайла за Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Ниво на детайлите за Mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Пулсиране"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Пулсиращ ефект"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Скорост на размиването на прозорците"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Прозорци, за които действа размиването"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+"Прозорзи, за които се използва размиване по алфа канала по подразбиране"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Дублиране на изхода"
+
+# HT
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Започни дублиране на изхода"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Обработчик за дублиране на изхода"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда12"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда12"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда12"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация от клавиши, която при натискане ще стартира команда на обвивката, "
+"идентифицирана от команда9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Команден ред 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Команден ред 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Команден ред 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Команден ред 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Команден ред 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Команден ред 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Команден ред 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Команден ред 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Команден ред 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Команден ред 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Команден ред 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Команден ред 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command0 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command1 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command10 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command11 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command2 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command3 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command4 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command5 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command6 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command7 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command8 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Команден ред, който ще бъде изпълнен в обвивката когато run_command9 е "
+"извикана"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Комбинации от клавиши"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Комбинации от клавиши"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Изпълни команда 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Изпълни команда 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Изпълни команда 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Изпълни команда 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Изпълни команда 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Изпълни команда 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Изпълни команда 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Изпълни команда 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Изпълни команда 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Изпълни команда 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Изпълни команда 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Изпълни команда 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Активни модули"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "Файлова &система"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "AutoYast"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+#, fuzzy
+msgid "Automatic detection of output devices"
+msgstr "Автоматично откриване"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+#, fuzzy
+msgid "Best"
+msgstr "Най-добър"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Фокусиране при цъкане"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Цъкането върху прозорец премества фокуса върху него"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Затвори активния прозорец"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Икона по подразбиране"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Икона на прозореца по подразбиране"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Работна станция"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Засичане на екраните"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Засичане на честотата на обновяване"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Настройки на екрана"
+
+#: ../metadata/core.xml.in.in.h:20
+#, fuzzy
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Колко време трябва показалецът да стои на ръбът на екрана преди да се "
+"задейства действието на ръба"
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Закъснение за задействане на ръба"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Бързо"
+
+#: ../metadata/core.xml.in.in.h:23
+#, fuzzy
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Поведение за фокусиране и издигане"
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Общи настройки"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Общи настройки на Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Добро"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Скриване на всички прозорци и фокусиране на десктопа"
+
+#: ../metadata/core.xml.in.in.h:33
+#, fuzzy
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Скривай прозорците които не се показват в taskbar-a когато се показва "
+"десктопа"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Високо"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Хоризонтален брой на виртуалните екрани"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Комбинации от клавиши"
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "Разрешаване на авто-спирането"
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Осветление"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Списък с включените модули"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Ниско"
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Долно-сорбийски"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "Хоризонтално максимизиране"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Вертикално максимизиране"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Максимизиране на активния прозорец"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Хоризонтално максимизиране на активния прозорец"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Вертикално максимизиране на активния прозорец"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Минимизирай активния прозорец"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Нормална"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Брой на работните плотове"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Брой на виртуалните работни плотове"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Изключено"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Екрани"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Закъснение"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Предпочитане на по-голям екран"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Предпочитане на по-малък екран"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Повдигане при цъкане"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Повдигане на прозореца"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Повдигане на избраният прозорец след интервал от време"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Повдигане на прозореца над другите"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Повдигане на прозореца при цъкане"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Честота на обновяване"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Покажи работния плот"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Бавни анимации"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "Умен режим"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Синхронизиране с VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Компресия на повърхностите"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "Филтър на повърхностите"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Филтриране на повърхностите"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Колко често се прерисува екрана (пъти в секунда)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+#, fuzzy
+msgid "Use diffuse light when screen is transformed"
+msgstr "Използвай дифузно осветление когато екрана се трансформира"
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Вертикален виртуален размер"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Много високо"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Кое от застъпващите се устройства да се предпочита"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Комбинация от клавиши за менюто на прозореца"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Комбинация от клавиши за менюто на прозореца"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D ускорение:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "Разширени параметри"
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Сидни"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Автоматично"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Поведение"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Цвят на горната и долната страна на куба"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+# KM
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Шапки на куба"
+
+# KM
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Цвят на куба"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Куб"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Ускорение на сгъването"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Скорост на сгъването"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Проба"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "Предишен слайд"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Изображения"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Изоражение което да се ползва като повърхност за небето"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Кубът да е прозрачен само ако въртенето е предизвикано от мишката"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Във куба"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Във куба"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Списък с PNG и SVG файлове, които да се рисуват върху горната повърхност на "
+"куба"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+#, fuzzy
+msgid "Multi Output Mode"
+msgstr "Режим на много екрани"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Много кубове"
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "Следващ слайд"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Един голям куб"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Прозрачност при въртене"
+
+#: ../metadata/cube.xml.in.h:33
+#, fuzzy
+msgid "Opacity When Not Rotating"
+msgstr "Прозрачност когато куба не се върти"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Прозрачност на работния плот по време на въртене"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Прозрачност на работния плот когато куба не се върти"
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "Поставяне на прозорците върху куба"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Предишен слайд"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Изобразявай небето"
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "местно време"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Небе"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Иображение на небето"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Скорост"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Проба"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Прозрачност само при въртене с мишка"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Прозрачен куб"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Разгъване"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Разгъване на куба"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Контрол за Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Команда"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Прозорци с декорация"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "команда за декоратор, която се изпълнява ако вче не върви декоратор"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "X координати на сянката"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Y координати на сянката"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Цвят на сянката"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Прозрачност на сянката"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Радиус на сянката"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Цвят на сянката"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "&Нисък капацитет"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "&Нисък капацитет"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Прозрачност на сянката"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Радиус на сянката"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Прозорци с сянка"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Декорация на прозореца"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "Декорации на прозореца"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Прозорци, които да бъдат декорирани"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Прозорци които да имат сянка"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Яркост(в %) на прозорците които не отговарят"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Постоянна скорост"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Постоянно време"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "В реално време"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Избрано"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "В реално време"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Файлова &система"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "Touchscreen"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows свободни (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Добавяне на контакт"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Добавяне на контакт"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Стартиране в терминал"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "Диалог за изпълняване на програма"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Изпълняване на команда в терминала"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Команда за заснемане на екрана"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Покажи главното меню"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Покажи диалога за изпълняване на програма"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Показване на главното меню"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Снимай екрана"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Снимай прозорец"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Команда в терминала"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Команден ред за заснемане на прозореца"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Без записване"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "Без записване"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Съдържа"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "&Надолу"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "&Надолу"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "&Надолу"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Нисък капацитет"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Мост"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Мост"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Мост"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Мост"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Яркост(в %) на прозорците които не отговарят"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Понижи непрозрачността"
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Окцитан (след 1500)"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Окцитан (след 1500)"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "&Нисък капацитет"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Прозрачност при въртене"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Продължителност"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Продължителност"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Продължителност"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Продължителност"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Декорации на прозореца"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+"Прозорзи, за които се използва размиване по алфа канала по подразбиране"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+"Прозорзи, за които се използва размиване по алфа канала по подразбиране"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+"Прозорзи, за които се използва размиване по алфа канала по подразбиране"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Мениджър на прозорци"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Виртуално устройство"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Виртуално устройство"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "Параметри на ypbind"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Параметри на ypbind"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "Работна гр&упа"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Виртуално устройство"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Виртуално устройство"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+# KM
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Цветове"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+# KM
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Цветове"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Промяната на размера е неуспешно."
+
+# KM
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Цветове"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "В реално време"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Показател към %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Опи&сание на принтера"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "Надясно"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "Надясно"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Завъртане наляво"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Завъртане на ляво с прозорец"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Завъртане надясно"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Завъртане надясно с прозорец"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Завъртане към"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Завъртане към Страна 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Завъртане към Страна 1 с прозорец"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Завъртане към Страна 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Завъртане към Страна 10 с прозорец"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Завъртане към Страна 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Завъртане към Страна 11 с прозорец"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Завъртане към Страна 12"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Надясно"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Завъртане към Страна 1 с прозорец"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "&Надолу"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D ускорение:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Проба"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Проба"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Проба"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Начало на откриването"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Мащабиране"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Голяма"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Натисни на работен плот за да бъде показан"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Затъмняване на фона"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "&Начален RAM диск"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Скенер"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "местно време"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "местно време"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Испания"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+#, fuzzy
+msgid "Automatically open screenshot in this application"
+msgstr "Автоматично зареждане на аплета при влизане"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Директория"
+
+# HT
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Хитите"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Стартирай приложение"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Поставяй снимките на екрана в тази директория"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Снимка на екрана"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Модул за снимки на екрана"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg image loader"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Ред на прилагане"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "AutoYast"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "При зареждане на ОС"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Икони"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Работна станция"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Следващ прозорец"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Следващ прозорец (всички прозорци)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Следващ прозорец (без изскачащите)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Предишно ядро"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Промяната на размера е неуспешно."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Намаляване на Windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "местно време"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "местно време"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "До&бавяне на връзка"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Добавяне на контакт"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Закъснение"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "&Промяна на статуса"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "&Промяна на статуса"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "&Промяна на статуса"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "&Промяна на статуса"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Действие"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Разделителна способност"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "&Изтриване на Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Ефект при максимизиране"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Максимален размер"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Максимален размер"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "&Надолу"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Треперене"
+
+# this is more like 'snap by default'
+#: ../metadata/wobbly.xml.in.h:18
+#, fuzzy
+msgid "Snap Inverted"
+msgstr "Привличане по принцип"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Привличане между прозорците"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Съпротивление на пружината"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Константа на пружината"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Константа на пружината"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "Променяне на привличането"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Използвай пружинен модел за треперещите прозорци"
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Разпознаване на сървъра"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Прозорци, които трябва да треперят при фокусиране"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Прозорци, които трябва да треперят при хващане"
+
+#: ../metadata/wobbly.xml.in.h:28
+#, fuzzy
+msgid "Windows that should wobble when mapped"
+msgstr "Прозорци, които трябва да треперят при създаване"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Прозорци, които трябва да треперят при преместване"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Треперене при максимизиране и демаксимизиране на прозорците"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Треперещи прозорци"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Линеен филтър"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Използвай линеен филтър при мащабиране"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Мащабиране на работния плот"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Увеличаване"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Намаляване"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Излизане"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Скорост на мащабирането"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Проба"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Завъртане на екрана"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Излизане"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Излизане"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Команден ред 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Изпълни команда 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Команди за заснемане на екрана"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Ключови комбинации за заснемане на екрана"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Понижи непрозрачността на прозореца"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "&Изтриване на Windows"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "&Изтриване на Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Страница надолу"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Надясно"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Страница нагоре"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "&Изтриване на Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Надясно"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Страница нагоре"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "Инструменти"
+
+#~ msgid "Menu"
+#~ msgstr "Меню"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "Диск с приложения (utility)..."
+
+#, fuzzy
+#~ msgid "Splash"
+#~ msgstr "splash"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "&Тонално набиране"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Мениджър на прозорци"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "Меню"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "Инструменти"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Забележки"
+
+#, fuzzy
+#~ msgid "Dnd"
+#~ msgstr "End"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "Touchscreen"
+
+#~ msgid "Unknown"
+#~ msgstr "Неизвестно"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Продължителност"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "Без записване"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&Нисък капацитет"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Радиус"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Промяната на размера е неуспешно."
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D ускорение: "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D ускорение: "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Проба"
+
+# RU
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Руска Федерация"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Руска"
+
+#, fuzzy
+#~ msgid "Line width for annotations (0.0-100.0)"
+#~ msgstr "Можете да научите повече от документацията"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Намаляване на Windows"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Намаляване на Windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Максимален размер"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Отдалечен работен плот"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Окцитан (след 1500)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D ускорение: "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Проба"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "местно време"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "местно време"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&Изтриване на Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Действие"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Испания"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Филтър"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Разпознаване на сървъра"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows свободни (%1)"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows свободни (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Избрано"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Проба"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Излизане"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Промяната на размера е неуспешно."
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "Завъртане на екрана"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Команда: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Команда: "
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "Тип на доставчика"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Корнски"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Терминали"
diff --git a/po/bn.po b/po/bn.po
new file mode 100644
index 0000000..dac8a86
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,3587 @@
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-01-03 03:23+0100\n"
+"Last-Translator: Mahdee Jameel <mahdee.jameel@gmail.com>\n"
+"Language-Team: gist bengali team <info.gist@cdac.in>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "ডেস্কটপ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "উইন্ডো পরিচালনা"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "কমপিজ"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "কিছু না"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "স্ক্যানার"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "ছোট করা হয়েছে"
+
+# স্বয়ংক্রীয়
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "উইন্ডো মেনু"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "উইন্ডো শীর্ষবারে মাউস হুইল স্ক্রল করার সময় কার্য করা হবে"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "অস্বচ্ছতার প্রকৃতি"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "মেটাসিটি বিষয় সক্রিয় উইন্ডোর অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "মেটাসিটি বিষয় সক্রিয় উইন্ডোর অস্বচ্ছতার শেড"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "মেটাসিটি বিষয় অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "মেটাসিটি বিষয় অস্বচ্ছতার শেড"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "মেটাসিটি বিষয় অলঙ্করণ সহ সক্রিয় উইন্ডোয় ব্যবহারের জন্য অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "মেটাসিটি বিষয় অলঙ্করণে ব্যবহারের জন্য অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "অস্বচ্ছ থেকে অর্ধস্বচ্ছ মেটাসিটি বিষয় অলঙ্করণ সহ শেড সক্রিয়করণ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "অস্বচ্ছ থেকে অর্ধস্বচ্ছ মেটাসিটি বিষয় অলঙ্করণ সহ শেড সক্রিয়করণ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "শীর্ষ বার মাউস হুইলের কার্য"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "উইন্ডো অলঙ্করণের সময় অস্পষ্টতার প্রকার"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "মেটাসিটি বিষয় ব্যবহার করুন"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "উইন্ডো অলঙ্করণ করার সময় মেটাসিটি বিষয় ব্যবহার করুন"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "উইন্ডো বন্ধ করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "উইন্ডো সর্বাধিক না করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "উইন্ডো বড় করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "উইন্ডোটি ছোট করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "অ্যানোটেট"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "অ্যানোটেট পূর্ণ রঙ"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "অ্যানোটেশনের স্ট্রোকের রঙ"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "অ্যানোটেট প্লাগ ইন"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "পরিষ্কার করা"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "অঙ্কন করা"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "টুলের সাহায্যে অঙ্কন করা"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "অ্যানোটেশন পূর্ণ করার রঙ"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "শুরু "
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "ভারত"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "ভারত"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "ভারত"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "রেখার বিস্তার"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "অ্যানোটেশনের লাইনের প্রস্থ"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "অ্যানোটেশনের স্ট্রোকের রঙ"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "স্ট্রোকের প্রস্থ"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "অ্যানোটেশনের স্ট্রোকের প্রস্থ"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "ফিল্টার:"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "আলফা অস্পষ্ট"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "অস্পষ্ট উইন্ডো"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "উইন্ডোর অর্ধস্বচ্ছ অংশের পিছনের অস্পষ্টতা"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "যে উইন্ডোগুলিতে ফোকাস নেই সেগুলিকে অস্পষ্ট করা "
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "অন্যান্য উইন্ডো দ্বারা অস্পষ্ট করা স্ক্রিনের অংশগুলির অস্পষ্টতাকে অসমর্থ করা."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "অস্পষ্ট করার জন্য ফিল্টার করার পদ্ধতি"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "ফোকাস অস্পষ্ট"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "ফোকাস অস্পষ্ট করার উইন্ডো"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "মিপম্যাপ"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "মিপম্যাপ LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "মিপম্যাপের বিশদরূপের-স্তর"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "পালস"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "পালস প্রভাব"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "উইন্ডোর অস্পষ্টকরণের গতি"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "ফোকাস বার দ্বারা যে উইন্ডোগুলি প্রভাবিত হবে"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলি আলফা অস্পষ্টতা ব্যবহার করবে"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "সমরূপ আউটপুট"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "ভারত"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "আউটপুট সমরূপ পরিচালক"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "যখন run_command0 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "যখন run_command1 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "যখন run_command10 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "যখন run_command11 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "যখন run_command2 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "যখন run_command3 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "যখন run_command4 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "যখন run_command5 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "যখন run_command6 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "যখন run_command7 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "যখন run_command8 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "যখন run_command9 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "সক্রিয় প্লাগইনগুলি"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "অফস্ক্রিন পিক্সম্যাপে পুনর্নির্দেশিত না করার জন্য পূর্ণস্ক্রিন উইন্ডো অঙ্কন সম্মত করা"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "শ্রবণযোগ্য বেল"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "শ্রবণযোগ্য সিস্টেম বিপ"
+
+# স্বয়ংক্রীয়
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "স্বয়ং-বৃদ্ধি বিলম্ব"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "আউটপুট ডিভাইসের স্বয়ংক্রিয় সন্ধান"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "পুনঃসজীব মাত্রার স্বয়ংক্রিয় সন্ধান"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "সর্বোত্তম"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "ফোকাসে ক্লিক করুন"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "উইন্ডোয় ক্লিক করে তাতে ইনপুটে ফোকাস করুন"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "সক্রিয় উইন্ডোটি বন্ধ করুন"
+
+# button label
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "ডিফল্ট (&e)"
+
+# progress stage title
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "ডিফল্ট উইন্ডো ম্যানেজার আরাম্ভ করা হচ্ছে"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ডেস্কটপ ঘনক"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "আউটপুট সন্ধান"
+
+# headline for dialog "Select for update"
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "পরিবর্ধনের জন্য নির্বাচন করুন"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "দ্রুত"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "সাধারণ বিকল্প"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "সাধারণ কমপিজ বিকল্প"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "ভালো"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "টাস্কবার উইন্ডোগুলি বাদ দেওয়া গোপন করা"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "সব উইন্ডোগুলি গোপন করা এবং ডেস্কটপে ফোকাস করা"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"ডেস্কটপ প্রদর্শন প্রণালীতে প্রবেশ করার সময় টাস্কবারে নেই এরকম উইন্ডোগুলি গোপন করুন"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "অনুভূমিক ভার্চুয়াল আকার"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "বড় করার হলে ইঙ্গিতগুলি অগ্রাহ্য করা"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "উইন্ডো বড় করার সময় আকার বৃদ্ধি এবং আকৃতির ইঙ্গিত অগ্রাহ্য করুন"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "নির্বাচিত উইন্ডোগুলিকে তোলার আগে ব্যবধান"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "পিং বার্তাগুলির মধ্যে ব্যবধান"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "আলোকপাত"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "বর্তমানে সক্রিয় প্লাগইনের তালিকা"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "আউটপুট ডিভাইস বর্ণনাকারী স্ট্রিংয়ের তালিকা"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "নিচের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "অন্যান্য উইন্ডগুলির নিচে উইন্ডোটিকে নামিয়ে দিন"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "সক্রিয় উইন্ডো বড় করা"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "সক্রিয় উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "সক্রিয় উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "সক্রিয় উইন্ডো ছোট করা"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "স্বাভাবিক"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "ডেস্কটপের সংখ্যা"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "ভার্চুয়াল ডেস্কটপের সংখ্যা"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "উল্লম্ব ফাঁকা পর্যায়ে শুধুমাত্র স্ক্রিন আপডেট সম্পাদন করুন"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "আউটপুটগুলি"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "পিং বিলম্ব"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "ক্লিক করে বৃদ্ধি করুন"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "উইন্ডো তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "ব্যবধানের পরে নির্বাচিত উইন্ডোটিকে তুলে ধরুন"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "অন্যান্য উইন্ডোগুলির ওপরে উইন্ডো তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "ক্লিক করা হলে উইন্ডোটি তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "পুনরায় তালিকা প্রদর্শন করো (&R)"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "অনুভূমিক ভার্চুয়াল আকারের জন্য স্ক্রিন আকারের গুণিতক"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "উল্লম্ব ভার্চুয়াল আকারের জন্য স্ক্রিন আকারের গুণিতক"
+
+# label text
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "সময়"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "সবগুলো পার্টিশন প্রদর্শন করো"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "স্মার্ট"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank এ Sync "
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "টেক্সচার ফিল্টার করা"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "টেক্সচার ফিল্টার"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "টেক্সচার ফিল্টার করা"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "যে হারে স্ক্রিনটি পুনরায় অঙ্কন করা হবে (গুণ/সেকেন্ড)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "অনুভূমিকভাবে সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "উল্লম্বভাবে সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "উইন্ডো শেড টগল করা"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "সর্বাধিক সক্রিয় উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "অনুভূমিকভাবে সর্বাধিক সক্রিয় উইন্ডোকে টগল করা"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "উল্লম্বভাবে সর্বাধিক সক্রিয় উইন্ডোকে টগল করা"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "সক্রিয় উইন্ডো শেড টগল করা"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "মন্থর অ্যানিমেশনগুলির ব্যবহার টগল করা"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "সক্রিয় উইন্ডো সর্বাধিক না করা"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "পূর্ণস্ক্রিনের উইন্ডোগুলি পুনর্নির্দেশ না করা"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "স্ক্রিন স্থানান্তরিত করার সময় বিচ্ছুরিত আলো প্রয়োগ করুন"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "উল্লম্ব ভার্চুয়াল আকার"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "উইন্ডোর মেনু বোতাম বন্ধন"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "উইন্ডোর কী বোতাম বন্ধন"
+
+# নির্বাচন
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "নির্বাচন "
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "চিত্র বিন্যস্ত করা"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "চিত্রের ওপরের তলটি ঘোরানোয় বিন্যস্ত করা"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "পরবর্তী স্লাইডে এগিয়ে যাওয়া"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "স্কাইডোম অ্যানিমেট করা"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "ঘনক ঘোরানোর সময় স্কাইডোম অ্যানিমেট করা"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# স্বয়ংক্রীয়
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "ঘনকের ওপর এবং নিচের প্রান্তের রঙ"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "স্কাইডোম-ফলব্যাক গ্র্যাডিয়েন্টের নিচের কালার-স্টপের জন্য রঙ "
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "স্কাইডোম-ফলব্যাক গ্র্যাডিয়েন্টের ওপরের কালার-স্টপের জন্য রঙ "
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ঘনকের রঙ"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "ঘনকের রঙ"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "ডেস্কটপ ঘনক"
+
+# নির্বাচন
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "নির্বাচন "
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "সময়"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "উন্নততর স্কেলিং এর জন্য mipmaps তৈরী করুন"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "পূর্ববর্তী স্লাইডে ফিরে যান"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "ইমেজ ফাইল তৈরী করো"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "স্কাইডোমের টেক্সচার হিসাবে ব্যবহারের জন্য চিত্র"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "যদি মাউস দিয়ে ঘোরানো হয় তাহলে ঘনকের স্বচ্ছতা শুরু হবে."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "ঘনকের অভ্যন্তরে"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "ঘনকের অভ্যন্তরে"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "ঘনকের উপরিতলে PNG এবং SVG র যে তালিকা প্রয়োগ করা হবে"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "বিবিধ আউটপুট প্রণালী"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "বহুবিধ ঘনকগুলি"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "পরবর্তী স্লাইড"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "বড় ঘনকে"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "না ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "ঘোরানোর সময় ডেস্কটপ উইন্ডোর অস্বচ্ছতা."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "ঘোরানোর সময় ডেস্কটপ উইন্ডোর অস্বচ্ছতা."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "ঘনকে উইন্ডো স্থাপন করা"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "পূর্ববর্তী স্লাইড"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Skydome প্রয়োগ করা"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "ঘনকের ওপরের তল আবৃত করার জন্য চিত্র স্কেল করা"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"যদি একাধিক ডিভাইস ব্যবহার করা হয় সেক্ষেত্রে ঘনকটি কিভাবে প্রদর্শন করা হবে তা "
+"নির্বাচন করে."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "স্কাইডোম"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "স্কাইডোম গ্র্যাডিয়েন্ট শেষের রঙ"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "স্কাইডোম গ্র্যাডিয়েন্ট আরম্ভের রঙ"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "স্কাইডোম চিত্র"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "সময়"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "মাউস ঘোরানোর সময় স্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "উন্মুক্ত করা"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "ঘনকটি উন্মুক্ত করা"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "ডিবাস"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "ডিবাস নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "অলঙ্করণ টেক্সচারে মিপম্যাপ তৈরী করতে দিন"
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"যদি কোন ডেকোরেটর আগে থেকে কাজ না করেন সেক্ষেত্রে যে ডেকোরেটর নির্দেশ লাইন ব্যবহৃত "
+"হবে"
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "প্রচ্ছায়া অফসেট X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "প্রচ্ছায়া অফসেট Y"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "যে উইন্ডোগুলি অলঙ্করণ করা হবে"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "যে উইন্ডোগুলি ছায়াযুক্ত করা হবে"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+# label text
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "সময়"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "ধারন করে"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "ছোট করা/খোলা/বন্ধ করার ওপর মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "উইন্ডো ছোট করা/খোলা/বন্ধ করার ওপর মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "সিস্টেম বিপে মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "ম্যাপ করার সময় উইন্ডো ফেড ইন করা এবং আনম্যাপ করার সময় উইন্ডো ফেড আউট করা"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "পূর্ণস্ক্রিনের দৃশ্যমান বেল"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "সিস্টেম বিপে পূর্ণ পর্দার মলিন প্রভাব"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "দৃশ্যমান বেল"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "উইন্ডো মলিন হওয়ার গতি"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "স্কেল প্রণালীতে উইন্ডোগুলি স্কেল করা"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "যে উইন্ডোগুলি মলিন করা হবে"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "মাউন্ট বিন্দু"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "মাউন্ট বিন্দু"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "ইউজারস্পেস ফাইল সিস্টেম"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "ইউজারস্পেস ফাইল সিস্টেম"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib প্রধান লুপ সমর্থন"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "একটি টার্মিনাল খুলুন"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "ডায়ালগ চালনা করা"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "প্রধান মেনু প্রদর্শন করা"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "চালনা করার অনুপ্রয়োগ ডায়ালগ প্রদর্শন করা"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "প্রধান তালিকা প্রদর্শন"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "একটি স্ক্রিনশট নিন"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "উইন্ডোর একটি স্ক্রিনশট নিন"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "উইন্ডো স্ক্রিনশট নির্দেশ লাইন"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini ফ্ল্যাট ফাইলের ব্যাকএন্ড"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ফাইল পরিবর্তন ঘোষণাকারী প্লাগইন"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "আইনোটিফাই"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "প্রভাব সর্বনিম্ন করা"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "উইন্ডোগুলি ছোট করা"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "সর্বনিম্ন করার গতি"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "শেড প্রতিরোধ"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "শেড প্রতিরোধ"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "উইন্ডোগুলি ছোট এবং বড় করার সময় সেগুলি স্থানান্তরিত করে"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "উইন্ডো ছোট করার সময় যে উইন্ডোগুলি স্থানান্তরিত করা হবে"
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "ধারন করে"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "ওয়ার্কস্পেস ক্ষেত্রে Y স্থানাঙ্ককে সীমাবদ্ধ করুন"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"সরানোর কার্যটি সমাপ্ত না হওয়া পর্যন্ত সার্ভারের-দিকে অবস্থিত উইন্ডোগুলি আপডেট করবেন "
+"না"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "উইন্ডো সরানো আরম্ভ করা"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "অলস অবস্থান নির্ণয়"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "উইন্ডো সরানো"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "অস্বচ্ছতা"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "চলমান উইন্ডোর অস্বচ্ছতার স্তর"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "টানার সময় বড় করা উইন্ডোকে স্ন্যাপঅফ করা এবং স্বয়ংক্রিয়ভাবে ছোট করা"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "স্ন্যাপঅফ সর্বাধিক উইন্ডো"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "অস্বচ্ছতা হ্রাস করুন"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "অস্বচ্ছতা বৃদ্ধি করুন"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "অস্বচ্ছতা পরিবর্তনের ধাপ"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "অস্বচ্ছতা পরিবর্তনের ধাপ"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "অস্বচ্ছতার ধাপ"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "চলমান উইন্ডোর অস্বচ্ছতার স্তর"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "অস্বচ্ছতা উইন্ডোর মূল্যগুলি"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলি অর্ধস্বচ্ছ করা হবে"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "উইন্ডো স্থাপনের জন্য ব্যবহৃত অ্যালগোরিদম"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "কাসকেড"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "কেন্দ্রীভূত"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "উইন্ডো পরিচালনা"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "অনুভূমিক ভিউপোর্টের অবস্থান"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "উইন্ডোগুলি স্থাপন করা"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "ম্যাপ করার পর উপযুক্ত স্থানে উইন্ডোগুলি স্থাপন করুন"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "প্রতিস্থাপন প্রণালী"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "অবস্থানযুক্ত উইন্ডো"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "ইচ্ছামত"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"যদি একাধিক আউটপুট ডিভাইস ব্যবহার করা হয় তাহলে উইন্ডোগুলি কোথায় স্কেল করা হবে তা "
+"নির্বাচন করে"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "স্মার্ট"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "সব আউটপুট ডিভাইসে"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "উল্লম্ব ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "ভিউপোর্ট অবস্থানের উইন্ডো"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "উইন্ডো প্রতিস্থাপন ওয়ার্কএরাউন্ড"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "প্রথাস্বরূপভাবে যে ভিউপোর্টে উইন্ডোগুলি রাখা হবে "
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "ওয়ার্কএরাউন্ড"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X অবস্থান"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X অবস্থানের মূল্য"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y অবস্থান"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y অবস্থানের মূল্য"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png চিত্র লোডকারী"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "রিগেক্স মেলানো"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "রিগেক্স উইন্ডো মেলানো"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "প্রান্তরেখার রঙ"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "বহির্রেখা এবং আয়তাকার পুনরাকৃতি প্রণালীতে ব্যবহৃত প্রান্তরেখার রঙ"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "প্রথাস্বরূপ পুনরাকৃতির প্রণালী"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "উইন্ডো পুনরাকৃতির জন্য প্রথাস্বরূপ প্রণালী"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "রঙ পূর্ণ করা"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "আয়তাকার পুনরাকৃতি প্রণালীর জন্য ব্যবহৃত পূর্ণকরণ রঙ"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "বহির্রেখা"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "পুনরাকার উইন্ডোর বহির্রেখা"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "আয়তক্ষেত্র"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "উইন্ডোর আকার পরিবর্তন করা"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "উইন্ডোর আকার পরিবর্তন করা"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "উইন্ডোটি বিস্তৃত করে উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "আয়তক্ষেত্র দিয়ে উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "প্রসারিত করা"
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "যে উইন্ডোর জন্য স্বাভাবিক পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "যে উইন্ডোর জন্য বহির্রেখা পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "যে উইন্ডোর জন্য আয়তাকার পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "যে উইন্ডোর জন্য বিস্তৃতি পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr " DnD প্রান্ত ফ্লিপ করা"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "প্রান্তের ফ্লিপ সরানো"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "প্রান্তের ফ্লিপ নির্দেশক"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "বাঁদিকের ভিউপোর্টে ফ্লিপ করা এবং নির্দেশকটি মুড়িয়ে দেওয়া "
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "বস্তুটিকে স্ক্রিনের প্রান্তে টানার সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "নির্দেশকটিকে স্ক্রিনের প্রান্তে সরানোর সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "নির্দেশকটিকে স্ক্রিনের প্রান্তে সরানোর সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "ডানদিকের ভিউপোর্টে ফ্লিপ করা এবং নির্দেশকটি মুড়িয়ে দেওয়া "
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "নির্দেশক সরানোর জন্য Y অক্ষ উল্টে দিন"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "নির্দেশক উল্টানো Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "নির্দেশক সংবেদনশীলতা"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "ঘোরানোর সময় তোলা"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "ঘোরানোর সময় উইন্ডোটি তোলা"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "ফ্লিপ বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "ফ্লিপকে ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "উইন্ডো সহ বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "উইন্ডো সহ ডানদিকে ঘোরানো"
+
+# স্বয়ংক্রীয়
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "উইন্ডো সহ ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "ফেস 10 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "উইন্ডো সহ ফেস 10 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "ফেস 11 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "উইন্ডো সহ ফেস 11 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "ফেস 12 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "উইন্ডো সহ ফেস 12 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "উইন্ডো সহ ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "ফেস 3 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "উইন্ডো সহ ফেস 3 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "ফেস 4 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "উইন্ডো সহ ফেস 4 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "ফেস 5 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "উইন্ডো সহ ফেস 5 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "ফেস 6 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "উইন্ডো সহ ফেস 6 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "ফেস 7 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "উইন্ডো সহ ফেস 7 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "ফেস 8 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "উইন্ডো সহ ফেস 8 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "ফেস 9 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "উইন্ডো সহ ফেস 9 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "ডেস্কটপ ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "বাঁদিকে ঘোরানো এবং সক্রিয় উইন্ডো নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "ডানদিকে ঘোরানো এবং সক্রিয় উইন্ডো নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "ফেস 1 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "উইন্ডো সহ ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "ফেস 1 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "ফেস 1 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "ফেস 10 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "ফেস 10 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "ফেস 11 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "ফেস 11 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "ফেস 12 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "ফেস 12 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "ফেস 2 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "ফেস 3 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "ফেস 3 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "ফেস 4 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "ফেস 4 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "ফেস 5 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "ফেস 5 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "ফেস 6 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "ফেস 6 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "ফেস 7 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "ফেস 7 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "ফেস 8 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "ফেস 8 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "ফেস 9 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "ফেস 9 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "ভিউপোর্টে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "উইন্ডো ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "উইন্ডো দিয়ে ঘোরানো"
+
+# নির্বাচন
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "নির্বাচন "
+
+# label text
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "সময়"
+
+# label text
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "সময়"
+
+# label text
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "সময়"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "নির্দেশকের চলাচলের সংবেদনশীলতা "
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ওপরের ফেসে ঘনক ঘোরানোকে স্ন্যাপ করা "
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ওপরের ফেসে ঘনক ঘোরানোকে স্ন্যাপ করা "
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ওপরের ফেসে স্ন্যাপ করুন"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ওপরের ফেসে স্ন্যাপ করুন"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "ফ্লিপিং ভিউপোর্টের আগে সময়অতিক্রান্ত হয়েছে"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "জুম"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "অস্বচ্ছতার শতকরা পরিমাণ"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "বড়"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "ডেস্কটপ প্রদর্শন করার জন্য ডেস্কটপে ক্লিক করুন"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "পটভূমি গাঢ় করা"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "উইন্ডো স্কেল করার সময় পটভূমি গাঢ় করা"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "প্রতীক"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"স্কেল করার সময় ডেস্কটপে যখন ক্লিক করা হবে তখন ডেস্কটপ প্রণালী প্রদর্শন প্রবেশ করান "
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "ঘুরে বেড়ানোর সময়"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "ভারত"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "সব উইন্ডোর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "সব উইন্ডো শ্রেণীর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "বর্তমান আউটপুটের উইন্ডোর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "সব উইন্ডোগুলির বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "উইন্ডো শ্রেণীর বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "উইন্ডোগুলির বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "বর্তমান আউটপুটের উইন্ডোগুলির বিন্যাস করা এবং তার রূপান্তর শুরু করা"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "সব আউটপুট ডিভাইসে"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "বর্তমান আউটপুট ডিভাইসে"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "ওভারলে চিত্রসংকেত"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "উইন্ডোগুলিকে স্কেল করার পর সেগুলির ওপর চিত্রসংকেত স্থাপন করুন"
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "স্ক্যানার"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"যদি একাধিক আউটপুট ডিভাইস ব্যবহার করা হয় তাহলে উইন্ডোগুলি কোথায় স্কেল করা হবে তা "
+"নির্বাচন করে"
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "স্পেন"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "উইন্ডোর ওপর ঘুরে বেড়ানোর সময় স্কেল প্রণালী বন্ধ করার পূর্ববর্তী সময় (মিনিটে)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "স্কেল প্রণালীতে উইন্ডোগুলি স্কেল করা"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "এই অনুপ্রয়োগে স্ক্রিনশটগুলি স্বয়ংক্রিয়ভাবে খুলে যায়"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "ডিরেক্টরী"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "ভারত"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "স্থাপনকার্যের অনুপ্রয়োগ"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "এই ডিরেক্টরীর স্ক্রিনশট চিত্রগুলি স্থাপন করা"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg "
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg চিত্র লোডার"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "উজ্জ্বলতার শতকরা পরিমাণ"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "সম্পৃক্তির শতকরা পরিমাণ"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "অনুপ্রয়োগ পরিবর্তনকারী"
+
+# স্বয়ংক্রীয়
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "বুটের সময়"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "নির্বাচিত উইন্ডোটিকে সামনে নিয়ে আসা"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "উইন্ডো পরিবর্তন করার সময় দূরের ডেস্কটপটির জুম আউট করা হবে"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "চিত্রসংকেত"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "ছোট করা হয়েছে"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ডেস্কটপ তল"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "পরবর্তী উইন্ডো"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "পরবর্তী উইন্ডো (সব উইন্ডোগুলি)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "পরবর্তী উইন্ডো (কোন পপআপ নেই)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "পপআপ পরিবর্তনকারী দেখা না গেলে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"পপআপ পরিবর্তনকারী দেখা না গেলে সব উইন্ডোগুলির মধ্যে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "পপআপ পরিবর্তনকারী দেখা না গেলে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"পপআপ পরিবর্তনকারী দেখা না গেলে সব উইন্ডোগুলির মধ্যে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "পূর্ববর্তী স্লাইড"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "পূর্ববর্তী উইন্ডো "
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "পূর্ববর্তী উইন্ডো (সব উইন্ডোগুলি)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "পূর্ববর্তী উইন্ডো (কোন পপআপ নেই)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "পরিবর্তন করার সময় নির্বাচিত উইন্ডোটি ঘোরান"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "থাম্বনেলের পরবর্তী চিত্রসংকেত প্রদর্শন করা"
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "সুইচারে যে উইন্ডোগুলি প্রদর্শন করা হবে"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 কালারস্পেস সমর্থন প্রদান করা"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "ভিডিও প্লেব্যাক"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "ভিডিও প্লেব্যাক"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 কালারস্পেস"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "লাইন যুক্ত করা"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "বিন্দু যুক্ত করা"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "বিভিন্ন ডেস্কটপ কার্যাবলীতে জলের প্রভাব প্রয়োগ করা"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "প্রত্যেক বৃষ্টির ফোঁটার মধ্যে ব্যবধান (মিনিটে)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "পয়েন্টার জলের প্রভাব সমর্থ করা"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "লাইন"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "অফসেট স্কেল"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "বিন্দু"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "বৃষ্টির বিলম্ব"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "শীর্ষ তরঙ্গ"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "টোকেন রিং"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "জলের প্রভাব"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "জলের অফসেট স্কেল"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "উইন্ডো শীর্ষ থেকে জলের প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "ফোকাসের প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "ফোকাস উইন্ডো প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "ফোকাস উইন্ডো "
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "পার্টিশন"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# দ্বন্দ্ব
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "উল্টো উইন্ডো স্ন্যাপিং"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "উইন্ডোটিকে কাঁপানো"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "ম্যাপ প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "ম্যাপ উইন্ডো প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "সর্বোচ্চ প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "সর্বনিম্ন গ্রিড আকার"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "সর্বনিম্ন শীর্ষ গ্রিডের আকার"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "কম্পন"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "স্ন্যাপ উল্টানো"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "পার্টিশন"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "ধাপে ধাপে আগানো"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "ধাপে ধাপে আগানো"
+
+# why not "token ring"?
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "টোকেন রিং"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "টলমল উইন্ডো প্রভাবের ক্ষেত্রে স্প্রিং ব্যবহার করুন"
+
+# দ্বন্দ্ব
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "ফোকাস করার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "ধরার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "ম্যাপ করার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "সরানোর সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "উইন্ডোগুলি সর্বাধিক করা বা না করার সময় টলমল করার প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "টলমলে উইন্ডো"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "ফিল্টার:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "জুম ইন করার সময় রৈখিক ফিল্টার ব্যবহার করুন"
+
+# label text
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "সময়"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "জুম ইন"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "জুম আউট"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "জুম প্যান"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "সময়"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ডেস্কটপ ঘনক জুম করা এবং প্যান করা"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "জুম ফ্যাক্টর"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "উইন্ডোর অস্বচ্ছতা হ্রাস করুন"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "উইন্ডোর অস্বচ্ছতা বৃদ্ধি করুন"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "উইন্ডোর যে অস্বচ্ছতাকে প্রথাস্বরূপভাবে অর্ধস্বচ্ছ করা হবে"
+
+#~ msgid "Opacity windows"
+#~ msgstr "অস্বচ্ছতা উইন্ডো"
+
+#~ msgid "Background Images"
+#~ msgstr "পটভূমির চিত্রগুলি"
+
+#~ msgid "Background images"
+#~ msgstr "পটভূমির চিত্রগুলি"
+
+# why not "token ring"?
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "টোকেন রিং"
+
+#~ msgid "Plane Down"
+#~ msgstr "নিচের তল"
+
+#~ msgid "Plane Left"
+#~ msgstr "বাঁদিকের তল"
+
+#~ msgid "Plane Right"
+#~ msgstr "ডানদিকের তল"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "তল থেকে ফেস 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "তল থেকে ফেস 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "তল থেকে ফেস 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "তল থেকে ফেস 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "তল থেকে ফেস 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "তল থেকে ফেস 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "তল থেকে ফেস 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "তল থেকে ফেস 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "তল থেকে ফেস 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "তল থেকে ফেস 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "তল থেকে ফেস 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "তল থেকে ফেস 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "ওপরের তল"
+
+#~ msgid "Plane down"
+#~ msgstr "নিচের তল"
+
+#~ msgid "Plane left"
+#~ msgstr "বাঁদিকের তল"
+
+#~ msgid "Plane right"
+#~ msgstr "ডানদিকের তল"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "তল থেকে ফেস 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "তল থেকে ফেস 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "তল থেকে ফেস 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "তল থেকে ফেস 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "তল থেকে ফেস 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "তল থেকে ফেস 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "তল থেকে ফেস 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "তল থেকে ফেস 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "তল থেকে ফেস 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "তল থেকে ফেস 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "তল থেকে ফেস 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "তল থেকে ফেস 9"
+
+#~ msgid "Plane up"
+#~ msgstr "ওপরের তল"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "ডেস্কটপের উইন্ডো অস্বচ্ছতা মলিন হওয়ার সময়."
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "পার্টিশন"
+
+# label for an unknown installed system
+# try to use simple words
+#~ msgid "Unknown"
+#~ msgstr "অজানা"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "বিস্তারিত দেখাও (&d)"
+
+# নির্বাচন
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "নির্বাচন "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "রাশিয়ান"
+
+# নির্বাচন
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "নির্বাচন "
+
+# label text
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "স্হানীয় সময়"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "পার্টিশন"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ধাপে ধাপে আগানো"
+
+# দ্বন্দ্ব
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "ফ্লপি ডিস্ক"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "প্রিন্টার"
diff --git a/po/bn_IN.po b/po/bn_IN.po
new file mode 100644
index 0000000..a85efd4
--- /dev/null
+++ b/po/bn_IN.po
@@ -0,0 +1,3577 @@
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:07+0100\n"
+"PO-Revision-Date: 2008-03-15 16:49+0100\n"
+"Last-Translator: biswajyoti mahanta <biswajyotim@gmail.com>\n"
+"Language-Team: gist bengali team <info.gist@cdac.in>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "ডেস্কটপ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "উইন্ডো পরিচালনা"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "কমপিজ"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "কিছু না"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "চেদ"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "ছোট করা হয়েছে"
+
+# স্বয়ংক্রীয়
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "উইন্ডো মেনু"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "উইন্ডো শীর্ষবারে মাউস হুইল স্ক্রল করার সময় কার্য করা হবে"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "অস্বচ্ছতার প্রকৃতি"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "মেটাসিটি বিষয় সক্রিয় উইন্ডোর অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "মেটাসিটি বিষয় সক্রিয় উইন্ডোর অস্বচ্ছতার শেড"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "মেটাসিটি বিষয় অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "মেটাসিটি বিষয় অস্বচ্ছতার শেড"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "মেটাসিটি বিষয় অলঙ্করণ সহ সক্রিয় উইন্ডোয় ব্যবহারের জন্য অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "মেটাসিটি বিষয় অলঙ্করণে ব্যবহারের জন্য অস্বচ্ছতা"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "অস্বচ্ছ থেকে অর্ধস্বচ্ছ মেটাসিটি বিষয় অলঙ্করণ সহ শেড সক্রিয়করণ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "অস্বচ্ছ থেকে অর্ধস্বচ্ছ মেটাসিটি বিষয় অলঙ্করণ সহ শেড সক্রিয়করণ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "শীর্ষ বার মাউস হুইলের কার্য"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "উইন্ডো অলঙ্করণের সময় অস্পষ্টতার প্রকার"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "মেটাসিটি বিষয় ব্যবহার করুন"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "উইন্ডো অলঙ্করণ করার সময় মেটাসিটি বিষয় ব্যবহার করুন"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "উইন্ডো বন্ধ করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "উইন্ডো সর্বাধিক না করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "উইন্ডো বড় করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "উইন্ডোটি ছোট করা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "উপরে আনোন"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "চেটে যাক"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "চেদ বাদ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "উপরে আনো না"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "না চাটবে না"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, fuzzy, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "The window \"%s\" প্রতিক্রিযা করছেনা"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "এপ্লিকেছন টি যোরকরে বন্ধ করতে হবে আর আপনার সকল unsaved হারাটে হবে |"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "যোরকরে বন্ধ করতে হবে"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "অ্যানোটেট"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "অ্যানোটেট এ রঙ পূর্ণ করোন"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "অ্যানোটেট এ স্ট্রোকের রঙ করোন"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "অ্যানোটেট প্লাগিন"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "পরিষ্কার করো"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "অঙ্কন করো"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "টুলের সাহায্যে অঙ্কন করা"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "অ্যানোটেটচন এ রঙ পূর্ণ করো"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "শুরু "
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "অ্যানোটেটন এ অঙ্কন শুরু করো"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "অ্যানোটেটন এ মোছটে শুরু করো"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "মোছটে শুরু করো"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "রেখার বিস্তার (প্রস্থ)"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "অ্যানোটেশনের লাইনের প্রস্থ"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "অ্যানোটেশনের স্ট্রোকের রঙ"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "স্ট্রোকের প্রস্থ"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "অ্যানোটেশনের স্ট্রোকের প্রস্থ"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "আলফা অস্পষ্ট"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "উন্ডোর বিস্তারিত দেখাও"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "অস্পষ্ট টার ফিলটার"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "অস্পষ্ট দেখতে"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "অস্পষ্ট টা Saturation"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "অস্পষ্ট টা র গতি"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "অস্পষ্ট টা র উইন্ডো"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "উইন্ডোর অর্ধস্বচ্ছ অংশের পিছনের অস্পষ্টতা"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "যে উইন্ডোগুলিতে ফোকাস নেই সেগুলিকে অস্পষ্ট করা "
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "অন্যান্য উইন্ডো দ্বারা অস্পষ্ট করা স্ক্রিনের অংশগুলির অস্পষ্টতাকে অসমর্থ করা."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "অস্পষ্ট করার জন্য ফিল্টার করার পদ্ধতি"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "ফোকাস অস্পষ্ট"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "ফোকাস অস্পষ্ট করার উইন্ডো"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "রাশিয়ান"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "মিপম্যাপ"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "মিপম্যাপ LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "মিপম্যাপের বিশদরূপের-স্তর"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "পালস"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "পালস প্রভাব"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "উইন্ডোর অস্পষ্টকরণের গতি"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "ফোকাস বার দ্বারা যে উইন্ডোগুলি প্রভাবিত হবে"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলি আলফা অস্পষ্টতা ব্যবহার করবে"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "সমরূপ আউটপুট"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "ভারত"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "আউটপুট সমরূপ পরিচালক"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 0 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ1 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ10 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ11 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ 2 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা "
+"হবে"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ3 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ4 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ5 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ6 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ7 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ8 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"যখন কোন কী বাইন্ডিং চাওয়া হবে, নির্দেশ9 দ্বারা চিহ্নিত শেল নির্দেশটি চালনা করা হবে"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "যখন run_command0 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "যখন run_command1 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "যখন run_command10 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "যখন run_command11 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "যখন run_command2 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "যখন run_command3 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "যখন run_command4 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "যখন run_command5 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "যখন run_command6 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "যখন run_command7 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "যখন run_command8 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "যখন run_command9 চাওয়া হবে তখন শেলে নির্দেশ লাইনটি সম্পাদন করা হবে"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "সক্রিয় প্লাগইনগুলি"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "অফস্ক্রিন পিক্সম্যাপে পুনর্নির্দেশিত না করার জন্য পূর্ণস্ক্রিন উইন্ডো অঙ্কন সম্মত করা"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "শ্রবণযোগ্য বেল"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "শ্রবণযোগ্য সিস্টেম বিপ"
+
+# স্বয়ংক্রীয়
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "স্বয়ং-বৃদ্ধি বিলম্ব"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "আউটপুট ডিভাইসের স্বয়ংক্রিয় সন্ধান"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "পুনঃসজীব মাত্রার স্বয়ংক্রিয় সন্ধান"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "সর্বোত্তম"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "ফোকাসে ক্লিক করুন"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "উইন্ডোয় ক্লিক করে তাতে ইনপুটে ফোকাস করুন"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "সক্রিয় উইন্ডোটি বন্ধ করুন"
+
+# button label
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "ডিফল্ট (&e)"
+
+# progress stage title
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "ডিফল্ট উইন্ডো ম্যানেজার আরাম্ভ করা হচ্ছে"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ডেস্কটপ ঘনক"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "আউটপুট সন্ধান"
+
+# headline for dialog "Select for update"
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "পরিবর্ধনের জন্য নির্বাচন করুন"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "দ্রুত"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "সাধারণ বিকল্প"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "সাধারণ কমপিজ বিকল্প"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "ভালো"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "টাস্কবার উইন্ডোগুলি বাদ দেওয়া গোপন করা"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "সব উইন্ডোগুলি গোপন করা এবং ডেস্কটপে ফোকাস করা"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"ডেস্কটপ প্রদর্শন প্রণালীতে প্রবেশ করার সময় টাস্কবারে নেই এরকম উইন্ডোগুলি গোপন করুন"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "অনুভূমিক ভার্চুয়াল আকার"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "বড় করার হলে ইঙ্গিতগুলি অগ্রাহ্য করা"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "উইন্ডো বড় করার সময় আকার বৃদ্ধি এবং আকৃতির ইঙ্গিত অগ্রাহ্য করুন"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "নির্বাচিত উইন্ডোগুলিকে তোলার আগে ব্যবধান"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "পিং বার্তাগুলির মধ্যে ব্যবধান"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "আলোকপাত"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "বর্তমানে সক্রিয় প্লাগইনের তালিকা"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "আউটপুট ডিভাইস বর্ণনাকারী স্ট্রিংয়ের তালিকা"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "নিচের উইন্ডো"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "অন্যান্য উইন্ডগুলির নিচে উইন্ডোটিকে নামিয়ে দিন"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "সক্রিয় উইন্ডো বড় করা"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "সক্রিয় উইন্ডোটিকে অনুভূমিকভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "সক্রিয় উইন্ডোটিকে উল্লম্বভাবে বড় করা"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "সক্রিয় উইন্ডো ছোট করা"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "স্বাভাবিক"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "ডেস্কটপের সংখ্যা"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "ভার্চুয়াল ডেস্কটপের সংখ্যা"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "উল্লম্ব ফাঁকা পর্যায়ে শুধুমাত্র স্ক্রিন আপডেট সম্পাদন করুন"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "আউটপুটগুলি"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "পিং বিলম্ব"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "ক্লিক করে বৃদ্ধি করুন"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "উইন্ডো তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "ব্যবধানের পরে নির্বাচিত উইন্ডোটিকে তুলে ধরুন"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "অন্যান্য উইন্ডোগুলির ওপরে উইন্ডো তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "ক্লিক করা হলে উইন্ডোটি তুলে ধরা"
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "পুনরায় তালিকা প্রদর্শন করো (&R)"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "অনুভূমিক ভার্চুয়াল আকারের জন্য স্ক্রিন আকারের গুণিতক"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "উল্লম্ব ভার্চুয়াল আকারের জন্য স্ক্রিন আকারের গুণিতক"
+
+# label text
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "সময়"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "সবগুলো পার্টিশন প্রদর্শন করো"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "স্মার্ট"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank এ Sync "
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "টেক্সচার ফিল্টার করা"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "টেক্সচার ফিল্টার"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "টেক্সচার ফিল্টার করা"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "যে হারে স্ক্রিনটি পুনরায় অঙ্কন করা হবে (গুণ/সেকেন্ড)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "অনুভূমিকভাবে সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "উল্লম্বভাবে সর্বাধিক উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "উইন্ডো শেড টগল করা"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "সর্বাধিক সক্রিয় উইন্ডো টগল করা"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "অনুভূমিকভাবে সর্বাধিক সক্রিয় উইন্ডোকে টগল করা"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "উল্লম্বভাবে সর্বাধিক সক্রিয় উইন্ডোকে টগল করা"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "সক্রিয় উইন্ডো শেড টগল করা"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "মন্থর অ্যানিমেশনগুলির ব্যবহার টগল করা"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "সক্রিয় উইন্ডো সর্বাধিক না করা"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "পূর্ণস্ক্রিনের উইন্ডোগুলি পুনর্নির্দেশ না করা"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "স্ক্রিন স্থানান্তরিত করার সময় বিচ্ছুরিত আলো প্রয়োগ করুন"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "উল্লম্ব ভার্চুয়াল আকার"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "উইন্ডোর মেনু বোতাম বন্ধন"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "উইন্ডোর কী বোতাম বন্ধন"
+
+# নির্বাচন
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "নির্বাচন "
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "চিত্র বিন্যস্ত করা"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "চিত্রের ওপরের তলটি ঘোরানোয় বিন্যস্ত করা"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "পরবর্তী স্লাইডে এগিয়ে যাওয়া"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "স্কাইডোম অ্যানিমেট করা"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "ঘনক ঘোরানোর সময় স্কাইডোম অ্যানিমেট করা"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# স্বয়ংক্রীয়
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "ঘনকের ওপর এবং নিচের প্রান্তের রঙ"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "স্কাইডোম-ফলব্যাক গ্র্যাডিয়েন্টের নিচের কালার-স্টপের জন্য রঙ "
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "স্কাইডোম-ফলব্যাক গ্র্যাডিয়েন্টের ওপরের কালার-স্টপের জন্য রঙ "
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ঘনকের রঙ"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "ঘনকের রঙ"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "ডেস্কটপ ঘনক"
+
+# নির্বাচন
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "নির্বাচন "
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "সময়"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "উন্নততর স্কেলিং এর জন্য mipmaps তৈরী করুন"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "পূর্ববর্তী স্লাইডে ফিরে যান"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "ইমেজ ফাইল তৈরী করো"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "স্কাইডোমের টেক্সচার হিসাবে ব্যবহারের জন্য চিত্র"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "যদি মাউস দিয়ে ঘোরানো হয় তাহলে ঘনকের স্বচ্ছতা শুরু হবে."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "ঘনকের অভ্যন্তরে"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "ঘনকের অভ্যন্তরে"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "ঘনকের উপরিতলে PNG এবং SVG র যে তালিকা প্রয়োগ করা হবে"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "বিবিধ আউটপুট প্রণালী"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "বহুবিধ ঘনকগুলি"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "পরবর্তী স্লাইড"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "বড় ঘনকে"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "না ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "ঘোরানোর সময় ডেস্কটপ উইন্ডোর অস্বচ্ছতা."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "ঘোরানোর সময় ডেস্কটপ উইন্ডোর অস্বচ্ছতা."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "ঘনকে উইন্ডো স্থাপন করা"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "পূর্ববর্তী স্লাইড"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Skydome প্রয়োগ করা"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "ঘনকের ওপরের তল আবৃত করার জন্য চিত্র স্কেল করা"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"যদি একাধিক ডিভাইস ব্যবহার করা হয় সেক্ষেত্রে ঘনকটি কিভাবে প্রদর্শন করা হবে তা "
+"নির্বাচন করে."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "স্কাইডোম"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "স্কাইডোম গ্র্যাডিয়েন্ট শেষের রঙ"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "স্কাইডোম গ্র্যাডিয়েন্ট আরম্ভের রঙ"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "স্কাইডোম চিত্র"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "সময়"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "মাউস ঘোরানোর সময় স্বচ্ছতা"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "উন্মুক্ত করা"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "ঘনকটি উন্মুক্ত করা"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "ডিবাস"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "ডিবাস নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "অলঙ্করণ টেক্সচারে মিপম্যাপ তৈরী করতে দিন"
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "কমান্ড '%1'"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"যদি কোন ডেকোরেটর আগে থেকে কাজ না করেন সেক্ষেত্রে যে ডেকোরেটর নির্দেশ লাইন ব্যবহৃত "
+"হবে"
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "প্রচ্ছায়া অফসেট X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "প্রচ্ছায়া অফসেট Y"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "যে উইন্ডোগুলি অলঙ্করণ করা হবে"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "যে উইন্ডোগুলি ছায়াযুক্ত করা হবে"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+# label text
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "সময়"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "ধারন করে"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "ছোট করা/খোলা/বন্ধ করার ওপর মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "উইন্ডো ছোট করা/খোলা/বন্ধ করার ওপর মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "সিস্টেম বিপে মলিনতার প্রভাব"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "ম্যাপ করার সময় উইন্ডো ফেড ইন করা এবং আনম্যাপ করার সময় উইন্ডো ফেড আউট করা"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "পূর্ণস্ক্রিনের দৃশ্যমান বেল"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "সিস্টেম বিপে পূর্ণ পর্দার মলিন প্রভাব"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "দৃশ্যমান বেল"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "উইন্ডো মলিন হওয়ার গতি"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "স্কেল প্রণালীতে উইন্ডোগুলি স্কেল করা"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "যে উইন্ডোগুলি মলিন করা হবে"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "মাউন্ট বিন্দু"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "মাউন্ট বিন্দু"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "ইউজারস্পেস ফাইল সিস্টেম"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "ইউজারস্পেস ফাইল সিস্টেম"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib প্রধান লুপ সমর্থন"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "একটি টার্মিনাল খুলুন"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "ডায়ালগ চালনা করা"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "প্রধান মেনু প্রদর্শন করা"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "চালনা করার অনুপ্রয়োগ ডায়ালগ প্রদর্শন করা"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "প্রধান তালিকা প্রদর্শন"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "একটি স্ক্রিনশট নিন"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "উইন্ডোর একটি স্ক্রিনশট নিন"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "উইন্ডো স্ক্রিনশট নির্দেশ লাইন"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini ফ্ল্যাট ফাইলের ব্যাকএন্ড"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ফাইল পরিবর্তন ঘোষণাকারী প্লাগইন"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "আইনোটিফাই"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig নিয়ন্ত্রণ ব্যাকএন্ড"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "প্রভাব সর্বনিম্ন করা"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "উইন্ডোগুলি ছোট করা"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "সর্বনিম্ন করার গতি"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "শেড প্রতিরোধ"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "শেড প্রতিরোধ"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "উইন্ডোগুলি ছোট এবং বড় করার সময় সেগুলি স্থানান্তরিত করে"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "উইন্ডো ছোট করার সময় যে উইন্ডোগুলি স্থানান্তরিত করা হবে"
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "ধারন করে"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "ওয়ার্কস্পেস ক্ষেত্রে Y স্থানাঙ্ককে সীমাবদ্ধ করুন"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"সরানোর কার্যটি সমাপ্ত না হওয়া পর্যন্ত সার্ভারের-দিকে অবস্থিত উইন্ডোগুলি আপডেট করবেন "
+"না"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "উইন্ডো সরানো আরম্ভ করা"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "অলস অবস্থান নির্ণয়"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "উইন্ডো সরানো"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "অস্বচ্ছতা"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "চলমান উইন্ডোর অস্বচ্ছতার স্তর"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "টানার সময় বড় করা উইন্ডোকে স্ন্যাপঅফ করা এবং স্বয়ংক্রিয়ভাবে ছোট করা"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "স্ন্যাপঅফ সর্বাধিক উইন্ডো"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "ব্রিজ"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "অস্বচ্ছতা হ্রাস করুন"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "অস্বচ্ছতা বৃদ্ধি করুন"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "অস্বচ্ছতা পরিবর্তনের ধাপ"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "অস্বচ্ছতা পরিবর্তনের ধাপ"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "অস্বচ্ছতার ধাপ"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "চলমান উইন্ডোর অস্বচ্ছতার স্তর"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "ঘোরানোর সময় অস্বচ্ছতা"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "অস্বচ্ছতা উইন্ডোর মূল্যগুলি"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলি অর্ধস্বচ্ছ করা হবে"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "উইন্ডো স্থাপনের জন্য ব্যবহৃত অ্যালগোরিদম"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "কাসকেড"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "কেন্দ্রীভূত"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "উইন্ডো পরিচালনা"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "ফোকাস প্রতিরোধের উইন্ডো"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "অনুভূমিক ভিউপোর্টের অবস্থান"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "উইন্ডোগুলি স্থাপন করা"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "ম্যাপ করার পর উপযুক্ত স্থানে উইন্ডোগুলি স্থাপন করুন"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "প্রতিস্থাপন প্রণালী"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "অবস্থানযুক্ত উইন্ডো"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "ইচ্ছামত"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"যদি একাধিক আউটপুট ডিভাইস ব্যবহার করা হয় তাহলে উইন্ডোগুলি কোথায় স্কেল করা হবে তা "
+"নির্বাচন করে"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "স্মার্ট"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "সব আউটপুট ডিভাইসে"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "উল্লম্ব ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "ভিউপোর্ট অবস্থানের উইন্ডো"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "উইন্ডো প্রতিস্থাপন ওয়ার্কএরাউন্ড"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "প্রথাস্বরূপভাবে যে উইন্ডোগুলির অবস্থান নির্ণয় করা হবে"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "প্রথাস্বরূপভাবে যে ভিউপোর্টে উইন্ডোগুলি রাখা হবে "
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "উইন্ডো অলঙ্করণ"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "ওয়ার্কএরাউন্ড"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X অবস্থান"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X অবস্থানের মূল্য"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y অবস্থান"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y ভিউপোর্ট অবস্থান"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y অবস্থানের মূল্য"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png চিত্র লোডকারী"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "রিগেক্স মেলানো"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "রিগেক্স উইন্ডো মেলানো"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "প্রান্তরেখার রঙ"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "বহির্রেখা এবং আয়তাকার পুনরাকৃতি প্রণালীতে ব্যবহৃত প্রান্তরেখার রঙ"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "প্রথাস্বরূপ পুনরাকৃতির প্রণালী"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "উইন্ডো পুনরাকৃতির জন্য প্রথাস্বরূপ প্রণালী"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "রঙ পূর্ণ করা"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "আয়তাকার পুনরাকৃতি প্রণালীর জন্য ব্যবহৃত পূর্ণকরণ রঙ"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "ভারত"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "বহির্রেখা"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "পুনরাকার উইন্ডোর বহির্রেখা"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "আয়তক্ষেত্র"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "উইন্ডোর আকার পরিবর্তন করা"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "উইন্ডোর আকার পরিবর্তন করা"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "উইন্ডোটি বিস্তৃত করে উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "আয়তক্ষেত্র দিয়ে উইন্ডোর আকার পরিবর্তন শুরু করুন"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "প্রসারিত করা"
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "যে উইন্ডোর জন্য স্বাভাবিক পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "যে উইন্ডোর জন্য বহির্রেখা পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "যে উইন্ডোর জন্য আয়তাকার পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "যে উইন্ডোর জন্য বিস্তৃতি পুনরাকৃতি প্রয়োগ করা হবে"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr " DnD প্রান্ত ফ্লিপ করা"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "প্রান্তের ফ্লিপ সরানো"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "প্রান্তের ফ্লিপ নির্দেশক"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "স্থানীয় সময়"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "বাঁদিকের ভিউপোর্টে ফ্লিপ করা এবং নির্দেশকটি মুড়িয়ে দেওয়া "
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "বস্তুটিকে স্ক্রিনের প্রান্তে টানার সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "নির্দেশকটিকে স্ক্রিনের প্রান্তে সরানোর সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "নির্দেশকটিকে স্ক্রিনের প্রান্তে সরানোর সময় পরবর্তী ভিউপোর্টে ফ্লিপ করুন"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "ডানদিকের ভিউপোর্টে ফ্লিপ করা এবং নির্দেশকটি মুড়িয়ে দেওয়া "
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "নির্দেশক সরানোর জন্য Y অক্ষ উল্টে দিন"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "নির্দেশক উল্টানো Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "নির্দেশক সংবেদনশীলতা"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "ঘোরানোর সময় তোলা"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "ঘোরানোর সময় উইন্ডোটি তোলা"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "ফ্লিপ বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "ফ্লিপকে ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "উইন্ডো সহ বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "উইন্ডো সহ ডানদিকে ঘোরানো"
+
+# স্বয়ংক্রীয়
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "উইন্ডো সহ ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "ফেস 10 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "উইন্ডো সহ ফেস 10 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "ফেস 11 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "উইন্ডো সহ ফেস 11 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "ফেস 12 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "উইন্ডো সহ ফেস 12 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "উইন্ডো সহ ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "ফেস 3 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "উইন্ডো সহ ফেস 3 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "ফেস 4 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "উইন্ডো সহ ফেস 4 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "ফেস 5 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "উইন্ডো সহ ফেস 5 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "ফেস 6 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "উইন্ডো সহ ফেস 6 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "ফেস 7 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "উইন্ডো সহ ফেস 7 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "ফেস 8 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "উইন্ডো সহ ফেস 8 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "ফেস 9 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "উইন্ডো সহ ফেস 9 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "ডেস্কটপ ঘনক ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "বাঁদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "বাঁদিকে ঘোরানো এবং সক্রিয় উইন্ডো নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "ডানদিকে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "ডানদিকে ঘোরানো এবং সক্রিয় উইন্ডো নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "ফেস 1 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "উইন্ডো সহ ফেস 1 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "ফেস 1 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "ফেস 1 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "ফেস 10 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "ফেস 10 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "ফেস 11 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "ফেস 11 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "ফেস 12 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "ফেস 12 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "ফেস 2 এ ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "ফেস 2 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "ফেস 3 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "ফেস 3 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "ফেস 4 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "ফেস 4 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "ফেস 5 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "ফেস 5 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "ফেস 6 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "ফেস 6 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "ফেস 7 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "ফেস 7 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "ফেস 8 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "ফেস 8 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "ফেস 9 তে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "ফেস 9 এ ঘোরান তারসঙ্গে সক্রিয় উইন্ডোটি নিয়ে আসুন"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "ভিউপোর্টে ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "উইন্ডো ঘোরানো"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "উইন্ডো দিয়ে ঘোরানো"
+
+# নির্বাচন
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "নির্বাচন "
+
+# label text
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "সময়"
+
+# label text
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "সময়"
+
+# label text
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "সময়"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "নির্দেশকের চলাচলের সংবেদনশীলতা "
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ওপরের ফেসে ঘনক ঘোরানোকে স্ন্যাপ করা "
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ওপরের ফেসে ঘনক ঘোরানোকে স্ন্যাপ করা "
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ওপরের ফেসে স্ন্যাপ করুন"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ওপরের ফেসে স্ন্যাপ করুন"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "ফ্লিপিং ভিউপোর্টের আগে সময়অতিক্রান্ত হয়েছে"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "জুম"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "অস্বচ্ছতার শতকরা পরিমাণ"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "বড়"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "ডেস্কটপ প্রদর্শন করার জন্য ডেস্কটপে ক্লিক করুন"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "পটভূমি গাঢ় করা"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "উইন্ডো স্কেল করার সময় পটভূমি গাঢ় করা"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "প্রতীক"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"স্কেল করার সময় ডেস্কটপে যখন ক্লিক করা হবে তখন ডেস্কটপ প্রণালী প্রদর্শন প্রবেশ করান "
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "ঘুরে বেড়ানোর সময়"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "ভারত"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "সব উইন্ডোর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "সব উইন্ডো শ্রেণীর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "বর্তমান আউটপুটের উইন্ডোর জন্য উইন্ডো পিকার আরম্ভ করা"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "সব উইন্ডোগুলির বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "উইন্ডো শ্রেণীর বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "উইন্ডোগুলির বিন্যাস করছে এবং রূপান্তরিত করছে"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "বর্তমান আউটপুটের উইন্ডোগুলির বিন্যাস করা এবং তার রূপান্তর শুরু করা"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "সব আউটপুট ডিভাইসে"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "বর্তমান আউটপুট ডিভাইসে"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "ওভারলে চিত্রসংকেত"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "উইন্ডোগুলিকে স্কেল করার পর সেগুলির ওপর চিত্রসংকেত স্থাপন করুন"
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "স্ক্যানার"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"যদি একাধিক আউটপুট ডিভাইস ব্যবহার করা হয় তাহলে উইন্ডোগুলি কোথায় স্কেল করা হবে তা "
+"নির্বাচন করে"
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "স্পেন"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "উইন্ডোর ওপর ঘুরে বেড়ানোর সময় স্কেল প্রণালী বন্ধ করার পূর্ববর্তী সময় (মিনিটে)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "স্কেল প্রণালীতে উইন্ডোগুলি স্কেল করা"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "এই অনুপ্রয়োগে স্ক্রিনশটগুলি স্বয়ংক্রিয়ভাবে খুলে যায়"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "ডিরেক্টরী"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "ভারত"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "স্থাপনকার্যের অনুপ্রয়োগ"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "এই ডিরেক্টরীর স্ক্রিনশট চিত্রগুলি স্থাপন করা"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg "
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg চিত্র লোডার"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "উজ্জ্বলতার শতকরা পরিমাণ"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "সম্পৃক্তির শতকরা পরিমাণ"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "অনুপ্রয়োগ পরিবর্তনকারী"
+
+# স্বয়ংক্রীয়
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "স্বয়ংক্রীয় আপডেট"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "বুটের সময়"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "নির্বাচিত উইন্ডোটিকে সামনে নিয়ে আসা"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "উইন্ডো পরিবর্তন করার সময় দূরের ডেস্কটপটির জুম আউট করা হবে"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "চিত্রসংকেত"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "ছোট করা হয়েছে"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ডেস্কটপ তল"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "পরবর্তী উইন্ডো"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "পরবর্তী উইন্ডো (সব উইন্ডোগুলি)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "পরবর্তী উইন্ডো (কোন পপআপ নেই)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "পপআপ পরিবর্তনকারী দেখা না গেলে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"পপআপ পরিবর্তনকারী দেখা না গেলে সব উইন্ডোগুলির মধ্যে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "পপআপ পরিবর্তনকারী দেখা না গেলে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"পপআপ পরিবর্তনকারী দেখা না গেলে সব উইন্ডোগুলির মধ্যে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "পূর্ববর্তী স্লাইড"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "পূর্ববর্তী উইন্ডো "
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "পূর্ববর্তী উইন্ডো (সব উইন্ডোগুলি)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "পূর্ববর্তী উইন্ডো (কোন পপআপ নেই)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "পরিবর্তন করার সময় নির্বাচিত উইন্ডোটি ঘোরান"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পরবর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "পপআপ উইন্ডো না দেখিয়ে পূর্ববর্তী উইন্ডো নির্বাচন করুন"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "থাম্বনেলের পরবর্তী চিত্রসংকেত প্রদর্শন করা"
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "স্হানীয় সময়"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "সুইচারে যে উইন্ডোগুলি প্রদর্শন করা হবে"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 কালারস্পেস সমর্থন প্রদান করা"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "ভিডিও প্লেব্যাক"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "ভিডিও প্লেব্যাক"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 কালারস্পেস"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "লাইন যুক্ত করা"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "বিন্দু যুক্ত করা"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "বিভিন্ন ডেস্কটপ কার্যাবলীতে জলের প্রভাব প্রয়োগ করা"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "প্রত্যেক বৃষ্টির ফোঁটার মধ্যে ব্যবধান (মিনিটে)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "পয়েন্টার জলের প্রভাব সমর্থ করা"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "লাইন"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "অফসেট স্কেল"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "বিন্দু"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "বৃষ্টির বিলম্ব"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "শীর্ষ তরঙ্গ"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "টোকেন রিং"
+
+# why not "token ring"?
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "টোকেন রিং"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "জলের প্রভাব"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "জলের অফসেট স্কেল"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "উইন্ডো শীর্ষ থেকে জলের প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "ফোকাসের প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "ফোকাস উইন্ডো প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "ফোকাস উইন্ডো "
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "পার্টিশন"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+# দ্বন্দ্ব
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "উল্টো উইন্ডো স্ন্যাপিং"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "উইন্ডোটিকে কাঁপানো"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "ম্যাপ প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "ম্যাপ উইন্ডো প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "সর্বোচ্চ প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "সর্বনিম্ন গ্রিড আকার"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "সর্বনিম্ন শীর্ষ গ্রিডের আকার"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "কম্পন"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "স্ন্যাপ উল্টানো"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "বিস্তারিত দেখাও (&d)"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "পার্টিশন"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "ধাপে ধাপে আগানো"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "ধাপে ধাপে আগানো"
+
+# why not "token ring"?
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "টোকেন রিং"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "টলমল উইন্ডো প্রভাবের ক্ষেত্রে স্প্রিং ব্যবহার করুন"
+
+# দ্বন্দ্ব
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "ফোকাস করার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "ধরার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "ম্যাপ করার সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "সরানোর সময় যে উইন্ডোগুলি টলমল করবে"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "উইন্ডোগুলি সর্বাধিক করা বা না করার সময় টলমল করার প্রভাব"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "টলমলে উইন্ডো"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "ফিল্টার:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "জুম ইন করার সময় রৈখিক ফিল্টার ব্যবহার করুন"
+
+# label text
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "সময়"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "জুম ইন"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "জুম আউট"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "জুম প্যান"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "সময়"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ডেস্কটপ ঘনক জুম করা এবং প্যান করা"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "জুম ফ্যাক্টর"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "বাদ দেয়া হয়েছে\n"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "কমান্ড লাইন পার্স করতে সমস্যা।"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "উইন্ডোর অস্বচ্ছতা হ্রাস করুন"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "উইন্ডোর অস্বচ্ছতা বৃদ্ধি করুন"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "উইন্ডোর যে অস্বচ্ছতাকে প্রথাস্বরূপভাবে অর্ধস্বচ্ছ করা হবে"
+
+#~ msgid "Opacity windows"
+#~ msgstr "অস্বচ্ছতা উইন্ডো"
+
+#~ msgid "Background Images"
+#~ msgstr "পটভূমির চিত্রগুলি"
+
+#~ msgid "Background images"
+#~ msgstr "পটভূমির চিত্রগুলি"
+
+# why not "token ring"?
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "টোকেন রিং"
+
+#~ msgid "Plane Down"
+#~ msgstr "নিচের তল"
+
+#~ msgid "Plane Left"
+#~ msgstr "বাঁদিকের তল"
+
+#~ msgid "Plane Right"
+#~ msgstr "ডানদিকের তল"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "তল থেকে ফেস 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "তল থেকে ফেস 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "তল থেকে ফেস 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "তল থেকে ফেস 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "তল থেকে ফেস 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "তল থেকে ফেস 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "তল থেকে ফেস 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "তল থেকে ফেস 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "তল থেকে ফেস 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "তল থেকে ফেস 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "তল থেকে ফেস 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "তল থেকে ফেস 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "ওপরের তল"
+
+#~ msgid "Plane down"
+#~ msgstr "নিচের তল"
+
+#~ msgid "Plane left"
+#~ msgstr "বাঁদিকের তল"
+
+#~ msgid "Plane right"
+#~ msgstr "ডানদিকের তল"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "তল থেকে ফেস 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "তল থেকে ফেস 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "তল থেকে ফেস 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "তল থেকে ফেস 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "তল থেকে ফেস 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "তল থেকে ফেস 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "তল থেকে ফেস 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "তল থেকে ফেস 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "তল থেকে ফেস 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "তল থেকে ফেস 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "তল থেকে ফেস 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "তল থেকে ফেস 9"
+
+#~ msgid "Plane up"
+#~ msgstr "ওপরের তল"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "ডেস্কটপের উইন্ডো অস্বচ্ছতা মলিন হওয়ার সময়."
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "পার্টিশন"
+
+# label for an unknown installed system
+# try to use simple words
+#~ msgid "Unknown"
+#~ msgstr "অজানা"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "অবস্থা সম্পর্কিত তথ্য (&t)"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "বিস্তারিত দেখাও (&d)"
+
+# নির্বাচন
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "নির্বাচন "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "রাশিয়ান"
+
+# নির্বাচন
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "নির্বাচন "
+
+# label text
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "স্হানীয় সময়"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "স্হানীয় সময়"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "পার্টিশন"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ধাপে ধাপে আগানো"
+
+# দ্বন্দ্ব
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "দ্বন্দ্ব মীমাংসা:"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "বাদ দেয়া হয়েছে\n"
+
+# label text
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "সময়"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "কমান্ড '%1'"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "ফ্লপি ডিস্ক"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "প্রিন্টার"
diff --git a/po/bs.po b/po/bs.po
new file mode 100644
index 0000000..cf28707
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,3285 @@
+# Bosnian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2001 SuSE GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Damir Bjelobradic <Nagual@lugbih.org>, 2001.
+# Amila Akagic <bono@lugbih.org>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2002-07-23 18:27+0200\n"
+"Last-Translator: Damir Bjelobradic <Nagual@lugbih.org>\n"
+"Language-Team: Bosnian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Desktop postavke"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Windhoek"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nijedan"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Vrijednost"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Windhoek"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Windhoek"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "&Postavi filter"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filter: %1"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "&Postavi filter"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Sajgon"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Sajgon"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "&Postavi filter"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Sajgon"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Ruski"
+
+# RU
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Ruska Federacija"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Ruski"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Ruska Federacija"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Indija"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "&Podrazumjevani"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Podrazumjevani datum &isteka"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Desktop postavke"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Logging"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+# SH
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Saint Helena"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "Ponovi &mjeru"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Desktop postavke"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Konfiguracije"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "&Postavi filter"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "&Postavi filter"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "&Postavi filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D ubrzanje:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Indija"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Desktop postavke"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D ubrzanje:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "&Testiraj"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Windhoek"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Bez opisa"
+
+# RU
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "Ruska Federacija"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Mountain"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Mountain"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Windhoek"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Windhoek"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Sajgon"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Sajgon"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Sajgon"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Sajgon"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+# RU
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Ruska Federacija"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "Ruska Federacija"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Ruska Federacija"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Indija"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Desktop postavke"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Desktop postavke"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Desktop postavke"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D ubrzanje:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Pono&vo pokreni detekciju"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Indija"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Vrijednost"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Windhoek"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Windhoek"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Španija"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Indija"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Indija"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Opis"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Desktop postavke"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+# SH
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Saint Helena"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Opis"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Rezolucije:"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Opis"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Španija"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Španija"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Rezolucije:"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windhoek"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filter: %1"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Desktop postavke"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Desktop postavke"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Opis"
+
+#~ msgid "Unknown"
+#~ msgstr "Nepoznato"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Sajgon"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D ubrzanje:"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+# RU
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Ruska Federacija"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Ruski"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D ubrzanje:"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "lokalno vrijeme"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "lokalno vrijeme"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Opis"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Španija"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Postavi filter"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rezolucije:"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Štampači"
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..465f8e3
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,4159 @@
+# Catalan message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2000, 2001 SuSE GmbH.
+# Jaume Badiella <myotis@drac.com>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-07-19 14:27+0200\n"
+"Last-Translator: Josep Puigdemont <josep.puigdemont@gmail.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Escriptori"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Menú de la finestra"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Cap"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Canvia la mida"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Minimitzades"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximitza la finestra horitzontalment"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximitza la finestra verticalment"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimitzades"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Elevació automàtica"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menú de la finestra"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Acció a prendre al desplaçar-se la roda del ratolí sobre la barra de títol "
+"d'una finestra."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Velocitat de plegament"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Redueix l'opacitat de la finestra"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Maximitza la finestra activa horitzontalment"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Tema opacitat"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Tema opacitat ombra"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Opacitat d'utilitzar finestres actives amb el Metacity tema per decoracions"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacitat d´utilitzar per Metacity tema per decoracions"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Finestres actives amb ombra i amb el tema Metacity per decoracions desde "
+"opac al translucíd"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Finestra amb ombra amb el tema Metacity per decoracions desde opac fins a "
+"translucíd"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Titol de la barra d´acció de la roda del ratolí"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipus de blur utilizat en decoracions de finestres"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Utilitzar el tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Utilitzar el tema Metacity quan dibuixes decoracions de finestres"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Tanca la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Desmaximitza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximitza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimitza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Fer a sobre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Pal"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "No canvia la mida"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "No fer a sobre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "No pals"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "La finestra «%s» no està responent."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Si forceu la sortida d'aquesta aplicació perdreu els canvis que encara no "
+"hagueu desat."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Força'n la sortida"
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Inicia"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Color del cub"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Anotar color de accident"
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Connectors actius"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Borra"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Dibuixa"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Dibuixar utilitzant una eina"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Color del club per anotacions"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Inicia"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Inicia borrament"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Linia d´ample"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Linia d´ample per anotacions"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Color d´accident per anotacions"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ample d´accident"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ample d´accident per anotacions"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filtre lineal"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Filtre de textura"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Saturació"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Saturació"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Velocitat de plegament"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Situa les finestres"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Canviar parts translucíd de la finestra"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Saturació"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/blur.xml.in.h:12
+#, fuzzy
+msgid "Blur windows that doesn't have focus"
+msgstr "Tipus de finestres que hauran de tremolar quan rebin el focus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Desactiva la mida de les regions de pantalla fetes per altres finestres."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Filtra un metód utilitzat per mida"
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Mida del focus"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Mida del focus en finestra"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mimal nivel-de-detalls"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulsa"
+
+#: ../metadata/blur.xml.in.h:27
+#, fuzzy
+msgid "Pulse effect"
+msgstr " Pulsa l'efecte"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Utilitza la disponible unitat de textura per fer lo posible independients "
+"textures fetches."
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Velocitat d'esvaïment de la finestra"
+
+#: ../metadata/blur.xml.in.h:30
+#, fuzzy
+msgid "Windows that should be affected by focus blur"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/blur.xml.in.h:31
+#, fuzzy
+msgid "Windows that should be use alpha blur by default"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Sortides"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Fes una captura de pantalla"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:13
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:14
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:15
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:16
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:17
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:18
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:19
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:20
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:21
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:22
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:23
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:24
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+"identificada amb l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Línia d'ordres %d"
+
+#: ../metadata/commands.xml.in.h:51
+#, fuzzy
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:52
+#, fuzzy
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:53
+#, fuzzy
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:54
+#, fuzzy
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:55
+#, fuzzy
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:56
+#, fuzzy
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:57
+#, fuzzy
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:58
+#, fuzzy
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:59
+#, fuzzy
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:60
+#, fuzzy
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:61
+#, fuzzy
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:62
+#, fuzzy
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Línia d'ordres que s'executarà a l'intèrpret d'ordres en invocar run_command%"
+"d"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Ordre"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Executa l'ordre %d"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Connectors actius"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permet que la representació de finestres a pantalla completa no es "
+"redirigeixi cap a mapes de píxels fora de la pantalla"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Avís sonor"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Avís sonor del sistema"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Elevació automàtica"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Retard de l'elevació automàtica"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detecció automàtica dels dispositius de sortida"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detecció automàtica de la freqüència d'actualització"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Millor"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Feu clic per a passar el focus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "En fer clic a la finestra, aquesta rep el focus d'entrada"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Tanca la finestra activa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Icona per defecte"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Imatge d'icona de finestra per defecte"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Cub de l'escriptori"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detecta les sortides"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detecta la freqüència d'actualització"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Ràpid"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Tipus de finestres de focus"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "Tipus de finestres de focus"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Tipus de finestres de focus"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bo"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Oculta les finestres ignorades de la barra de tasques"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Oculta totes les finestres i passa el focus a l'escriptori"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Oculta les finestres que no es troben a la barra de tasques en accedir al "
+"mode d'escriptori de visualització"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Mida virtual horitzontal"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignora els suggeriments quan està maximitzada"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignora els suggeriments d'increment de mida i aspecte quan la finestra es "
+"troba maximitzada"
+
+#: ../metadata/core.xml.in.in.h:39
+#, fuzzy
+msgid "Interval before raising selected windows"
+msgstr ""
+"Interval que ha de transcórrer abans d'elevar les finestres seleccionades"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Il·luminació"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Llista dels connectors actius actualment"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Llista de cadenes que descriuen els dispositius de sortida"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Abaixa la finestra"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Abaixa la finestra per sota de les altres"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximitza la finestra horitzontalment"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximitza la finestra verticalment"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximitza la finestra activa"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximitza la finestra activa horitzontalment"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximitza la finestra activa verticalment"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimitza la finestra activa"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Nombre d'escriptoris"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Nombre d'escriptoris virtuals"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Només actualitza la pantalla durant els períodes d'enfosquiment vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Sortides"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+# SH
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Retard de pluja"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Eleva en fer clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Eleva la finestra"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Eleva les finestres seleccionades un cop transcorregut l'interval"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Eleva la finestra per damunt de les altres"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Eleva les finestres en fer clic"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Freqüència d'actualització"
+
+#: ../metadata/core.xml.in.in.h:74
+#, fuzzy
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+"Multiplicador de la mida de la pantalla per a la mida virtual horitzontal"
+
+#: ../metadata/core.xml.in.in.h:75
+#, fuzzy
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicador de la mida de la pantalla per a la mida virtual vertical"
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Fes zoom a l'escriptori"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animacions lentes"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronitza amb enfosquiment vertical"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Filtre de textura"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtre de textura"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Filtre de textura"
+
+#: ../metadata/core.xml.in.in.h:83
+#, fuzzy
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+"Freqüència amb la qual es torna a representar la pantalla (vegades/segon)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Commuta la finestra maximitzada"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Commuta la finestra maximitzada horitzontalment"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Commuta la finestra maximitzada verticalment"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Commuta la finestra ombrejada"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Commuta la finestra activa maximitzada"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Commuta la finestra activa maximitzada horitzontalment"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Commuta la finestra activa maximitzada verticalment"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Commuta la finestra activa ombrejada"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Commuta l'ús d'animacions lentes"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Desmaximitza la finestra activa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "No redirigeixis les finestres a pantalla completa"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Utilitza llum de difusió en transformar la pantalla"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Mida virtual vertical"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Acceleració"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avança cap a la diapositiva següent"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Cúpula animada"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Representació animada de la cúpula en girar el cub"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Elevació automàtica"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Color de les cares superior i inferior del cub"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Color que s'utilitzarà com a color inferior del degradat alternatiu de la "
+"cúpula"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Color que s'utilitzarà com color superior del degradat alternatiu de la "
+"cúpula"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Color del cub"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Color del cub"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cub de l'escriptori"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Acceleració de plegament"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocitat de plegament"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Etapa de plegament"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"Genera mipmaps sempre que sigui possible per a un canvi de mida de millor "
+"qualitat"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Torna a la diapositiva anterior"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Fitxers d'imatge"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imatge que s'utilitzarà com a textura per a la cúpula"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Interior del cub"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Interior del cub"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Llista de fitxers PNG i SVG que s'hauran de representar a la cara superior "
+"del cub"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Diapositiva següent"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Interior del cub"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Situa les finestres al cub"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Diapositiva anterior"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Renderitza la cúpula"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Canvia la mida de la imatge"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Canvia la mida de les imatges per a cobrir la cara superior del cub"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Cúpula"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Color final del degradat de la cúpula"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Color inicial del degradat de la cúpula"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imatge de la cúpula"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocitat"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Etapa"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Desplega"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Desplega el cub"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Ordre"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Línia d'ordres del decorador que s'executa si no s'està executant cap "
+"decorador"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Desplaçament en X de l'ombra descendent"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Desplaçament en Y de l'ombra descendent"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Radi de l'ombra descendent"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacitat de l'ombra descendent"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Radi de l'ombra descendent"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "Ajusta les finestres"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Desplaçament en X de l'ombra"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Desplaçament en Y de l'ombra"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacitat de l'ombra"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Radi de l'ombra"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Ajusta les finestres"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decoració de la finestra"
+
+# RU
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decoracions de finestres"
+
+#: ../metadata/decoration.xml.in.h:19
+#, fuzzy
+msgid "Windows that should be decorated"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/decoration.xml.in.h:20
+#, fuzzy
+msgid "Windows that should have a shadow"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Velocitat del gir"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Restringeix Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Temps d'inversió"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocitat d'esvaïment"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Temps d'inversió"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efecte d'esvaïment amb avís sonor del sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Es fan aparèixer progressivament les finestres quan s'assignen i s'esvaeixen "
+"quan no estan assignades"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Esvaïment de finestres"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Campana visual a pantalla completa"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Efecte d'esvaïment a pantalla completa amb avís sonor del sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Campana visual"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Velocitat d'esvaïment de la finestra"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Tipus de finestres que s'hauran de canviar de mida en el mode d'escala"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be fading"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Punt"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Afegeix un punt"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Diàleg d'execució"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Línia d'ordres de captura de pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Línia d'ordres de captura de pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Mostra el menú principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Mostra el diàleg d'execució de l'aplicació"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Mostra el menú principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Fes una captura de pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Fes una captura de pantalla d'una finestra"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Línia d'ordres de captura de pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Línia d'ordres de captura de pantalla de finestra"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "No modifiquis"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "No modifiquis"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimitza l'efecte"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Minimitza la finestra"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimitza la velocitat"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimitza l'etapa"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistència a l'ombra"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistència a l'ombra"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transforma les finestres quan es minimitzen i es maximitzen"
+
+#: ../metadata/minimize.xml.in.h:10
+#, fuzzy
+msgid "Windows that should be transformed when minimized"
+msgstr "Tipus de finestres que s'hauran de transformar en minimitzar-se"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Restringeix Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Restringeix la coordenada Y a l'àrea de l'espai de treball"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Inicia el moviment de la finestra"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mou la finestra"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Mou la finestra"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacitat"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nivell d'opacitat de les finestres en moviment"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Separa i desmaximitza les finestres maximitzades en arrossegar"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Separa les finestres maximitzades"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Comença el moviment de la finestra"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Brillantor"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Brillantor"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Brillantor"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Brillantor"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Redueix l'opacitat"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Augmenta l'opacitat"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Etapa de canvi d'opacitat"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Etapa de canvi d'opacitat"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Etapa d'opacitat"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nivell d'opacitat de les finestres en moviment"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturació"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturació"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturació"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturació"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+# RU
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decoracions de finestres"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Tipus de finestres"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Assigna tipus de finestres"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Menú de la finestra"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Tipus de finestres de focus"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Mida virtual horitzontal"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Situa les finestres"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Situa les finestres en les posicions adequades quan s'assignin"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Mida virtual horitzontal"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Solucions alternatives de disposició de finestres"
+
+#: ../metadata/place.xml.in.h:25
+#, fuzzy
+msgid "Windows that should be positioned by default"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/place.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Tipus de finestres que s'hauran de canviar de mida en el mode d'escala"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Decoracions de finestres"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Solucions alternatives"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Mida virtual horitzontal"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Mida virtual horitzontal"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+#, fuzzy
+msgid "Regex Matching"
+msgstr "Commuta l'ajustament de finestres"
+
+#: ../metadata/regex.xml.in.h:2
+#, fuzzy
+msgid "Regex window matching"
+msgstr "Commuta l'ajustament de finestres"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Color del cub"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Color del cub"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Inicia el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Color del cub"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Comença el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Comença el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Comença el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Comença el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Comença el canvi de mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Canvia la mida de la finestra"
+
+#: ../metadata/resize.xml.in.h:28
+#, fuzzy
+msgid "Windows that normal resize should be used for"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/resize.xml.in.h:29
+#, fuzzy
+msgid "Windows that outline resize should be used for"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/resize.xml.in.h:30
+#, fuzzy
+msgid "Windows that rectangle resize should be used for"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/resize.xml.in.h:31
+#, fuzzy
+msgid "Windows that stretch resize should be used for"
+msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD d'inversió de vora"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Moviment d'inversió de vora"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Punter d'inversió de vora"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Temps d'inversió"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Inverteix cap a l'àrea de visualització esquerra i deforma el punter"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Inverteix cap a la propera àrea de visualització en arrossegar l'objecte cap "
+"a la vora de la pantalla"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Inverteix cap a la propera àrea de visualització en moure el punter cap a la "
+"vora de la pantalla"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Inverteix cap a la propera àrea de visualització en moure la finestra cap a "
+"la vora de la pantalla"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Inverteix cap a l'àrea de visualització dreta i deforma el punter"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverteix l'eix Y per al moviment del punter"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Punter inverteix Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilitat del punter"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+#, fuzzy
+msgid "Raise window when rotating"
+msgstr "Eleva les finestres en fer clic"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Gira el cub"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Gira i inverteix cap a l'esquerra"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Gira i inverteix cap a la dreta"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Gira cap a l'esquerra"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Gira cap a l'esquerra amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Gira cap a la dreta"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Gira cap a la dreta amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Gira cap a"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Gira el cub"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Gira el cub de l'escriptori"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Gira cap a l'esquerra"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Gira cap a l'esquerra i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Gira cap a la dreta"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Gira cap a la dreta i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Gira cap a la cara %d amb la finestra"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Gira cap a la cara %d"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Gira cap a l'àrea de visualització"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Gira la finestra"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Gira amb la finestra"
+
+# RU
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Acceleració de gir"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocitat del gir"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Etapa del gir"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Velocitat del gir"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilitat del moviment del punter"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Desplaça el gir del cub a la cara superior"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Desplaça el gir del cub a la cara superior"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "Desplaça a la cara superior"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Desplaça a la cara superior"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Inicia el gir"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Temps d'espera abans d'invertir l'àrea de visualització"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Quantitat d'opacitat en percentatge"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Gran"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Enfosqueix el fons"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Enfosqueix el fons en canviar la mida de les finestres"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Distintiu"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Temps de passar per sobre"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Inicia el seleccionador de finestres"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Inicia el seleccionador per a totes les finestres"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Inicia el seleccionador per a un grup de finestres"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Inicia el seleccionador per a les finestres de la sortida actual"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Dissenya i inicia la transformació de totes les finestres"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Dissenya i inicia la transformació del grup de finestres"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Dissenya i inicia la transformació de les finestres"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+"Dissenya i inicia la transformació de les finestres de la sortida actual"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Superposa la icona"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Superposa una icona a les finestres un cop se n'ha canviat la mida"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Canvia la mida"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Canvia la velocitat"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Canvia la mida de l'etapa"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espai entre finestres"
+
+# ES
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espaiat"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Temps (en ms) abans de finalitzar el mode d'escala en passar el punter per "
+"sobre una finestra"
+
+#: ../metadata/scale.xml.in.h:42
+#, fuzzy
+msgid "Windows that should be scaled in scale mode"
+msgstr "Tipus de finestres que s'hauran de canviar de mida en el mode d'escala"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Fes una captura de pantalla"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Mostra el diàleg d'execució de l'aplicació"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Fes una captura de pantalla"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Línia d'ordres de captura de pantalla"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Quantitat de brillantor en percentatge"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Quantitat de saturació en percentatge"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Canviador d'aplicacions"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Elevació automàtica"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Porta endavant"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Porta la finestra seleccionada endavant"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Distància a la qual s'haurà d'allunyar el zoom de l'escriptori mentre es "
+"canvia de finestra"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimitzades"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Cub de l'escriptori"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Finestra següent"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Finestra següent"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Finestra següent"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Fa sortir el canviador si no està visible i selecciona la finestra següent"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Fes sortir el canviador si no està visible i selecciona la següent de totes "
+"les finestres"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Fes sortir el canviador si no està visible i selecciona la finestra anterior"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Fes sortir el canviador si no està visible i selecciona l'anterior de totes "
+"les finestres"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Diapositiva anterior"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Finestra anterior"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Finestra anterior"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Finestra anterior"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Selecciona la finestra següent"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Selecciona la finestra anterior"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Mostra la icona al costat de la miniatura"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Mostra les finestres minimitzades"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocitat del canviador"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Etapa del canviador"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Canvia la mida de les finestres"
+
+#: ../metadata/switcher.xml.in.h:41
+#, fuzzy
+msgid "Windows that should be shown in switcher"
+msgstr "Tipus de finestres que s'hauran de mostrar al canviador"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Afegeix una línia"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Afegeix un punt"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Afegeix efectes d'aigua a diferents accions de l'escriptori"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Retard (en ms) entre cada gota de pluja"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Habilita els efectes d'aigua del punter"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Línia"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Escala de desplaçament"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punt"
+
+# SH
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Retard de pluja"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Títol en onada"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Commuta la pluja"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Commuta l'efecte de pluja"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Commuta l'eixugaparabrises"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Commuta l'efecte de l'eixugaparabrises"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efecte d'aigua"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Escala de desplaçament d'aigua"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efecte d'onada del títol de la finestra"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Passa el focus a l'efecte"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Passa el focus a l'efecte de finestra"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Tipus de finestres de focus"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Fricció"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Tipus de finestres de captura"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Resolució de la graella"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Ajustament de finestres invertit"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Fes estremir la finestra"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Assigna l'efecte"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Assigna l'efecte de la finestra"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Assigna tipus de finestres"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efecte de maximitzar"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Mida mínima de la graella"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Mida mínima de la graella del vèrtex"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Mou la finestra"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Estremeix"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Ajustament invertit"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Ajusta les finestres"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fricció d'elasticitat"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Constant elàstica"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constant elàstica"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Commuta l'ajustament de finestres"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Utilitza el model d'elàstic per a l'efecte de finestra tremolosa"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Resolució de la graella del vèrtex"
+
+#: ../metadata/wobbly.xml.in.h:26
+#, fuzzy
+msgid "Windows that should wobble when focused"
+msgstr "Tipus de finestres que hauran de tremolar quan rebin el focus"
+
+#: ../metadata/wobbly.xml.in.h:27
+#, fuzzy
+msgid "Windows that should wobble when grabbed"
+msgstr "Tipus de finestres que hauran de tremolar quan s'agafin"
+
+#: ../metadata/wobbly.xml.in.h:28
+#, fuzzy
+msgid "Windows that should wobble when mapped"
+msgstr "Tipus de finestres que hauran de tremolar quan s'assignin"
+
+#: ../metadata/wobbly.xml.in.h:29
+#, fuzzy
+msgid "Windows that should wobble when moved"
+msgstr "Tipus de finestres que hauran de tremolar quan es moguin"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efecte de tremolor en maximitzar i desmaximitzar finestres"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Finestres tremoloses"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtre lineal"
+
+#: ../metadata/zoom.xml.in.h:5
+#, fuzzy
+msgid "Use linear filter when zoomed in"
+msgstr "Utilitza el filtre lineal en ampliar el zoom"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Fes zoom a l'escriptori"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Amplia el zoom"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Allunya el zoom"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Amplia el zoom"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocitat del zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Etapa del zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Fes zoom i gira el cub de l'escriptori"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Factor del zoom"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Amplia el zoom"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Línia d'ordres %d"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Executa l'ordre %d"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Línia d'ordres de captura de pantalla"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Línia d'ordres de captura de pantalla"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Redueix l'opacitat de la finestra"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Augmenta l'opacitat de la finestra"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "Espai entre finestres"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Situa les finestres al cub"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Situa les finestres"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Gira cap a l'esquerra"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Gira cap a la dreta"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Situa les finestres"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Situa les finestres"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Gira cap a l'esquerra"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Gira cap a la dreta"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Situa les finestres"
+
+#~ msgid "Open window menu"
+#~ msgstr "Obre el menú de la finestra"
+
+#~ msgid "Dock"
+#~ msgstr "Acoblament"
+
+#~ msgid "Toolbar"
+#~ msgstr "Barra d'eines"
+
+#~ msgid "Menu"
+#~ msgstr "Menú"
+
+#~ msgid "Utility"
+#~ msgstr "Utilitat"
+
+#~ msgid "Splash"
+#~ msgstr "Pantalla de presentació"
+
+#~ msgid "Dialog"
+#~ msgstr "Diàleg"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Menú desplegable"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Menú emergent"
+
+#~ msgid "Tooltip"
+#~ msgstr "Indicador de funció"
+
+#~ msgid "Notification"
+#~ msgstr "Notificació"
+
+#~ msgid "Combo"
+#~ msgstr "Quadre combinat"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Diàleg de mode"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Pantalla completa"
+
+#~ msgid "Unknown"
+#~ msgstr "Desconeguda"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Assignació de tecles que, en invocar-se, executa l'ordre de l'intèrpret "
+#~ "identificada amb l'ordre %d"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Quantitat de brillantor en percentatge"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Quantitat d'opacitat en percentatge"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Quantitat de saturació en percentatge"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Saturació"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Retard (en ms) entre cada gota de pluja"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr ""
+#~ "Distància a la qual s'haurà d'allunyar el zoom de l'escriptori mentre es "
+#~ "canvia de finestra"
+
+#~ msgid "Do not modify"
+#~ msgstr "No modifiquis"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Desplaçament en X de l'ombra descendent"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Desplaçament en Y de l'ombra descendent"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Opacitat de l'ombra descendent"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Radi de l'ombra descendent"
+
+#, fuzzy
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Passa el focus a l'efecte de finestra"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Selecciona la finestra anterior"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Acceleració de plegament"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Velocitat de plegament"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Etapa de plegament"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr ""
+#~ "Interval que ha de transcórrer abans d'elevar les finestres seleccionades"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Dissenya i inicia la transformació de les finestres de la sortida actual"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Assigna l'efecte de la finestra"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Minimitza la velocitat"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Minimitza l'etapa"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Mida mínima de la graella del vèrtex"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Nombre d'escriptoris virtuals"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Etapa de canvi d'opacitat"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Nivell d'opacitat de les finestres en moviment"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Nivell d'opacitat de les finestres en moviment"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Superposa una icona a les finestres un cop se n'ha canviat la mida"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Connectors que ha de carregar prèviament"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Connectors que necessita"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Fes sortir el canviador si no està visible i selecciona la següent de "
+#~ "totes les finestres"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Fes sortir el canviador si no està visible i selecciona la següent de "
+#~ "totes les finestres"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Fes sortir el canviador si no està visible i selecciona l'anterior de "
+#~ "totes les finestres"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Fes sortir el canviador si no està visible i selecciona l'anterior de "
+#~ "totes les finestres"
+
+# RU
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Acceleració de gir"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Velocitat del gir"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Etapa del gir"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Canvia la velocitat"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Canvia la mida de l'etapa"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr ""
+#~ "Multiplicador de la mida de la pantalla per a la mida virtual horitzontal"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr ""
+#~ "Multiplicador de la mida de la pantalla per a la mida virtual vertical"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Sensibilitat del moviment del punter"
+
+#, fuzzy
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Resistència a l'ombra"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Espai entre finestres"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Fricció d'elasticitat"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Constant elàstica"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Velocitat del canviador"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Etapa del canviador"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Aplicació del filtre de textura"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr ""
+#~ "Freqüència amb la qual es torna a representar la pantalla (vegades/segon)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Temps (en ms) abans de finalitzar el mode d'escala en passar el punter "
+#~ "per sobre una finestra"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Temps d'espera abans d'invertir l'àrea de visualització"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Utilitza el filtre lineal en ampliar el zoom"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Resolució de la graella del vèrtex"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Escala de desplaçament d'aigua"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Velocitat d'esvaïment de la finestra"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Velocitat d'esvaïment de la finestra"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr ""
+#~ "Tipus de finestres que s'hauran de canviar de mida en el mode d'escala"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Tipus de finestres que s'hauran de mostrar al canviador"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Tipus de finestres que s'hauran de transformar en minimitzar-se"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Tipus de finestres que s'hauran d'esvair"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Tipus de finestres que hauran de tremolar quan rebin el focus"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Tipus de finestres que hauran de tremolar quan s'agafin"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Tipus de finestres que hauran de tremolar quan s'assignin"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Tipus de finestres que hauran de tremolar quan es moguin"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Velocitat del zoom"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Etapa del zoom"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Factor del zoom"
+
+#~ msgid "."
+#~ msgstr ","
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Gira cap a la cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Gira cap a la cara %d amb la finestra"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Gira cap a la cara %d"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Gira cap a la cara %d"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Gira cap a la cara %d amb la finestra"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Gira cap a la cara %d i s'emporta la finestra activa"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Tipus de finestres de moviment"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Disquetera"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Iniciant el dimoni."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminals"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..9362e89
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,4717 @@
+# translation of cs.po to
+# translation of compiz.po to
+# translation of cs.po to cs_CZ
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Jakub Friedl, 2006.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Klara Cihlarova <koty@seznam.cz>, 2006.
+# Jakub Friedl <jfriedl@suse.cz>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: cs\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-02-11 17:23+0100\n"
+"Last-Translator: Tomas Hejatko <hejda.cz@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Plocha"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Správce oken"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nic"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Měřítko"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximalizovat"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximalizovat okno horizontálně"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximalizovat okno vertikálně"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimalizované"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automaticky do popředí"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Nabídka okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Událost při rolování nad titulkem okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Typ rozmazání"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Průhlednost aktivního okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Průhlednost stínu aktivního okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Průhlednost tématu metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Průhlednost stínu tématu metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Průhlednost pro aktivní okna s tématem metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Průhlednost pro témata metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Událost při rolování nad titulkem okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Typ rozmazání použitého pro dekoraci oken"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Použít téma metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Použít téma metacity pro vykreslování dekorací oken"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Zavřít okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Zrušit maximalizaci okna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximalizovat okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimalizovat okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+# nebo něco jako vizuální doprovod, ukazovátko?
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anotace"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Barva anotace"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktivní moduly"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Vymazat"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Vykreslit"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Vykreslit použitím nástroje"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Iniciovat"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Iniciovat změnu velikosti okna"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Iniciovat změnu velikosti okna"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Iniciovat"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Šířka linky"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Šířka linky pro anotaci"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Lineární filtr"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Škálovat okna"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Škálovat okna"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Filtr textur"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Sytost"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Sytost"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Rychlost sbalení"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Rozmístit okna"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Sytost"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Škálovat okna"
+
+#: ../metadata/blur.xml.in.h:12
+#, fuzzy
+msgid "Blur windows that doesn't have focus"
+msgstr "Typy oken, která se mají rozhoupat při zaměření"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Škálovat okna"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Škálovat okna"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+#, fuzzy
+msgid "Pulse effect"
+msgstr "Efekt zaměření"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Rychlost blednutí okna"
+
+#: ../metadata/blur.xml.in.h:30
+#, fuzzy
+msgid "Windows that should be affected by focus blur"
+msgstr "Typy oken, která mohou blednout"
+
+#: ../metadata/blur.xml.in.h:31
+#, fuzzy
+msgid "Windows that should be use alpha blur by default"
+msgstr "Typy oken, která mohou blednout"
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Výstupy"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Pořídit snímek obrazovky"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové zkratky, které spustí příkaz určený command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové zkratky, které spustí příkaz určený command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové zkratky, které spustí příkaz určený command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové zkratky, které spustí příkaz určený command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové zkratky, které spustí příkaz určený command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové zkratky, které spustí příkaz určený command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové zkratky, které spustí příkaz určený command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové zkratky, které spustí příkaz určený command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové zkratky, které spustí příkaz určený command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové zkratky, které spustí příkaz určený command9"
+
+#: ../metadata/commands.xml.in.h:13
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové zkratky, které spustí příkaz určený command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové zkratky, které spustí příkaz určený command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové zkratky, které spustí příkaz určený command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové zkratky, které spustí příkaz určený command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové zkratky, které spustí příkaz určený command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové zkratky, které spustí příkaz určený command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové zkratky, které spustí příkaz určený command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové zkratky, které spustí příkaz určený command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové zkratky, které spustí příkaz určený command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové zkratky, které spustí příkaz určený command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové zkratky, které spustí příkaz určený command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové zkratky, které spustí příkaz určený command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové zkratky, které spustí příkaz určený command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové zkratky, které spustí příkaz určený command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové zkratky, které spustí příkaz určený command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové zkratky, které spustí příkaz určený command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové zkratky, které spustí příkaz určený command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové zkratky, které spustí příkaz určený command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové zkratky, které spustí příkaz určený command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové zkratky, které spustí příkaz určený command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Příkazová řádka 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Příkazová řádka 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Příkazová řádka 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Příkazová řádka 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Příkazová řádka 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Příkazový řádek 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Příkazová řádka 3"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Příkazová řádka 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Příkazová řádka 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Příkazová řádka 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Příkazová řádka 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Příkazová řádka 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Příkaz, který se vykoná, pokud je v shellu volán run_command9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Příkaz"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Spustit příkaz 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Spustit příkaz 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Spustit příkaz 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Spustit příkaz 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Spustit příkaz 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Spustit příkaz 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Spustit příkaz 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Spustit příkaz 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Spustit příkaz 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Spustit příkaz 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Spustit příkaz 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Spustit příkaz 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktivní moduly"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Povolit vykreslování celoobrazovkových oken bez přesměrování do "
+"mimoobrazovkových pixmap"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Akustický zvonek"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Slyšitelné systémové pípnutí"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automaticky do popředí"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Prodleva automatického přesunu do popředí"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatická detekce výstupních zařízení"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatická detekce obnovovací frekvence"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Nejlepší"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Kliknutí k zaměření"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Kliknutím na okno přesunout zaměření na okno"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Zavřít aktivní okno"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Výchozí ikona"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Výchozí ikona okna"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Kostka plochy"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detekovat výstupy"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Zjistit obnovovací frekvenci"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rychlé"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Typy okna pro efekt při zaměření"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "Typy okna pro efekt při zaměření"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Typy okna pro efekt při zaměření"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Hlavní nastavení"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Hlavní nastavení compizu"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Dobré"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Skrýt okna nepřítomná v liště úloh"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Skrýt všechna okna a zaměřit na plochu"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Skrýt okna nepřítomná v liště úloh při vstupu do režimu zobrazení plochy"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Vodorovná virtuální velikost"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Při maximalizaci ignorovat tipy"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Při maximalizaci ignorovat tipy k přírůstku velikosti a poměru"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Interval před přenesením vybraných oken do popředí"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Interval pro odeslání pingu"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Světlo"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Seznam právě aktivních modulů"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Seznam řetězců, které popisují výstupní zařízení"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Dát okno do pozadí"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Přesunout okno do pozadí"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximalizovat okno horizontálně"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximalizovat okno vertikálně"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximalizovat aktivní okno"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximalizovat aktivní okno horizontálně"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximalizovat aktivní okno vertikálně"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimalizovat aktivní okno"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Běžná"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Počet ploch"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Počet virtuálních ploch"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Provádět aktualizace obrazovky pouze během intervalu vertikálního zatemnění"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Výstupy"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Prodleva pingu"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Dát do popředí při kliknutí"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Přenést okno do popředí"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Dát vybraná okna do popředí po uplynutí intervalu"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Přesunout okno nad ostatní okna"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Dát okna do popředí při kliknutí"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Obnovovací frekvence"
+
+#: ../metadata/core.xml.in.in.h:74
+#, fuzzy
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Násobek vodorovné virtuální velikosti obrazovky"
+
+#: ../metadata/core.xml.in.in.h:75
+#, fuzzy
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Násobek svislé virtuální velikosti obrazovky"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Zobrazit plochu"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Pomalé animace"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "Chytrý"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synchronizovat při VBlank "
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Filtrování textur"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtr textur"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrování textur"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Rychlost překreslování obrazovky (počet/s)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Přepnout maximalizaci okna"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Přepnout okno maximalizované horizontálně"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Přepnout okno maximalizované vertikálně"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Přepnout stínování okna"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Přepnout maximalizaci aktivního okna"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Přepnout horizontální maximalizaci aktivního okna"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Přepnout vertikální maximalizaci aktivního okna"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Přepnout stínování aktivního okna"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Přepnout použití pomalých animací"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Zrušit maximalizaci aktivního okna"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Unredirect Fullscreen Windows"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Použít rozptýlené světlo při transformaci okna"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Svislá virtuální velikost"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Akcelerace"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Přizpůsobit obrázek"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Přizpůsobit vrchní obrázek rotaci"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Postoupit k dalšímu snímku"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animovat nebeskou báň"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animovat nebeskou báň při rotaci kostky"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Automaticky do popředí"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Barva vrchní a spodní strany kostky"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Barva, která se použije na dolní část gradientu nebeské báně."
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Barva, která se použije na horní část gradientu nebeské báně."
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Barva kostky"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Barva kostky"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Kostka plochy"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Zrychlení sbalení"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Rychlost sbalení"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Časový krok sbalení"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Jeli to možné, vytvářet pro kvalitní škálování mipmapy"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Jít zpět na předchozí snímek"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Obrázkové soubory"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Obrázek pro texturu nebeské báně"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Iniciovat průhlednost kostky pouze pokud je rotace řízena myší"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Uvnitř kostky"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "V kostce"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Seznam PNG a SVG souborů, které mají být vykresleny na vrchu kostky"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Další snímek"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "V kostce"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Krytí během rotace"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Krytí bez rotace"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Krytí (neprůhlednost) ploch kostky během rotace."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Krytí (neprůhlednost) ploch kostky."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Rozmístit okna na kostku"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Předchozí snímek"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Vykreslit nebeskou báň"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Škálovat obrázek"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Změnit velikost obrázků podle vrchu kostky"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Možnosti zobrazení kostky, pokud je použito víc výstupních zařízení."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Nebeská báň"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Konečná barva gradientu nebeské báně"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Počáteční barva gradientu nebeské báně"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Obrázek nebeské báně"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Rychlost"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Časový krok"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Průhlednot pouze při rotování za pomoci myši"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Rozbalit"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Rozbalit kostku"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Ovládací backend Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Příkaz"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekorovaná okna"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Příkazová řádka programu pro dekorace, která je spuštěna, pokud ještě není "
+"spuštěn žádný program pro dekorace"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Posun vrženého stínu X"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Posun vrženého stínu Y"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Barva vrženého stínu"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Krytí vrženého stínu"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Poloměr vrženého stínu"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Barva stínu"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Posun stínu X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Posun stínu Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Krytí stínu"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Poloměr stínu"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Stínované okna"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Dekorace oken"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Dekorace oken"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Typy oken, která mohou být dekorovány"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Typy oken, která mohou mít stín"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rychlost otáčení"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Omezení Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Normálně měněné okna"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Doba zprůhlednění"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Slábnout pří minimalizaci/otevření/zavření"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Rychlost blednutí"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Doba zprůhlednění"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efekt slábnutí okna pří událostech : Minimalizace/Otevření/Zavření"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efekt blednutí při systémovém pípnutí"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Blednutí mapovaných oken a materializace oken nemapovaných"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Blednutí"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Slábnutí oken"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Celoobrazovkový vizuální zvonek"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Celoobrazovkový efekt slábnutí při systémovém pípnutí"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Vizuální zvonek"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Rychlost blednutí okna"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Typy oken, které budou zobrazeny v režimu škálování"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Typy oken, která mohou blednout"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Přípojný bod"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Přípojný bod"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Uživatelský souborový systém"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Uživatelský souborový systém"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Gconf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Kontrolní backend GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Podpora hlavního napojení na GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Otevřít terminál"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Spustit dialog"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Příkaz pro otevření terminálu"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Screenshot command line"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Zobrazit hlavní nabídku"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Zobrazit dialog spouštění aplikace"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Zobrazit hlavní nabídku"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Pořídit snímek obrazovky"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Pořídit snímek okna"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Příkaz pro otevření terminálu"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Window screenshot command line"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Neměnit"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Modul upozornění změny soubou"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kontrolní backend Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efekt minimalizace"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimalizovatelná okna"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Rychlost minimalizace"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Časový krok minimalizace"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Stálost stínu"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Stálost stínu"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformovat okna při jejich minimalizaci a zrušení minimalizace"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Typy oken, která se mají při minimalizaci transformovat"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Omezení Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Omezení Y souřadnice na pracovní prostor"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "Aktualizovat pozici okna až při ukončení přesunu"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Iniciovat přesun okna"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "\"Líné\" přesouvání"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Přesunout okno"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Přesunout okno"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Krytí"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Úroveň krytí přesouvaných oken"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Snapoff and auto unmaximized maximized windows when dragging"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Odtrhávat maximalizovaná okna"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Zahájit pohyb okna"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Snížit krytí"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Zvýšit krytí"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Krok změny krytí"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Krok změny krytí"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Krok krytí"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Úroveň krytí přesouvaných oken"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Krytí během rotace"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Sytost"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Sytost"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Sytost"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Sytost"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Dekorace oken"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Typy oken"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Mapované"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Okna, které budou implicitně rozmístěny"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Typy oken, která mohou blednout"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Okna, které budou implicitně rozmístěny"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmus použitý pro rozmístění oken"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskáda"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrovaný"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Správce oken"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Typy okna pro efekt při zaměření"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Vodorovná virtuální velikost"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Rozmístit okna"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Umístit mapovaná okna na odpovídající pozice"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Rozmístění oken"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Pozicované okna"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Náhodný"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Vyberte kde jsou okna zobrazeny, pokud je použito více výstupních zařízení"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Chytrý"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "Na všech výstupních výstupních zařízeních"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Vodorovná virtuální velikost"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Zobrazit minimalizovaná okna"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Nouzová řešení umístění oken"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Okna, které budou implicitně rozmístěny"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Okna, které budou implicitně rozmístěny na určitou plochu"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Dekorace oken"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Řešení problémů"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Pozice X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Pozice plochy na ose X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Hodnoty pozice na ose X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Pozice Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Pozice plochy na ose Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Hodnoty pozice na ose Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Podpora obrázkového formátu PNG"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regexpy"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Podpora regulárních výrazů pro určení typu oken"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Barva okraje"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Barva okraje použitá pro obrysové a překrývací typy změny velikosti"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Výchozí mód změny velikosti"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Vývhozí mód použití při změně velikosti oken"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Výplňová barva"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+"Barva použitá pro překrytí plochy okna při použití obrysové změny velikosti "
+"okna"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Iniciovat normální změnu velikosti okna"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Iniciovat obrysovou změnu velikosti okna"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Iniciovat změnu velikosti okna překrytím"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Iniciovat změnu velikosti okna rozpětím"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Iniciovat změnu velikosti okna"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Normálně měněné okna"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Obrysové"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Obrysová změna velikosti okna"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Překrytí"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Změnit velikost okna překrytím"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Změnit velikost okna"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Změnit velikost okna"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Zahájit změnu velikosti okna"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Zahájit změnu velikosti okna rozpětím"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Zahájit změnu velikosti okna normálně"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Zahájit změnu velikosti okna obrysem"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Zahájit změnu velikosti okna překrytím"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Rozpětí"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Rozpětím změnit velikost okna"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Typy oken, která budou měnit velikost normálně"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Typy oken, která budou měnit velikost s efektem obrysu"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Typy oken, která budou měnit velikost s efektem překrytí"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Typy oken, která budou měnit velikost s efektem rozpětí"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Překlápění hran DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Překlápění hran při přesunu"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Překlápění hran ukazatelem"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Doba překlopení"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Překlopit na levé zorné pole a zdeformovat ukazatel"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Překlopit na další viewport při přetažení objektu na hranici obrazovky"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Překlopit na další viewport při umístění ukazatele na hranici obrazovky"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Překlopit na další viewport při přesunu okna na hranici obrazovky"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Překlopit na pravé zorné pole a zdeformovat ukazatel"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Invertovat osu Y pro pohyb ukazatele"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Pointer Invert Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Citlivost ukazatele"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+#, fuzzy
+msgid "Raise window when rotating"
+msgstr "Dát okna do popředí při kliknutí"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Otočit kostkou"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Otočit překlopením vlevo"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Otočit překlopením vpravo"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Otočit vlevo"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Otočit vlevo s oknem"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Otočit vpravo"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Otočit vpravo s oknem"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Otočit na"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Otočit na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Rotovat na stranu 1 s oknem"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Otočit na stranu 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Rotovat na stranu 10 s oknem"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Otočit na stranu 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Otočit na stranu 11 s oknem"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Otočit na stranu 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Otočit na stranu 12 s oknem"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Otočit na stranu 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Otočit na stranu 2 s oknem"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Otočit na stranu 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Otočit na stranu 3 s oknem"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Otočit na stranu 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Otočit na stranu 4 s oknem"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Otočit na stranu 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Otočit na stranu 5 s oknem"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Otočit na stranu 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Otočit na stranu 6 s oknem"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Otočit na stranu 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Otočit na stranu 7 s oknem"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Otočit na stranu 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Otočit na stranu 8 s oknem"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Otočit na stranu 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Otočit na stranu 9 s oknem"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Otočit kostkou"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Otočit kostkou ploch"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Otočit vlevo"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Otočit vlevo a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Otočit vpravo"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Otočit vpravo a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Otočit na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Rotovat na stranu 1 s oknem"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Otočit na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Otočit na stranu 1 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Otočit na stranu 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Otočit na stranu 10 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Otočit na stranu 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Otočit na stranu 11 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Otočit na stranu 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Otočit na stranu 12 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Otočit na stranu 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Otočit na stranu 2 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Otočit na stranu 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Otočit na stranu 3 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Otočit na stranu 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Otočit na stranu 4 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Otočit na stranu 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Otočit na stranu 5 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Otočit na stranu 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Otočit na stranu 6 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Otočit na stranu 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Otočit na stranu 7 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Otočit na stranu 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Otočit na stranu 8 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Otočit na stranu 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Otočit na stranu 9 a vzít aktivní okno s sebou"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Otočit na zorné pole"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Otočit okno"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Otočit s oknem"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Zrychlení otáčení"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rychlost otáčení"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Časový krok otáčení"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Rychlost otáčení"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Citlivost pohybu ukazatele"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Přichytávat otáčející se kostku za horní stranu"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Přichytávat otáčející se kostku za horní stranu"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "Přichytávat k horní straně"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Přichytávat k horní straně"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Zahájit otáčení"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Časový limit před překlopením zorného pole"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zvětšení"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Hodnota krytí v procentech"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Velká"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Ztmavit pozadí"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Ztmavit pozadí při škálování oken"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Symbol"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Čas vznášení"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Spustit výběr oken"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Spustit výběr oken pro všechna okna"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Spustit výběr oken pro skupinu oken"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Spustit výběr oken pro okna na aktuálním výstupu"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Rozvržení a počátek transformace všech oken"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Rozvržení a počátek transformace skupiny oken"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Rozvržení a počátek transformace oken"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Rozvržení a počátek transformace oken na aktuálním výstupu"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Na všech výstupních výstupních zařízeních"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Na aktuálním výstupním zařízení"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Překrýt ikonou"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Překrýt okna ikonou, pokud je změněna jejich velikost"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Měřítko"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Škálovatelné okna"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Rychlost změny velikosti"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Časový krok změny velikosti"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Škálovat okna"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Vyberte kde jsou okna zobrazeny, pokud je použito více výstupních zařízení"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Mezera mezi okny"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Mezery"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Udává dobu (v ms) před ukončením režimu změny velikosti, pokud je ukazatel "
+"umístěn nad oknem"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Typy oken, které budou zobrazeny v režimu škálování"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Automaticky otevřít snímek v této aplikaci"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Adresář"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Pořídit snímek obrazovky"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Spustit aplikaci : "
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Uložit snímek obrazovky do této složky"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Snímek obrazovky"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Modul snímku obrazovky"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Podpora obrázkového formátu SVG"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Hodnota jasu v procentech"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Hodnota sytosti v procentech"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Přepínač aplikací"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automaticky do popředí"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Přenést na popředí"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Přenést vybrané okno na popředí"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Vzdálená plocha může být při přepínání oken oddálena"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimalizované"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Kostka plochy"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Další okno"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Další okno(všechna okna)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Další okno (bez přepínače)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Zobrazit přepínač, pokud není viditelný, a vybrat další okno"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Zobrazit přepínač, pokud není viditelný, a vybrat další okno ze všech oken"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Zobrazit přepínač, pokud není viditelný, a vybrat předchozí okno"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Zobrazit přepínač, pokud není viditelný, a vybrat předchozí okno ze všech "
+"oken"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Předchozí snímek"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Předchozí okno"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Předchozí okno(všechna okna)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Předchozí okno (bez přepínače)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Zobrazovat vybrané okna při přepínání"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Vybrat další okno"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Vybrat další okno bez zobrazení přepínače"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Vybrat předchozí okno"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Vybrat předchozí okno bez zobrazení přepínače"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Zobrazit ikonu vedle náhledu"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Zobrazit minimalizovaná okna"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Rychlost přepínače"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Časový krok přepínače"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Škálovat okna"
+
+#: ../metadata/switcher.xml.in.h:41
+#, fuzzy
+msgid "Windows that should be shown in switcher"
+msgstr "Typy oken, která mají být zobrazena v přepínači"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Přehrávání videa"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Přehrávání videa"
+
+#: ../metadata/video.xml.in.h:4
+#, fuzzy
+msgid "YV12 colorspace"
+msgstr "Barevné schéma YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Přidat čáru"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Přidat bod"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Do různých akcí plochy přidává efekt vody"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Zpoždění (v ms) mezi jednotlivými kapkami"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Povolit vodní efekty ukazatele"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Čára"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Offset Scale"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Bod"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Zpoždění deště"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Vlna v nadpisu"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Přepnout déšť"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Přepnout efekt deště"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Přepnout stěrač"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Přepnout efekt stěrače"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Vodní efekt"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Měřítko odsazení vody"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efekt vlny v nadpisu okna"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efekt zaměření"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efekt zaměření oken"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Typy oken pro efekt při zaměření"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Tření"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Typy oken pro efekt při uchopení"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Rozlišení mřížky"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Invertované přichytávání oken"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Rozechvět okno"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efekt mapování"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efekt mapování oken"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Mapované"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efekt maximalizace"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimální velikost mřížky"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimální velikost vrcholů mřížky"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Přesunované"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Chvění"
+
+# 52895 AttribValues/label
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Invertované přichytávání"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Přichytávat okna"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Tření pružiny"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Pružina K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Konstanta pružiny"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Přepnout přichytávání oken"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Pro efekt rozhoupání okna použít pružinový model"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Rozlišení vrcholů mřížky"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Typy oken, která se mají rozhoupat při zaměření"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Typy oken, která se mají rozhoupat při uchopení"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Typy oken, která se mají rozhoupat při mapování"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Typy oken, která se mají rozhoupat při přesunu"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Vlnivý efekt"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Vlnící se okna"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Lineární filtr"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Při přiblížení používat lineární filtr"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Přiblížit plochu"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Přiblížit"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Oddálit"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Přiblížit"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Rychlost přiblížení"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Časový krok přiblížení"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Přiblížit a posunout kostku ploch"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Násobek přiblížení"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Přiblížit"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Příkazová řádka 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Spustit příkaz 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Screenshot command line"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Screenshot command line"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Snížit krytí oken"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Zvýšit krytí okna"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Hodnoty průhlednosti pro okna"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Průhledné okna"
+
+#~ msgid "Background Images"
+#~ msgstr "Obrázky pozadí"
+
+#~ msgid "Background images"
+#~ msgstr "Obrázky na pozadí"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Rozmístit okna na kostku"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Rozmístit okna"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Otočit vlevo"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Otočit vpravo"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Rozmístit okna"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Rozmístit okna"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Otočit vlevo"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Otočit vpravo"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Rozmístit okna"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Doba, za kterou zprůhlední pozadí ploch kostky"
+
+#~ msgid "Open window menu"
+#~ msgstr "Otevřít nabídku okna"
+
+#~ msgid "Dock"
+#~ msgstr "Dok"
+
+#~ msgid "Toolbar"
+#~ msgstr "Lišta nástrojů"
+
+#~ msgid "Menu"
+#~ msgstr "Nabídka"
+
+#~ msgid "Utility"
+#~ msgstr "Nástroj"
+
+#~ msgid "Splash"
+#~ msgstr "Úvodní okno"
+
+#~ msgid "Dialog"
+#~ msgstr "Dialogové okno"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Rozevírací nabídka"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Místní nabídka"
+
+#~ msgid "Tooltip"
+#~ msgstr "Popisek"
+
+#~ msgid "Notification"
+#~ msgstr "Oznámení"
+
+#~ msgid "Combo"
+#~ msgstr "Pole se seznamem"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Modální dialogové okno"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Celá obrazovka"
+
+#~ msgid "Unknown"
+#~ msgstr "Neznámé"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command1"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command10"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command11"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command2"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command3"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command4"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command5"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command6"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command7"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command8"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command9"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Hodnota jasu v procentech"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Hodnota krytí v procentech"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Hodnota sytosti v procentech"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Sytost"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Zpoždění (v ms) mezi jednotlivými kapkami"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr "Vzdálená plocha může být při přepínání oken oddálena"
+
+#~ msgid "Do not modify"
+#~ msgstr "Neměnit"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Posun vrženého stínu X"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Posun vrženého stínu Y"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Krytí vrženého stínu"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Poloměr vrženého stínu"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Efekt při zaměření okna (None, Shiver)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Vybrat předchozí okno"
+
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Zrychlení sbalení (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Rychlost sbalení (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Časový krok sbalení (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Interval před přenesením vybraných oken do popředí"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "Rozvržení a počátek transformace oken na aktuálním výstupu"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Efekt mapování okna (None, Shiver)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Rychlost minimalizace (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Rychlost minimalizace (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Minimální velikost vrcholů mřížky"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Počet virtuálních ploch"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Krok změny krytí"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Úroveň krytí přesouvaných oken"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Úroveň krytí přesouvaných oken"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Překrýt okna ikonou, pokud je změněna jejich velikost"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Moduly, které musí být tímto předem načteny"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Moduly, které jsou tímto vyžadovány"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Zobrazit přepínač, pokud není viditelný, a vybrat další okno ze všech oken"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Zobrazit přepínač, pokud není viditelný, a vybrat další okno ze všech oken"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Zobrazit přepínač, pokud není viditelný, a vybrat předchozí okno ze všech "
+#~ "oken"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Zobrazit přepínač, pokud není viditelný, a vybrat předchozí okno ze všech "
+#~ "oken"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Zrychlení sbalení (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Rychlost přiblížení (0.1-50)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Časový krok přiblížení (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Rychlost škálování (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Časový krok škálování (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "Násobek vodorovné virtuální velikosti obrazovky"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Násobek svislé virtuální velikosti obrazovky"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Citlivost pohybu ukazatele"
+
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Stálost stínu (0-100)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Mezera mezi okny"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Tření pružiny"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Konstanta pružiny"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Rychlost škálování (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Časový krok škálování (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Filtrování textur (Rychlé, Dobré, Nejlepší)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "Rychlost překreslování obrazovky (počet/s)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Udává dobu (v ms) před ukončením režimu změny velikosti, pokud je "
+#~ "ukazatel umístěn nad oknem"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Časový limit před překlopením zorného pole"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Při přiblížení používat lineární filtr"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rozlišení vrcholů mřížky"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Měřítko odsazení vody"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Rychlost blednutí okna"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Rychlost blednutí okna"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Typy oken, která mohou blednout"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Typy oken, která mohou blednout"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Typy oken, která mohou blednout"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Typy oken, která mohou blednout"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Typy oken, která mají měnit velikost v režimu změny velikosti"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Typy oken, která mají být zobrazena v přepínači"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Typy oken, která se mají při minimalizaci transformovat"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Typy oken, která mohou blednout"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Typy oken, která se mají rozhoupat při zaměření"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Typy oken, která se mají rozhoupat při uchopení"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Typy oken, která se mají rozhoupat při mapování"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Typy oken, která se mají rozhoupat při přesunu"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Horké oblasti pro spuštění režimu škálování (Vlevo nahoře, Vpravo nahoře, "
+#~ "Vlevo dole, Vpravo dole)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Rychlost přiblížení (0.1-50)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Časový krok přiblížení (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Násobek přiblížení"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Otočit na stranu %d"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Otočit na stranu %d s oknem"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Otočit na stranu %d a přenést s sebou aktivní okno"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Otočit na stranu %d"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Otočit na stranu %d"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Otočit na stranu %d s oknem"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Otočit na stranu %d a přenést s sebou aktivní okno"
+
+#~ msgid "Command line %d"
+#~ msgstr "Příkazová řádka %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr ""
+#~ "Příkaz, který se vykoná, pokud je v shellu volán příkaz run_command%d"
+
+#~ msgid "Run command %d"
+#~ msgstr "Spustit příkaz %d"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr "Klávesové zkratky, které spustí příkaz určený command%d"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Typy oken pro efekt při přesunu"
+
+#~ msgid "Corners"
+#~ msgstr "Rohy"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "Změřit okno, když se nad něj přesune myš"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "Iniciovat všechna okna"
+
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "Iniciovat přesun okna klávesnice"
+
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "Iniciovat změnu velikosti okna klávesnice"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "Spustit přepínač oken"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "Modifikátor pro zobrazení přepínače všech oken"
+
+#~ msgid "Return from scale view"
+#~ msgstr "Návrat ze škálovaného pohledu"
+
+#~ msgid "Show switcher"
+#~ msgstr "Zobrazit přepínač"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "Sloppy Focus"
+
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Zahájit pohyb okna z klávesnice"
+
+#~ msgid "Terminate"
+#~ msgstr "Ukončit"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "Vodní efekt při systémovém zvonku"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které mají blednout (Desktop, Dock, Toolbar, Menu, Utility, "
+#~ "Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které mají být transformovány při minimalizaci (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které mají být škálovány v režimu škálování (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které mají být zobrazeny v přepínači (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které se při zaměření mají rozhoupat (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které se při uchopení mají rozhoupat (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které se při mapování mají rozhoupat (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Typy oken, které se při přesouvání mají rozhoupat (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "Efekt rozhoupání při systémovém pípnutí"
diff --git a/po/cy.po b/po/cy.po
new file mode 100644
index 0000000..6181558
--- /dev/null
+++ b/po/cy.po
@@ -0,0 +1,3303 @@
+# Welsh message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2003 SuSE Linux AG.
+# Kevin Donnelly <kevin@dotmon.com>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2003-09-23 10:33+0200\n"
+"Last-Translator: Kevin Donnelly <kevin@dotmon.com>\n"
+"Language-Team: Welsh <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=(n == 0 ? 0 : n == 1 ? 1 : n < 6 ? 2 : n == "
+"6 ? 3 : 4);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Windhoek"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Gwerth"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Windhoek"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Windhoek"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Hepgor\n"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Ymgychwyn"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Hepgor\n"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Cyfnod"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Cyfnod"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Hepgor\n"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Cyfnod"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windhoek"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Ymgychwyn"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Rhag&osod"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Ymgychwyn trefnydd ffenestri rhagosod"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Oedi"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "Cyfred&oli"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "&Profi"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "Gweithred"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Ymgychwyn"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "Gweithred"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Hepgor\n"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "&Profi"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "&Profi"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Hepgor\n"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "&Profi"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Gorchymyn '%1'"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Windhoek"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "ffurfweddu inetd"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ffurfweddu inetd"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "&Profi"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Mountain"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "&Profi"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Hepgor\n"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "&Profi"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windhoek"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Profi"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Mountain"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Windhoek"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Windhoek"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Cyfnod"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Cyfnod"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Cyfnod"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Cyfnod"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ffurfweddu inetd"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windhoek"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Windhoek"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ffurfweddu inetd"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Disgiau Rhith"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Ymgychwyn"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Ymgychwyn"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Ymgychwyn"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Ymgychwyn"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Ymgychwyn"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Windhoek"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "&Profi"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Ymgychwyn"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Ymgychwyn"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Gweithred"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "&Profi"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "&Profi"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "&Profi"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Ailddechrau &darganfod"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Ymgychwyn"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Gwerth"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Windhoek"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "Gwerth"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "&Profi"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Windhoek"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Sbaen"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Ymgychwyn"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Ymgychwyn"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Gweithred"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Gweithred"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "Gwerth"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "&Profi"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Oedi"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Gweithred"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Windhoek"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Gweithred"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Sbaen"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Sbaen"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windhoek"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "&Profi"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Hepgor\n"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Hepgor\n"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Hepgor\n"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Hepgor\n"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "&Profi"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Hepgor\n"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Hepgor\n"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Gorchymyn '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Gorchymyn '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Gwall wrth ddadansoddi'r llinell gorchymyn."
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Ffurweddiad"
+
+#~ msgid "Unknown"
+#~ msgstr "Anhysbys"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Cyfnod"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Gweithred"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Hepgor\n"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&Profi"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Gweithred"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&Profi"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Gwerth"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "&Profi"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Gweithred"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Sbaen"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windhoek"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Hepgor\n"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&Profi"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Gorchymyn '%1'"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Azores"
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..2e155b7
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,4146 @@
+# Danish message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2001 SuSE GmbH.
+# H. Merethe Eriksen <djinni@mail1.stofanet.dk>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2007-11-27 03:25+0100\n"
+"Last-Translator: Rudolf Randal <rudolf.randal@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Skrivebord"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Vinduesmenu"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ingen"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Skaler"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Minimeret"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maksimer vindue vandret"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maksimer vindue lodret"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimeret"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatisk hævning"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Vinduesmenu"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Foldehastighed"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Formindsk vinduets uigennemsigtighed"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Maksimer det aktive vindue i bredden"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Luk vindue"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Gendan vindue"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maksimer vindue"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimer vindue"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Start"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Kubusfarve"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktive plugins"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Start"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Start"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Lineært filter"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Skaler vinduer"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Teksturfilter"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Farvemætning"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Farvemætning"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Foldehastighed"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Placer vinduer"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Farvemætning"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/blur.xml.in.h:12
+#, fuzzy
+msgid "Blur windows that doesn't have focus"
+msgstr "Vinduestyper, der skal \"slingre\", når de får fokus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Skaler vinduer"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+#, fuzzy
+msgid "Pulse effect"
+msgstr "Fokuseffekt"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Fadehastighed for vindue"
+
+#: ../metadata/blur.xml.in.h:30
+#, fuzzy
+msgid "Windows that should be affected by focus blur"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/blur.xml.in.h:31
+#, fuzzy
+msgid "Windows that should be use alpha blur by default"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Udgange"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Tag et skærmbillede"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:13
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:14
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:15
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:16
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:17
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:18
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:19
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:20
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:21
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:22
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:23
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:24
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+"kommandoen identificeres af kommando%d"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:51
+#, fuzzy
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:52
+#, fuzzy
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:53
+#, fuzzy
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:54
+#, fuzzy
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:55
+#, fuzzy
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:56
+#, fuzzy
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:57
+#, fuzzy
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:58
+#, fuzzy
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:59
+#, fuzzy
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:60
+#, fuzzy
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:61
+#, fuzzy
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:62
+#, fuzzy
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Kommandolinje, der skal køres i Shell, når kør_kommando%d aktiveres"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Kommando"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Kommando '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Kommando '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Kommando '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Kommando '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Kommando: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Kommando: "
+
+#
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktive plugins"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Tillad trækning af fuldskærmsvinduer, uden at der omdirrigeres til pixmaps "
+"uden for skærmbilledet"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Hørbar klokke"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Hørbar systemtone"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatisk hævning"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Forsinkelse ved automatisk hævning"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatisk registrering af udgangsenheder"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatisk registrering af opdateringshastighed"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Bedste"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klik for at fokusere"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Fokus flyttes til vinduet, når der klikkes på det."
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Luk det aktive vindue"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Standardikon"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Standardbillede til vinduesikon"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Skrivebordskubus"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Registrer udgange"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Registrer opdateringshastighed"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Hurtig"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Vinduestyper til fokuseffekt"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "Vinduestyper til fokuseffekt"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Vinduestyper til fokuseffekt"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Generelle muligheder"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Generelle compiz muligheder"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "God"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Skjul vinduer, der ikke er på opgavelinjen"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Skjul alle vinduer, og flyt fokus til skrivebord"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "Skjul vinduer, der ikke er på opgavelinjen, når skrivebordet vises"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Vandret virtuel størrelse"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorer vink, når maksimeret"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignorer vink om størrelsesforøgning og -aspekter, når vinduet er maksimeret"
+
+#: ../metadata/core.xml.in.in.h:39
+#, fuzzy
+msgid "Interval before raising selected windows"
+msgstr "Interval inden de valgte vinduer hæves"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Interval mellem ping beskeder"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Belysning"
+
+#
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Liste over aktive plugins"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Liste over strenge, der beskriver udgangsenheder"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Sænk vindue"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Placer vinduet under de andre vinduer"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maksimer vindue vandret"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maksimer vindue lodret"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maksimer det aktive vindue"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maksimer det aktive vindue i bredden"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maksimer det aktive vindue i højden"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimer det aktive vindue"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Antal skriveborde"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Antal virtuelle skriveborde"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Udfør kun skærmopdatering i den lodrette slukkeperiode"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Udgange"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Regnforsinkelse"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Hæv ved klik"
+
+#
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Hæv vindue"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Hæv de valgte vinduer efter interval"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Hæv vinduet over de andre vinduer"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Hæv vinduerne, når der klikkes"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Opdateringshastighed"
+
+#: ../metadata/core.xml.in.in.h:74
+#, fuzzy
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Skærmstørrelsesmultiplikator til den vandrette virtuelle størrelse"
+
+#: ../metadata/core.xml.in.in.h:75
+#, fuzzy
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Skærmstørrelsesmultiplikator til den lodrette virtuelle størrelse"
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Zoom på skrivebord"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Langsomme animationer"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synkroniser med lodret slukning"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Teksturfilter"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Teksturfilter"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Teksturfilter"
+
+#: ../metadata/core.xml.in.in.h:83
+#, fuzzy
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+"Den hastighed, der anvendes til at tegne skærmbilledet igen (antal gange/"
+"sekund)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Slå maksimering af vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Slå vandret maksimering af vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Slå lodret maksimering af vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Slå medtoning af vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Slå maksimering af det aktive vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Slå den vandrette maksimering af det aktive vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Slå lodret maksimering af det aktive vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Slå nedtoning af det aktive vindue til/fra"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Slå brugen af langsomme animationer til/fra"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Ophæv maksimeringen af det aktive vindue"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Omdiriger ikke fuldskærmsvinduer"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Brug spredt lys, når skærmbilledet omdannes"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Lodret virtuel størrelse"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Acceleration"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Gå til næste dias"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animer himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animer himmelkuplen, når kubussen roteres"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Automatisk hævning"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Farve til kubussens top og bund"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Farve til det nederste farvestop i himmelkuplens aftagende farveforløb"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Farve til det øverste farvestop i himmelkuplens aftagende farveforløb"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kubusfarve"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kubusfarve"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Skrivebordskubus"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Foldeaccelaration"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Foldehastighed"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Tidstrin for foldning"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"Generer mipmaps, når det er muligt, for at opnå en højere kvalitetsskalering"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Gå tilbage til forrige dias"
+
+#
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Billedfiler"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Billede, der skal bruges som tekstur til himmelkuplen"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Kubus indvendig"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Kubus indvendig"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Liste over PNG- og SVG-filer, der skal gengives på toppen af kubussen"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Næste dias"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Kubus indvendig"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Placer vinduer på kubus"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Forrige dias"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Vis himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Tilpas billede"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Tilpas billederne, så de dækker toppen af kubussen"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Slutfarve til himmelkuplens farvegraduering"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Startfarve til himmelkuplens farvegraduering"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Billede til himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Hastighed"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Tidstrin"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Fold ud"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Fold kubussen ud"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+#, fuzzy
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Tillad mipmaps at blive skabt til dekorations texturer"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Kommando"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Dekoratørkommandolinje, som udføres, hvis der ikke allerede kører en "
+"dekoratør"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Slagskyggeforskydning X"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Slagskyggeforskydning Y"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Slagskyggeradius"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Slagskyggens uigennemsigtighed"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Slagskyggeradius"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "Fastgør vinduer"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Skyggeforskydning X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Skyggeforskydning Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Skyggens uigennemsigtighed"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Skyggeradius"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Fastgør vinduer"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Vinduesdekoration"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Vinduesdekorationer"
+
+#: ../metadata/decoration.xml.in.h:19
+#, fuzzy
+msgid "Windows that should be decorated"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/decoration.xml.in.h:20
+#, fuzzy
+msgid "Windows that should have a shadow"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rotationshastighed"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Begræns Y"
+
+#
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Tilpas vinduets størrelse"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Vendingstid"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Fadehastighed"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Vendingstid"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Fadeeffekt ved systemtone"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Vinduerne tones ind, når de tilknyttes, og tones ud, når tilknytningen "
+"ophæves."
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Fading af vinduer"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Visuel klokke i fuld skærm"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Fadeeffekt i fuld skærm ved systemtone"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Visuel klokke"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Fadehastighed for vindue"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Vinduestyper, der skal skaleres i skaleringstilstand"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be fading"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Punkt"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Tilføj punkt"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Dialogboksen Kør"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Kommandolinje til skærmbillede"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Kommandolinje til skærmbillede"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Vis hovedmenu"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Vis dialogboksen til kørsel af program"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Vis hovedmenuen"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Tag et skærmbillede"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Tag et skærmbillede af et vindue"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Kommandolinje til skærmbillede"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Kommandolinje til vindueskærmbillede"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Må ikke ændres"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "Må ikke ændres"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimer effekt"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Minimer vinduer"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Sænk hastighed"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimer tidstrin"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Skyggemodstand"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Skyggemodstand"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Vinduer skal ændres, når de minimeres og gendannes"
+
+#: ../metadata/minimize.xml.in.h:10
+#, fuzzy
+msgid "Windows that should be transformed when minimized"
+msgstr "Vinduestyper, der skal ændres, når de minimeres"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Begræns Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Begræns Y-koordinaten til arbejdsområdet"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Start vinduesflytning"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Flyt vindue"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Flyt vindue"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Uigennemsigtighed"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Uigennemsigtighedsniveau ved flytning af vinduer"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Frigør og gendan automatisk maksimerede vinduer, når de trækkes"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Frigør maksimerede vinduer"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Start flytning af vindue"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Lysstyrke"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Lysstyrke"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Lysstyrke"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Lysstyrke"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Formindsk uigennemsigtighed"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Forøg uigennemsigtighed"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Trin i den trinvise ændring af uigennemsigtigheden"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Trin i den trinvise ændring af uigennemsigtigheden"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Uigennemsigtighedstrin"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Uigennemsigtighedsniveau ved flytning af vinduer"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Farvemætning"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Farvemætning"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Farvemætning"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Farvemætning"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Vinduesdekorationer"
+
+#
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Vinduestyper"
+
+#
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Vinduestyper til tilknytningseffekt"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Vinduesmenu"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Vinduestyper til fokuseffekt"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Vandret virtuel størrelse"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Placer vinduer"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Placer vinduerne på de korrekte positioner, når de er tilknyttet"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "På alle udgangs enheder"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Vandret virtuel størrelse"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Løsninger til vinduesplaceringer"
+
+#: ../metadata/place.xml.in.h:25
+#, fuzzy
+msgid "Windows that should be positioned by default"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/place.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Vinduestyper, der skal skaleres i skaleringstilstand"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Vinduesdekorationer"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Løsninger"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Vandret virtuel størrelse"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Vandret virtuel størrelse"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+#, fuzzy
+msgid "Regex Matching"
+msgstr "Slå fastgøring af vinduer til/fra"
+
+#: ../metadata/regex.xml.in.h:2
+#, fuzzy
+msgid "Regex window matching"
+msgstr "Slå fastgøring af vinduer til/fra"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Kubusfarve"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Kubusfarve"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Start tilpasning af vinduets størrelse"
+
+#
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Tilpas vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Kubusfarve"
+
+#
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Tilpas vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Tilpas vinduets størrelse"
+
+#
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Tilpas vinduets størrelse"
+
+#
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Tilpas størrelsen på vinduet"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Start tilpasning af vinduesstørrelsen"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Start tilpasning af vinduesstørrelsen"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Start tilpasning af vinduesstørrelsen"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Start tilpasning af vinduesstørrelsen"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Start tilpasning af vinduesstørrelsen"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Tilpas vinduets størrelse"
+
+#: ../metadata/resize.xml.in.h:28
+#, fuzzy
+msgid "Windows that normal resize should be used for"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/resize.xml.in.h:29
+#, fuzzy
+msgid "Windows that outline resize should be used for"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/resize.xml.in.h:30
+#, fuzzy
+msgid "Windows that rectangle resize should be used for"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/resize.xml.in.h:31
+#, fuzzy
+msgid "Windows that stretch resize should be used for"
+msgstr "Vinduestyper, der skal fades"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Træk-og-slip til kant, vend"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Flyt til kant, vend"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Markør til kant, vend"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Vendingstid"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+"Vend til venstre visningsområde, og bevar markøren på dens nuværende "
+"relative placering på skærmen"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Vend til næste visningsområde, når et objekt trækkes til skærmens kant"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "Vend til næste visningsområde, når markøren flyttes til skærmens kant"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Vend til næste visningsområde, når vinduet flyttes til skærmens kant"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+"Vend til højre visningsområde, og bevar markøren på dens nuværende relative "
+"placering på skærmen"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Vend Y-aksen for markørbevægelser"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Omvendt Y-akse for markør"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Markørfølsomhed"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+#, fuzzy
+msgid "Raise window when rotating"
+msgstr "Hæv vinduerne, når der klikkes"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Roter kubus"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Roter og vend til venstre"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Roter og vend til højre"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Roter venstre"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Roter til venstre med vindue"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Roter højre"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Roter til højre med vindue"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Roter til"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Roter kubus"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Roter skrivebordskubus"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Roter til venstre"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Roter til venstre, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Roter til højre"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Roter til højre, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Roter til side %d med vindue"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Roter til side %d"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Roter til visningsområde"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Roter vindue"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Roter med vindue"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Rotationsacceleration"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rotationshastighed"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Tidstrin for rotation"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Rotations Zoom"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Det følsomhedsniveau, der skal anvendes til markørbevægelserne"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Fastgør kubusrotation til oversiden"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Fastgør kubusrotation til oversiden"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "Fastgør til oversiden"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Fastgør til oversiden"
+
+#
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Start rotation"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Den tid, der går, inden visningsområdet skifter"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Uigennemsigtighed i procent"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Stor"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Gør baggrund mørkere"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Gør baggrunden mørkere, når vinduerne skaleres"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblem"
+
+#: ../metadata/scale.xml.in.h:12
+#, fuzzy
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Start Vis Skrivebord hvis der klikkes på skrivebordet når Skaler køres"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Markørens pegetid"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Start vinduesvælger"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Start vinduesvælger for alle vinduer"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Start vinduesvælger for vinduesgruppe"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Start vinduesvælgeren for vinduer i det aktuelle outputområde"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Arranger og start omdannelsen af alle vinduerne"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Arranger og start omdannelsen af vinduesgruppen"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Arranger og start omdannelsen af vinduerne"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Arranger og start omdannelsen af vinduer i det aktuelle outputområde"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "På alle udgangs enheder"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "På nuværende udgangs enhed"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Overlejringsikon"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Sæt et ikon på vinduerne, når de er skaleret"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Skaler"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Skaleringshastighed"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Tidstrin for skalering"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Mellemrum mellem vinduer"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Mellemrum"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Den tid (i ms), der går, inden skaleringstilstanden afsluttes, når markøren "
+"peger på et vindue"
+
+#: ../metadata/scale.xml.in.h:42
+#, fuzzy
+msgid "Windows that should be scaled in scale mode"
+msgstr "Vinduestyper, der skal skaleres i skaleringstilstand"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Bibliotek"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Tag et skærmbillede"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Vis dialogboksen til kørsel af program"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Tag et skærmbillede"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Kommandolinje til skærmbillede"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Lysstyrken angivet i procent"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Farvemætningen angivet i procent"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Programskifter"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatisk hævning"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Placer forrest"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Placer det valgte vindue forrest"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Fjernskrivebord zoomes ud, når der skiftes til et andet vindue"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimeret"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Skrivebordskubus"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Næste vindue"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Næste vindue"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Næste vindue"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Vis opgaveskifteren, hvis den ikke er synlig, og vælg næste vindue"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Vis opgaveskifteren, hvis den ikke er synlig, og vælg næste vindue blandt "
+"alle vinduer"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Vis opgaveskifteren, hvis den ikke er synlig, og vælg forrige vindue"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Vis opgaveskifteren, hvis den ikke er synlig, og vælg forrige vindue blandt "
+"alle vinduer"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Forrige dias"
+
+#
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Forrige vindue"
+
+#
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Forrige vindue"
+
+#
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Forrige vindue"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Vælg næste vindue"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Vælg forrige vindue"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Vis ikon ud for miniaturebillede"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Vis minimerede vinduer"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Hastighed for programskifter"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Tidstrin for programskifter"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/switcher.xml.in.h:41
+#, fuzzy
+msgid "Windows that should be shown in switcher"
+msgstr "Vinduestyper, der skal vises i programskifteren"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Tilføj linje"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Tilføj punkt"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Tilføjer vandeffekter til forskellige skrivebordshandlinger"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Forsinkelse (i ms) mellem hver regndråbe"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Aktiver markørvandeffekter"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Line"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Forskydningsstørrelse"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punkt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Regnforsinkelse"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Titelbølge"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Regn til/fra"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Slå regneffekten til/fra"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Visker til/fra"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Slå viskereffekten til/fra"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Vandeffekt"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Størrelse på vandforskydning"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Bølgeeffekt til vinduestitel"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Fokuseffekt"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Effekt ved fokus på vinduer"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Vinduestyper til fokuseffekt"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Friktion"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Vinduestyper til gribeeffekt"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Gitteropløsning"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Omvendt fastgøring af vinduer"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Lad vinduer dirre"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Tilknytningseffekt"
+
+#
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Effekt ved tilknytning af vinduer"
+
+#
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Vinduestyper til tilknytningseffekt"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maksimeringseffekt"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Mindste gitterstørrelse"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Knudernes minimumstørrelse i gitteret"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Flyt vindue"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Rysten"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Omvendt fastgøring"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Fastgør vinduer"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fjerderfriktion"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Fjeder-K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Fjederkonstant"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Slå fastgøring af vinduer til/fra"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Brug fjedermodel til \"slingrende\" vinduer"
+
+#
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Opløsning for knuder i gitteret"
+
+#: ../metadata/wobbly.xml.in.h:26
+#, fuzzy
+msgid "Windows that should wobble when focused"
+msgstr "Vinduestyper, der skal \"slingre\", når de får fokus"
+
+#: ../metadata/wobbly.xml.in.h:27
+#, fuzzy
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+"Vinduestyper, der skal \"slingre\", når der tages fat i dem med markøren"
+
+#: ../metadata/wobbly.xml.in.h:28
+#, fuzzy
+msgid "Windows that should wobble when mapped"
+msgstr "Vinduestyper, der skal \"slingre\", når de tilknyttes"
+
+#: ../metadata/wobbly.xml.in.h:29
+#, fuzzy
+msgid "Windows that should wobble when moved"
+msgstr "Vinduestyper, der skal \"slingre\", når de flyttes"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Vinduerne \"slingrer\", når de maksimeres eller gendannes"
+
+#
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "\"Slingrende\" vinduer"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Lineært filter"
+
+#: ../metadata/zoom.xml.in.h:5
+#, fuzzy
+msgid "Use linear filter when zoomed in"
+msgstr "Brug lineært filter, når der er zoomet ind"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom på skrivebord"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Zoom ind"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Zoom ud"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Zoom ind"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoomhastighed"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Tidstrin for zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoom og panorer på skrivebordskubus"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Zoomfaktor"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Zoom ind"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Kommando: "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Kommando '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Kommandolinje til skærmbillede"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Kommandolinje til skærmbillede"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Formindsk vinduets uigennemsigtighed"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Forøg vinduets uigennemsigtighed"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "Mellemrum mellem vinduer"
+
+#~ msgid "Background Images"
+#~ msgstr "Baggrunds Billeder"
+
+#~ msgid "Background images"
+#~ msgstr "Baggrunds billeder"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Placer vinduer på kubus"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Placer vinduer"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Roter venstre"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Roter højre"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Placer vinduer"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Placer vinduer"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Roter til venstre"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Roter til højre"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Placer vinduer"
+
+#~ msgid "Open window menu"
+#~ msgstr "Åbn vinduesmenuen"
+
+#~ msgid "Dock"
+#~ msgstr "Dok"
+
+#~ msgid "Toolbar"
+#~ msgstr "Værktøjslinje"
+
+#~ msgid "Menu"
+#~ msgstr "Menu"
+
+#~ msgid "Utility"
+#~ msgstr "Værktøj"
+
+#~ msgid "Splash"
+#~ msgstr "Splash"
+
+#~ msgid "Dialog"
+#~ msgstr "Dialogboks"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Rullemenu"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Pop op-menu"
+
+#~ msgid "Tooltip"
+#~ msgstr "Værktøjstip"
+
+#~ msgid "Notification"
+#~ msgstr "Besked"
+
+#~ msgid "Combo"
+#~ msgstr "Kombination"
+
+#~ msgid "Dnd"
+#~ msgstr "Træk-og-slip"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Modaldialogboks"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Fuldskærm"
+
+#~ msgid "Unknown"
+#~ msgstr "Ukendt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "En tastaturgenvej, der kører Shell-kommandoen, når den aktiveres. Shell-"
+#~ "kommandoen identificeres af kommando%d"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Lysstyrken angivet i procent"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Uigennemsigtighed i procent"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Farvemætningen angivet i procent"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Farvemætning"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Forsinkelse (i ms) mellem hver regndråbe"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr "Fjernskrivebord zoomes ud, når der skiftes til et andet vindue"
+
+#~ msgid "Do not modify"
+#~ msgstr "Må ikke ændres"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Slagskyggeforskydning X"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Slagskyggeforskydning Y"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Slagskyggens uigennemsigtighed"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Slagskyggeradius"
+
+#, fuzzy
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Effekt ved fokus på vinduer"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Vælg forrige vindue"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Foldeaccelaration"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Foldehastighed"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Tidstrin for foldning"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Interval inden de valgte vinduer hæves"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Arranger og start omdannelsen af vinduer i det aktuelle outputområde"
+
+#
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Effekt ved tilknytning af vinduer"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Sænk hastighed"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Minimer tidstrin"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Knudernes minimumstørrelse i gitteret"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Antal virtuelle skriveborde"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Trin i den trinvise ændring af uigennemsigtigheden"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Uigennemsigtighedsniveau ved flytning af vinduer"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Uigennemsigtighedsniveau ved flytning af vinduer"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Sæt et ikon på vinduerne, når de er skaleret"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Plugins, som skal indlæses først"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Obligatoriske plugins"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Vis opgaveskifteren, hvis den ikke er synlig, og vælg næste vindue blandt "
+#~ "alle vinduer"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Vis opgaveskifteren, hvis den ikke er synlig, og vælg næste vindue blandt "
+#~ "alle vinduer"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Vis opgaveskifteren, hvis den ikke er synlig, og vælg forrige vindue "
+#~ "blandt alle vinduer"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Vis opgaveskifteren, hvis den ikke er synlig, og vælg forrige vindue "
+#~ "blandt alle vinduer"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Rotationsacceleration"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Rotationshastighed"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Tidstrin for rotation"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Skaleringshastighed"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Tidstrin for skalering"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "Skærmstørrelsesmultiplikator til den vandrette virtuelle størrelse"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Skærmstørrelsesmultiplikator til den lodrette virtuelle størrelse"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Det følsomhedsniveau, der skal anvendes til markørbevægelserne"
+
+#, fuzzy
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Skyggemodstand"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Mellemrum mellem vinduer"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Fjerderfriktion"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Fjederkonstant"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Hastighed for programskifter"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Tidstrin for programskifter"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Teksturfiltrering"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr ""
+#~ "Den hastighed, der anvendes til at tegne skærmbilledet igen (antal gange/"
+#~ "sekund)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Den tid (i ms), der går, inden skaleringstilstanden afsluttes, når "
+#~ "markøren peger på et vindue"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Den tid, der går, inden visningsområdet skifter"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Brug lineært filter, når der er zoomet ind"
+
+#
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Opløsning for knuder i gitteret"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Størrelse på vandforskydning"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Fadehastighed for vindue"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Fadehastighed for vindue"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Vinduestyper, der skal fades"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Vinduestyper, der skal fades"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Vinduestyper, der skal fades"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Vinduestyper, der skal fades"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Vinduestyper, der skal skaleres i skaleringstilstand"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Vinduestyper, der skal vises i programskifteren"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Vinduestyper, der skal ændres, når de minimeres"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Vinduestyper, der skal fades"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Vinduestyper, der skal \"slingre\", når de får fokus"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr ""
+#~ "Vinduestyper, der skal \"slingre\", når der tages fat i dem med markøren"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Vinduestyper, der skal \"slingre\", når de tilknyttes"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Vinduestyper, der skal \"slingre\", når de flyttes"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Zoomhastighed"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Tidstrin for zoom"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Zoomfaktor"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Roter til side %d"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Roter til side %d med vindue"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Roter til side %d"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Roter til side %d"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Roter til side %d med vindue"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Roter til side %d, og lad det aktive vindue følge med"
+
+#~ msgid "Command line %d"
+#~ msgstr "Kommandolinje %d"
+
+#~ msgid "Run command %d"
+#~ msgstr "Kør kommando %d"
+
+#
+#~ msgid "Move Window Types"
+#~ msgstr "Vinduestyper til flytteeffekt"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Cornish"
+
+#
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Vis æ&ndringer"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Diskette"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Starter dæmon."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminaler"
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..ab5eab0
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,4841 @@
+# @TITLE@
+# Copyright (C) 2006, SUSE Linux GmbH, Nuremberg
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+# This file is distributed under the same license as @PACKAGE@ package. FIRST
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: @PACKAGE@\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-07-04 15:54+0200\n"
+"Last-Translator: mandavi <mandavi@web.de>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Desktop"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Fensterverwaltung"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Keine"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Aufrollen"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximieren"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Fenster horizontal maximieren"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Fenster vertikal maximieren"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimiert"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatisch in den Vordergrund"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Niedrig"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Fenstermenü"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Auszuführende Aktion wenn das Scrollrad über der Fenster-Titelleiste "
+"betätigt wird."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Unschärfetyp"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Intransparenz des aktiven Fensters bei Metacity-Themen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Transparenzschatten des aktiven Fensters bei Metacity-Themen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Transparenz bei Metacity-Themen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Transparenzschatten bei Metacity-Themen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opazität für aktive Fenster mit Metacity-Dekoration"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opazität für Metacity-Dekorationen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Abstufung aktiver Fenster mit Metacity-Dekoration von undurchsichtig nach "
+"durchsichtig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Abstufung Fenster mit Metacity-Dekoration von undurchsichtig nach "
+"durchsichtig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Aktion des Mausrades auf der Titelleiste"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Unschärfetyp für Fensterdekoration"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Metacity-Thema verwenden"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Metacity-Thema für das Zeichnen der Fensterdekoration verwenden"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Fenster schließen"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Maximierung aufheben"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Fenster maximieren"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Fenster minimieren"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Über anderen Fenstern anordnen"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Immer auf der sichtbaren Arbeitsfläche"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Abrollen"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Nicht mehr über anderen Fenstern anordnen"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Nur auf aktueller Arbeitsfläche"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Das Fenster \"%s\" reagiert nicht mehr."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Das Erzwingen des Beendens dieser Anwendung wird den Verlust von "
+"ungespeicherten Daten zur Folge haben."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "Beenden erzwingen"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Auf den Bildschirm zeichnen"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Füllfarbe"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Kommentar Rahmenfarbe"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Bildschirmnotiz-Plugin"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Leeren"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Zeichnen"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Zeichnen mit Werkzeug"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Füllfarbe für Anmerkungen"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Initiieren"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Zeichnen initiieren"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Zeichnung löschen initiieren"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Löschen initiieren"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Linienstärke"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Linienstärke für Notizen"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Strichfarbe für Notizen"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Strichbreite"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Strichbreite für Notizen"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x-bilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alphakanalunschärfe"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alphakanalunschärfe für Fenster"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Unschärfefilter"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Unschärfe für verdeckte Bereiche"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Sättigung"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Geschwindigkeit"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Fensterunschärfe"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Unschärfe hinter transparenten Fensterbereichen"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Sättigung"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Fensterunschärfe"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Unschärfe für Fenster im Hintergrund"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Unschärfe für verdeckte Bildbereiche ausschalten"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Methode des Unschärfefilters"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fokusunschärfe"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Fokusunschärfe für Fenster"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaußsch"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Radius"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Stärke"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Radius des Gaußfilters"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Stärke des Gaußfilters"
+
+#: ../metadata/blur.xml.in.h:22
+#, fuzzy
+msgid "Independent texture fetch"
+msgstr "eigenständige Texturabrufe"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmaps"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap-LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap-Detailniveau"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulsieren"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Puls-Effekt"
+
+#: ../metadata/blur.xml.in.h:28
+#, fuzzy
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"nutze verfügbare Texturen für möglichst viele eigenständige Texturabrufe"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Geschwindigkeit des Unschärfeeffekts"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Fenstertypen, auf die die Fokusunschärfe angewendet werden soll"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Fenstertypen, auf die die Alphakanalunschärfe angewendet werden soll"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Ausgabe klonen"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Auswahl klonen initiieren"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Bildschirmausgabe klonen"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 0 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 1 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 10 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 11 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 2 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 3 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 4 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 5 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 6 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 7 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 8 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 9 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 0 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 1 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 10 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 11 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 2 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 3 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 4 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 5 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 6 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 7 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 8 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 9 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 0 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 1 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 10 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 11 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 2 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 3 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 4 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 5 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 6 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 7 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 8 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Eine Tastenbelegung, die den durch Befehl 9 festgelegten Shell-Befehl "
+"ausführt"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Kommandozeile 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Kommandozeile 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Kommandozeile 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Kommandozeile 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Kommandozeile 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Kommandozeile 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Kommandozeile 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Kommandozeile 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Kommandozeile 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Kommandozeile 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Kommandozeile 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Kommandozeile 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command0 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command1 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command10 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command11 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command2 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command3 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command4 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command5 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command6 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command7 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command8 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Die Kommandozeile, die bei Ausführung von run_command9 in der Shell "
+"ausgeführt wird"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Kommando"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Befehl 0 ausführen"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Befehl 1 ausführen"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Befehl 10 ausführen"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Befehl 11 ausführen"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Befehl 12 ausführen"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Befehl 3 ausführen"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Befehl 4 ausführen"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Befehl 5 ausführen"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Befehl 6 ausführen"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Befehl 7 ausführen"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Befehl 8 ausführen"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Befehl 9 ausführen"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktive Plugins"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Aufbau von Vollbildfenstern ohne Umleitung zu Offscreen-Pixmaps erlauben"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Akustische Glocke"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Akustischer System-Warnton"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatisch in den Vordergrund"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Verzögerung für Automatisch in den Vordergrund"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatische Erkennung von Ausgabegeräten"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatische Erkennung der Aktualisierungsrate"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Beste"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Fokuswechsel durch Klicken"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Fenster durch Anklicken fokussieren"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Aktives Fenster verschieben"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Standardsymbol"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Standardfenstersymbol"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Desktop-Würfel"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Ausgaben erkennen"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Aktualisierungsrate erkennen"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Dauer, die der Mauszeiger am Bildschirmrand verweilen muss, bevor eine Rand-"
+"Aktion ausgeführt wird."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Verzögerung der Rand-Aktionen"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Schnell"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+# Sinnvoller Ersatz für "Focus Stealing Prevention"?
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Stärke der \"Focus Stealing Prevention\""
+
+# Sinnvoller Ersatz für "Focus Stealing Prevention"?
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Fenster mit \"Focus Stealing Prevention\""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+"Auswahl an Fenstern, die beim Öffnen nicht automatisch Fokus bekommen, falls "
+"zu diesem Zeitpunkt mit anderen Fenstern gearbeitet wird."
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Allgemeine Optionen"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Allgemeine Compiz Optionen"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Gut"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Programmleistenfenster ausblenden"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Alle Fenster ausblenden und Desktop fokussieren"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Fenster ausblenden, die sich bei Wechsel in Modus \"Desktop anzeigen\" nicht "
+"in Programmleiste befanden"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Hoch"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Virtuelle horizontale Größe"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Benutze Kompression für aus Bildern generierte Texturen, wenn möglich."
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Bei maximierter Anzeige Tipps ignorieren"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Bei maximierter Anzeige Größensteigerung und Aspekttipps ignorieren"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+"Zeit, die vergehen soll, bevor das ausgewählte Fenster in den Vordergrund "
+"gehoben wird"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervall zwischen Ping-Meldungen"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+"Legt fest, wie strikt die \"Focus Stealing Prevention\" angewandt wird."
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Beleuchtung"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Liste der aktiven Plugins"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Liste mit Zeichenketten zur Erläuterung von Ausgabegeräten"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Niedrig"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Fenster nach unten verschieben"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Fenster unter andere Fenster verschieben"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Fenster horizontal maximieren"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Fenster vertikal maximieren"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Aktives Fenster maximieren"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Aktives Fenster horizontal maximieren"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Aktives Fenster vertikal maximieren"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Aktives Fenster minimieren"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Anzahl der Desktops"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Anzahl der virtuellen Desktops"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Aus"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Bildschirmaktualisierungen nur während inaktiver vertikaler Anzeige "
+"durchführen"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Ausgaben"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Behandlung von überlappenden Ausgabegeräten"
+
+#: ../metadata/core.xml.in.in.h:64
+#, fuzzy
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"zeichne jede Ausgabeeinheit unabhängig voneinander, auch wenn sich die "
+"Einheiten überlappen"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Pingverzögerung"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Größeres Ausgabegerät bevorzugen"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Kleineres Ausgabegerät bevorzugen"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Durch Klicken in den Vordergrund"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Fenster nach vorn verlagern"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Ausgewählte Fenster nach Zeitintervall in Vordergrund verschieben"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Fenster vor andere Fenster verlagern"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Fenster durch Anklicken in Vordergrund verschieben"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Aktualisierungsrate"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+"Anzahl der virtuellen Darstellungsfelder in horizontaler Richtung (z. B. 4 "
+"für einen Würfel)"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Anzahl der virtuellen Darstellungsfelder in vertikaler Richtung"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Desktop anzeigen"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Langsame Animationen"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Intelligent"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Mit VBlank synchronisieren"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Texturkompression"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Strukturfilter"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Texturfilter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Bildwiederholungsrate (Häufigkeit/Sekunde)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Fenster maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Fenster horizontal maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Fenster vertikal maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Fenster schattieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Aktives Fenster maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Aktives Fenster horizontal maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Aktives Fenster vertikal maximieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Aktives Fenster schattieren ein/aus"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Verwenden langsamer Animationen ein/aus"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Maximierung des aktiven Fensters aufheben"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Umleitung von Vollbildfenstern aufheben"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Beim Umwandeln des Bildschirms diffuses Licht verwenden"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Vertikale virtuelle Größe"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Sehr hoch"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+"Legt fest, welches der überlappenden Ausgabegeräte z.B. beim Maximieren von "
+"Fenstern bevorzugt werden soll."
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Maustastenkombination für Fenstermenü"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tastenkombination für Fenstermenü"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Beschleunigung"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Bild ausrichten"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Würfeloberseite entsprechend der Orientierung drehen"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Nächstes Dia anzeigen"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Skydome animieren"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Beim Drehen von Würfel Skydome animieren"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Farbe der Ober- und Unterseite des Würfels"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Farbe, die unten im Skydome-Fallback-Verlauf verwendet werden soll"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Farbe, die oben im Skydome-Fallback-Verlauf verwendet werden soll"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Würfelfarbe"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Würfelfarbe"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Desktop-Würfel"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Beschleunigung beim Falten"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Faltgeschwindigkeit"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Faltzeitintervall"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Wenn möglich für präzise Skalierung Mipmaps erstellen"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Zurück zum vorherigen Dia"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Bilddateien"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Bild für die Struktur des Skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Würfel nur transparent, wenn er mit der Maus rotiert wird"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "In Würfel"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Virtueller Standpunkt befindet sich innerhalb des Würfels"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Liste der PNG- und SVG-Dateien, die auf der Oberseite des Würfels angezeigt "
+"werden sollen"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modus für Mehrfachausgabe"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Mehrere Würfel"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Nächstes Dia"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Auf großem Würfel"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opazität bei Rotation"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opazität bei Stillstand"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+"Durchsichtigkeit des Desktop-Hintergrundes während der Rotation des Würfels"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Durchsichtigkeit des Desktop-Hintergrundes bei Stillstand des Würfels"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Fenster auf Würfel platzieren"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Vorheriges Dia"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Skydome anzeigen"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Bild skalieren"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Fenstergröße an Oberseite des Würfels anpassen"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Bestimmt wie der Würfel angezeigt wird, wenn mehrere Ausgabegeräte verwendet "
+"werden"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Endfarbe für Skydome-Verlauf"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Anfangsfarbe für Skydome-Verlauf"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Skydome-Bild"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Geschwindigkeit"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Zeitintervall"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparenz nur bei Maus-Rotation"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Auffalten"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Würfel auffalten"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus-Backend"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Mipmaps für Fensterdekorations-Texturen generieren"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Kommando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekoration für Fenster"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Decorator-Kommandozeile, die ausgeführt wird, wenn nicht bereits ein "
+"Decorator ausgeführt wird"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "X-Versatz des Schlagschattens"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Y-Versatz des Schlagschattens"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Farbe des Schlagschattens"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opazität des Schlagschattens"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Radius des Schlagschattens"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Schattenfarbe"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Schattenversatz X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Schattenversatz Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Schattenopazität"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Schattenradius"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Schatten für Fenster"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Fensterdekoration"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Fensterdekorationen"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Fenster, die dekoriert werden sollen"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Fenster, um die ein Schatten gezeichnet werden soll"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Drehgeschwindigkeit"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Y einschränken"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "\"Normal\" skalierte Fenster"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Ausblendungszeit"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Ausblenden bei Minimieren/Öffnen/Schliessen"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Ausblendgeschwindigkeit"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Ausblendungszeit"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Ausblendeffekt bei Minimieren/Öffnen/Schliessen"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Ausblendeffekt für visuelle Glocke"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Fenster beim Zuordnen einblenden, beim Aufheben der Zuordnung ausblenden"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Ein-/Ausblenden für Fenster"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Fenster ein-/ausblenden"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Visuelle Glocke in Vollbild"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Ausblendeffekt für visuelle Glocke im Vollbildmodus"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Visuelle Glocke"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Fensterausblendgeschwindigkeit"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Fenster, die im Skaliermodus skaliert werden sollen"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Fenster, die ein- und ausgeblendet werden sollen"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Einhängepunkt"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "„Mount point“"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Benutzerbereichs-Dateisystem"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Benutzerbereichs-Dateisystem"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf-Backend"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib-Mainloop-Unterstützung"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Einen Terminalemulator öffnen"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Dialogfeld Ausführen"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Kommandozeile für Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Kommandozeile für Bildschirmfoto"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Hauptmenü anzeigen"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Dialogfeld 'Anwendung ausführen' anzeigen"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Hauptmenü anzeigen"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Bildschirmfoto aufnehmen"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Bildschirmfoto von Fenster aufnehmen"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Kommandozeile für Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Kommandozeile für Fenster-Bildschirmfoto "
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Backend, das einfache Text-Konfigurationsdateien verwendet"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Überwachung von Änderungen an Dateien"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig-Backend"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimierungseffekt"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimierungseffekt für Fenster"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimiergeschwindigkeit"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimierintervall"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Schattenwiderstand"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Schattenwiderstand"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Fenster beim Minimieren und beim Aufheben der Minimierung verformen"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Fenster, die beim Minimieren verformt werden sollen"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Y einschränken"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y-Koordinate auf Arbeitsoberfläche einschränken"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Serverseitige Fensterposition bis zum Ende des Verschiebevorgangs nicht "
+"aktualisieren"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Fensterverschiebung initiieren"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Ökonomisch positionieren"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Fenster verschieben"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Fenster verschieben"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opazität"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Durchsichtigkeit der Fenster beim Verschieben"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Beim Ziehen Einrasten und Maximierung maximierter Fenster aufheben"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Einrasten maximierter Fenster aufheben"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Fensterverschiebung starten"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Helligkeit"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Helligkeit"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Helligkeit"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Helligkeit"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Deckkraft verringern"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Deckkraft erhöhen"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr ""
+"Die Schrittweite für Einstellungen der Opazität/Durchsichtigkeit ändern"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr ""
+"Die Schrittweite für Einstellungen der Opazität/Durchsichtigkeit ändern"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Schrittweite für Opazität"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Durchsichtigkeit der Fenster beim Verschieben"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opazität bei Rotation"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Sättigung"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Sättigung"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Sättigung"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Sättigung"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Fensterdekorationen"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Fenstertypen"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Fenstertypen zuordnen"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Fenstertypen, die an eine bestimmte Position platziert werden sollen"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Fenstertypen, die standardmäßig transparent sein sollen"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Fenstertypen, die an eine bestimmte Position platziert werden sollen"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algorithmus für die Fensterpositionierung"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskadenförmig"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Zentriert"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Fensterverwaltung"
+
+# Sinnvoller Ersatz für "Focus Stealing Prevention"?
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Fenster deren Platzieren erzwungen wird"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Horizontale Viewport-Position"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Fenster platzieren"
+
+#: ../metadata/place.xml.in.h:12
+#, fuzzy
+msgid "Place across all outputs"
+msgstr "Kleineres Ausgabegerät bevorzugen"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Fenster bei Zuordnung ungefähr platzieren"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Platzierungsmodus"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Positionierte Fenster"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Zufällig"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Legt fest, wohin skalierte Fenster platziert werden, wenn mehrere "
+"Ausgabegeräte verwendet werden."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Intelligent"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "Auf allen Ausgabegeräten"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Vertikale Viewport-Position"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Auf Viewport platzierte Fenster"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Fensterplatzierungs-Workarounds"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Fenstertypen, die an eine bestimmte Position platziert werden sollen"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Fenstertypen, die auf einen bestimmten Viewport platziert werden sollen"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Fensterdekorationen"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Workarounds"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X-Position"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Viewport-X-Position"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Horizontale Position"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y-Position"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Viewport-Y-Position"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Vertikale Position"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Plugin für das Laden von Bildern im PNG-Format"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Reguläre Ausdrücke"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+"Ermöglicht die Verwendung von regulären Ausdrücken beim Festlegen von "
+"Fensterregeln."
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Rahmenfarbe"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Für die Modi \"Umriss\" und \"Rechteck\" verwendete Rahmenfarbe."
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Standard-Modus"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Normalerweise für Fensterskalierung verwendeter Modus."
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Füllfarbe"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Im Modus \"Rechteck\" verwendete Füllfarbe."
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Fensterskalierung im Modus \"Normal\" initiieren"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Fensterskalierung im Modus \"Umriss\" initiieren"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Fensterskalierung im Modus \"Rechteck\" initiieren"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Fensterskalierung im Modus \"Strecken\" initiieren"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Fensterskalierung initiieren"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "\"Normal\" skalierte Fenster"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Umriss"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "\"Umriss\"-skalierte Fenster"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rechteck"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "\"Rechteck\"-skalierte Fenster"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Fenster skalieren"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Fenster skalieren"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Fensterskalierung starten"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Startet Skalierung des Fensters durch Strecken"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Startet traditionelle Skalierung des Fensters"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Startet Skalierung des Fensters mit Anzeige des Umrisses"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Startet Skalierung des Fensters mit Anzeige eines Rechtecks"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Strecken"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Gestreckt skalierte Fenster"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Fenstertypen, die im Modus \"Normal\" skaliert werden sollen"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Fenstertypen, die im Modus Umriss\" skaliert werden sollen"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Fenstertypen, die im Modus \"Rechteck\" skaliert werden sollen"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Fenstertypen, die im Modus \"Strecken\" skaliert werden sollen"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "An Rand wechseln (Ziehen und Ablegen)"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "An Rand wechseln (Verschieben)"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "An Rand wechseln (Zeiger)"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Wechselzeit"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Zum linken Viewport wechseln und Zeiger verzerren"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Zum nächsten Viewport wechseln, wenn Objekt an den Bildschirmrand gezogen "
+"wird"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Zum nächsten Viewport wechseln, wenn Zeiger an den Bildschirmrand verschoben "
+"wird"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Zum nächsten Viewport wechseln, wenn Fenster an den Bildschirmrand "
+"verschoben wird"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Zum rechten Viewport wechseln und Zeiger verzerren"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Y-Achse für Zeigerbewegung umkehren"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Y umkehren für Zeiger"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Zeigerempfindlichkeit"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Während des Drehens anheben"
+
+#: ../metadata/rotate.xml.in.h:17
+#, fuzzy
+msgid "Raise window when rotating"
+msgstr "Fenster während des Drehens anheben"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Würfel drehen"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Drehen (nach links kippen)"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Drehen (nach rechts kippen)"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Links drehen"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Links drehen mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Rechts drehen"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Rechts drehen mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Drehen in Richtung"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Drehen zu Fläche 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Drehen zu Fläche 1 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Drehen zu Fläche 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Drehen zu Fläche 10 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Drehen zu Fläche 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Drehen zu Fläche 11 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Drehen zu Fläche 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Drehen zu Fläche 12 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Drehen zu Fläche 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Drehen zu Fläche 2 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Drehen zu Fläche 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Drehen zu Fläche 3 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Drehen zu Fläche 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Drehen zu Fläche 4 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Drehen zu Fläche 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Drehen zu Fläche 5 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Drehen zu Fläche 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Drehen zu Fläche 6 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Drehen zu Fläche 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Drehen zu Fläche 7 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Drehen zu Fläche 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Drehen zu Fläche 8 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Drehen zu Fläche 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Drehen zu Fläche 9 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Würfel drehen"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Desktop-Würfel drehen"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Links drehen"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Links drehen und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Rechts drehen"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Rechts drehen und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Drehen zu Fläche 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Drehen zu Fläche 1 mit Fenster"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Drehen zu Fläche 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Drehen zu Fläche 1 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Drehen zu Fläche 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Drehen zu Fläche 10 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Drehen zu Fläche 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Drehen zu Fläche 11 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Drehen zu Fläche 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Drehen zu Fläche 12 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Drehen zu Fläche 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Drehen zu Fläche 2 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Drehen zu Fläche 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Drehen zu Fläche 3 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Drehen zu Fläche 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Drehen zu Fläche 4 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Drehen zu Fläche 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Drehen zu Fläche 5 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Drehen zu Fläche 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Drehen zu Fläche 6 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Drehen zu Fläche 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Drehen zu Fläche 7 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Drehen zu Fläche 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Drehen zu Fläche 8 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Drehen zu Fläche 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Drehen zu Fläche 9 und aktives Fenster mitführen"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "In Richtung Viewport drehen"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Fenster drehen"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Mit Fenster drehen"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Drehbeschleunigung"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Drehgeschwindigkeit"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Drehintervall"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Zoom während des Drehens"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Empfindlichkeit bei Zeigerbewegung"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Würfeldrehung an Unterseite einrasten"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Würfeldrehung an Oberseite einrasten"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "An Unterseite einrasten"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "An Oberseite einrasten"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Drehung starten"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Zeitüberschreitung vor Viewport-Wechsel"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Durchlässigkeitsgrad in Prozent"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Groß"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Auf den Desktop klicken um ihn anzuzeigen"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Hintergrund abdunkeln"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Hintergrund beim Skalieren von Fenstern abdunkeln"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblem"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Verweildauer"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Fensterauswahl initiieren"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Fensterauswahl für alle Fenster initiieren"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Fensterauswahl für Fenstergruppe initiieren"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Fensterauswahl für Fenster in aktueller Ausgabe initiieren"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Layout durchführen und mit der Umformung aller Fenster beginnen"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Layout durchführen und mit der Umformung der Fenstergruppe beginnen"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Layout erstellen und mit Fensterumformung beginnen"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+"Layout durchführen und mit der Umformung der Fenster in aktueller Ausgabe "
+"beginnen"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Auf allen Ausgabegeräten"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Auf momentanem Ausgabegerät"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Symbol überlagern"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Fenster nach Skalierung mit Symbol überlagern"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Skalieren"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Fenster skalieren"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Skaliergeschwindigkeit"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Skalierzeitintervall"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Fenster skalieren"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Legt fest, wohin skalierte Fenster platziert werden, wenn mehrere "
+"Ausgabegeräte verwendet werden."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Abstand zwischen Fenstern"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Abstand"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Zeit (in ms) bis zum Beenden des Skaliermodus beim Verweilen über einem "
+"Fenster"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Fenster, die im Skaliermodus skaliert werden sollen"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Bildschirmfoto automatisch mit dieser Anwendung öffnen"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Verzeichnis"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Start der Auswahl des aufzunehmenden Rechtecks"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Anwendung starten"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Bildschirmfoto in diesem Verzeichnis speichern"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Bildschirmfoto"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Plugin, mit dessen Hilfe Bildschirmfotos aufgenommen werden können"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Plugin für das Laden von Bildern im SVG-Format"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Helligkeitsgrad in Prozent"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Sättigungsgrad in Prozent"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Anwendungs-Umschalter"
+
+# Übersetzung ist nicht 1:1, beschreibt aber genau das, was passiert ;-)
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automatisch Arbeitsfläche wechseln"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "In den Vordergrund verschieben"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Ausgewähltes Fenster in den Vordergrund verschieben"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Distance-Desktop sollte beim Umschalten zwischen Fenstern verkleinert sein"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icon"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimiert"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Desktop-Fläche"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Nächstes Fenster"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Nächstes Fenster (Alle Arbeitsflächen)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Nächstes Fenster (Keine Vorschau)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Vorschaufenster anzeigen und nächstes Fenster auswählen"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Vorschaufenster anzeigen und nächstes Fenster (von allen Arbeitsflächen) "
+"auswählen"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Vorschaufenster anzeigen und vorheriges Fenster auswählen"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Vorschaufenster anzeigen und vorheriges Fenster (von allen Arbeitsflächen) "
+"auswählen"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Vorheriges Dia"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Vorheriges Fenster"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Vorheriges Fenster (Alle Arbeitsflächen)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Vorheriges Fenster (Keine Vorschau)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+"Während des Umschaltens zur Arbeitsfläche des selektierten Fensters wechseln."
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Nächstes Fenster auswählen"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Nächstes Fenster auswählen, ohne dabei das Vorschaufenster anzuzeigen."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Vorheriges Fenster auswählen"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+"Vorheriges Fenster auswählen, ohne dabei das Vorschaufenster anzuzeigen."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Neben Miniaturbild Symbol anzeigen"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Minimierte Fenster anzeigen"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Schaltergeschwindigkeit"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Schalterzeitintervall"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Fenster in Umschaltauswahl"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Fenster, die beim Umschalten auswählbar sein sollen."
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Stellt YV12-Farbraum-Unterstützung zur Verfügung."
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Video Wiedergabe"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Video Wiedergabe"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12-Farbraum"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Linie hinzufügen"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Punkt hinzufügen"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Wassereffekte zu verschiedenen Aktionen des Desktops hinzufügen"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Verzögerung (in ms) zwischen den einzelnen Regentropfen"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Wassereffekte für Mauszeiger aktivieren"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linie"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Versatz-Skalierung"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punkt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Regenverzögerung"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Titelwelle"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Regen ein/aus"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Regeneffekt ein/aus"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Wischer ein-/ausschalten"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Wischereffekt ein-/ausschalten"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Wassereffekt"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Wasser-Versatz-Skalierung"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Welleneffekt aus Fenstertitel"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Effekt fokussieren"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Fenstereffekt fokussieren"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Fenstertypen fokussieren"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Reibung"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Fenstertypen aufnehmen"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Gitterauflösung"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Invertiertes Einrasten von Fenstern"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Fenster zittern lassen"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Effekt zuordnen"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Fenstereffekt zuordnen"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Fenstertypen zuordnen"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Effekt maximieren"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimale Gittergröße"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimale Gittergröße"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Fenster verschieben"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Zittern"
+
+# 52895 AttribValues/label
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Einrasten invertiert"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Fenster einrasten"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Reibung"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Spring K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Federkonstante"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Einrasten von Fenstern ein/aus"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Federmodell für Fenster-Wackeleffekt verwenden"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Auflösung des Gitters"
+
+#: ../metadata/wobbly.xml.in.h:26
+#, fuzzy
+msgid "Windows that should wobble when focused"
+msgstr "Fenstertypen, die beim Erhalt des Fokus wackeln sollen"
+
+#: ../metadata/wobbly.xml.in.h:27
+#, fuzzy
+msgid "Windows that should wobble when grabbed"
+msgstr "Fenstertypen, die bei Aufnahme wackeln sollen"
+
+#: ../metadata/wobbly.xml.in.h:28
+#, fuzzy
+msgid "Windows that should wobble when mapped"
+msgstr "Fenstertypen, die beim Zuordnen wackeln sollen"
+
+#: ../metadata/wobbly.xml.in.h:29
+#, fuzzy
+msgid "Windows that should wobble when moved"
+msgstr "Fenstertypen, die beim Verschieben wackeln sollen"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Wackeleffekt beim Maximieren/Aufheben der Maximierung von Fenstern"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Wackelige Fenster"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Linearer Filter"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "In Vergrößerung linearen Filter verwenden"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Desktop zoomen"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Ansicht vergrößern"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Ansicht verkleinern"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Ansicht verschieben"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoomgeschwindigkeit"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Zoomintervall"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Desktop-Würfel zoomen und schwenken"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Zoomfaktor"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Ansicht verschieben"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Kommandozeile 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Befehl 1 ausführen"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Kommandozeile für Bildschirmfoto"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Kommandozeile für Bildschirmfoto"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Fensterdeckkraft verringern"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Fensterdeckkraft erhöhen"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "Wert der Opazität für grundsätzlich transluzente Fenster"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Opazitätswert"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Transluzente Fenster"
+
+#~ msgid "Background Images"
+#~ msgstr "Hintergrundbilder"
+
+#~ msgid "Background images"
+#~ msgstr "Hintergrundbilder"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Fenster auf einer Fläche platzieren"
+
+#~ msgid "Plane Down"
+#~ msgstr "Nach unten"
+
+#~ msgid "Plane Left"
+#~ msgstr "Nach links"
+
+#~ msgid "Plane Right"
+#~ msgstr "Nach rechts"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Zu Arbeitsfäche 1 wechseln"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Zu Arbeitsfäche 10 wechseln"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Zu Arbeitsfäche 11 wechseln"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Zu Arbeitsfäche 12 wechseln"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Zu Arbeitsfäche 2 wechseln"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Zu Arbeitsfäche 3 wechseln"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Zu Arbeitsfäche 4 wechseln"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Zu Arbeitsfäche 5 wechseln"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Zu Arbeitsfäche 6 wechseln"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Zu Arbeitsfäche 7 wechseln"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Zu Arbeitsfäche 8 wechseln"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Zu Arbeitsfäche 9 wechseln"
+
+#~ msgid "Plane Up"
+#~ msgstr "Nach oben"
+
+#~ msgid "Plane down"
+#~ msgstr "Nach unten"
+
+#~ msgid "Plane left"
+#~ msgstr "Nach links"
+
+#~ msgid "Plane right"
+#~ msgstr "Nach rechts"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Zu Arbeitsfäche 1 wechseln"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Zu Arbeitsfäche 10 wechseln"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Zu Arbeitsfäche 11 wechseln"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Zu Arbeitsfäche 12 wechseln"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Zu Arbeitsfäche 2 wechseln"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Zu Arbeitsfäche 3 wechseln"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Zu Arbeitsfäche 4 wechseln"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Zu Arbeitsfäche 5 wechseln"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Zu Arbeitsfäche 6 wechseln"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Zu Arbeitsfäche 7 wechseln"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Zu Arbeitsfäche 8 wechseln"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Zu Arbeitsfäche 9 wechseln"
+
+#~ msgid "Plane up"
+#~ msgstr "Nach oben"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Dauer der Fensterausblendung"
+
+#~ msgid "Open window menu"
+#~ msgstr "Fenstermenü öffnen"
+
+#~ msgid "Dock"
+#~ msgstr "Andocken"
+
+#~ msgid "Toolbar"
+#~ msgstr "Werkzeugleiste"
+
+#~ msgid "Menu"
+#~ msgstr "Menü"
+
+#~ msgid "Utility"
+#~ msgstr "Dienstprogramm"
+
+#~ msgid "Splash"
+#~ msgstr "Splash"
+
+#~ msgid "Dialog"
+#~ msgstr "Dialogfeld"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "DropdownMenu"
+
+#~ msgid "PopupMenu"
+#~ msgstr "PopupMenu"
+
+#~ msgid "Tooltip"
+#~ msgstr "Kurzinfo"
+
+#~ msgid "Notification"
+#~ msgstr "Benachrichtigung"
+
+#~ msgid "Combo"
+#~ msgstr "Combo"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "ModalDialog"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Vollbild"
+
+#~ msgid "Unknown"
+#~ msgstr "Unbekannt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 10 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 1 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 10 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 11 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 2 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 3 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 4 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 5 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 6 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 7 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 8 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Eine Tastenbelegung, die den durch Befehl 9 festgelegten Shell-Befehl "
+#~ "ausführt"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Helligkeitsgrad in Prozent"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Durchlässigkeitsgrad in Prozent"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Sättigungsgrad in Prozent"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Sättigung"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Verzögerung (in ms) zwischen den einzelnen Regentropfen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr ""
+#~ "Distance-Desktop sollte beim Umschalten zwischen Fenstern verkleinert sein"
+
+#~ msgid "Do not modify"
+#~ msgstr "Nicht ändern"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Drop-Shadow-X-Offset"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Drop-Shadow-Y-Offset"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Drop-Shadow-Durchlässigkeit"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Drop-Shadow-Radius"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Fenstereffekt fokussieren (Keiner, Zittern)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Vorheriges Fenster auswählen"
+
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Faltbeschleunigung (1,0-20,0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Faltgeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Falt-Zeitintervall (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Russische Föderation"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Russisch"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Zeitintervall vor Verlagern der ausgewählten Fenster"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Layout durchführen und mit der Umformung der Fenster in aktueller Ausgabe "
+#~ "beginnen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Fenstereffekt zuordnen (Keiner, Zittern)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Minimiergeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Minimiergeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Minimale Gittergröße"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Anzahl der virtuellen Desktops"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Änderungsschritt für Durchlässigkeit"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Durchlässigkeitsgrad beweglicher Fenster"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Durchlässigkeitsgrad beweglicher Fenster"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Fenster nach Skalierung mit Symbol überlagern"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Plugins, die zuvor geladen werden müssen"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Erforderliche Plugins"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Popup-Schalter, wenn nicht sichtbar, und von allen Fenstern nächstes "
+#~ "Fenster auswählen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Popup-Schalter, wenn nicht sichtbar, und von allen Fenstern nächstes "
+#~ "Fenster auswählen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Popup-Schalter, wenn nicht sichtbar, und von allen Fenstern vorheriges "
+#~ "Fenster auswählen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Popup-Schalter, wenn nicht sichtbar, und von allen Fenstern vorheriges "
+#~ "Fenster auswählen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Faltbeschleunigung (1,0-20,0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Zoomgeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Zoom-Zeitintervall (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Skaliergeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Skalier-Zeitintervall (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "Bildschirmgrößenmultiplikator für horizontale virtuelle Größe"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Bildschirmgrößenmultiplikator für vertikale virtuelle Größe"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Empfindlichkeit bei Zeigerbewegung"
+
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Schattenwiderstand (0-100)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Abstand zwischen Fenstern"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Reibung"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Federkonstante"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Skaliergeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Skalier-Zeitintervall (0,1-50,0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Texturfilter (Schnell, Gut, Beste)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "Rate des Bildschirmneuaufbaus (Häufigkeit/Sekunde)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Zeit (in ms) bis zum Beenden des Skaliermodus beim Verweilen über einem "
+#~ "Fenster"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Zeitüberschreitung vor Viewport-Wechsel"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "In Vergrößerung linearen Filter verwenden"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Auflösung des Gitters"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Wasser-Versatz-Skalierung"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Fensterausblendgeschwindigkeit"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Fensterausblendgeschwindigkeit"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Fenstertypen, die ausgeblendet werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Fenstertypen, die ausgeblendet werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Fenstertypen, die ausgeblendet werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Fenstertypen, die ausgeblendet werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Fenstertypen, die im Skaliermodus skaliert werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Fenstertypen, die im Schalter angezeigt werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Fenstertypen, die beim Minimieren umgeformt werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Fenstertypen, die ausgeblendet werden sollen"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Fenstertypen, die beim Erhalt des Fokus wackeln sollen"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Fenstertypen, die bei Aufnahme wackeln sollen"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Fenstertypen, die beim Zuordnen wackeln sollen"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Fenstertypen, die beim Verschieben wackeln sollen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Ecken, die Skalierungsmodus auslösen sollten (links oben, rechts oben, "
+#~ "links unten, rechts unten)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Zoomgeschwindigkeit (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Zoom-Zeitintervall (0,1-50,0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Zoomfaktor"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "In Richtung %d drehen"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "In Richtung %d drehen"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "In Richtung %d drehen (mit Fenster)"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "In Richtung %d drehen (mit aktivem Fenster)"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "In Richtung %d drehen"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "In Richtung %d drehen"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "In Richtung %d drehen (mit Fenster)"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "In Richtung %d drehen (mit aktivem Fenster)"
+
+#~ msgid "Command line %d"
+#~ msgstr "Kommandozeile %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr ""
+#~ "Kommandozeile, die beim Aufruf von Kommando 'run_command%d' in Shell "
+#~ "ausgeführt werden soll"
+
+#~ msgid "Run command %d"
+#~ msgstr "Kommando %d ausführen"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr ""
+#~ "Eine Tastenzuordnung, bei deren Aktivierung das durch Kommando %d "
+#~ "identifizierte Shell-Kommando ausgeführt wird"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Fenstertypen verschieben"
+
+#~ msgid "Corners"
+#~ msgstr "Ecken"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "Fenster fokussieren, wenn sich der Mauszeiger darüber befindet"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "Alle Fenster initiieren"
+
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "Fensterverschiebung via Tastatur initiieren"
+
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "Fensterskalierung via Tastatur initiieren"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "Fenster-Switcher initiieren"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "Modifikator zur Anzeige des Switcher für alle Fenster"
+
+#~ msgid "Return from scale view"
+#~ msgstr "Zurück aus Skalierungsansicht"
+
+#~ msgid "Show switcher"
+#~ msgstr "Switcher anzeigen"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "Verzögerter Fokus"
+
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Fensterverschiebung via Tastatur starten"
+
+#~ msgid "Terminate"
+#~ msgstr "Beenden"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "Wassereffekt für System-Warnton"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die ein-/ausgeblendet werden sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die beim Minimieren umgeformt werden sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die im Skaliermodus skaliert werden sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die im Switcher angezeigt werden sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die beim Erhalt des Fokus wackeln sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die bei Aufnahme wackeln sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die beim Anzeigen wackeln sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Fenstertypen, die beim Verschieben wackeln sollen (Desktop, Dock, "
+#~ "Symbolleiste, Menü, Dienstprogramm, Splash, Dialog, ModalDialog, Normal, "
+#~ "Vollbild, Unbekannt)"
+
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "Wackeleffekt für System-Warnton"
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..6f6da6a
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,3399 @@
+# Compiz Core Greek Translation.
+# Copyright (C) 2007 compiz-fusion.org
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the Compiz package.
+# Δημήτρης (djdoo) <jimdusis@yahoo.gr>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz 0.6.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-09-03 05:45+0200\n"
+"Last-Translator: Jim Dusis <jimdusis@yahoo.gr>\n"
+"Language-Team: Greek <jimdusis@yahoo.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Επιφάνεια εργασίας"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Διαχείρηση Παραθύρου"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Κανένα"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Σκίαση"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Μεγιστοποίησε"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Μεγιστοποίηση Παραθύρου Οριζόντια"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Μεγιστοποίηση Παραθύρου Κάθετα"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Ελαχιστοποιημένο"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Αυτόματη Ανύψωση"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Χαμηλό"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Μενού Παραθύρου"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Ενέργεια που θα λάβει χώρα όταν περιστρέφετε τη ρόδα του ποντικιού πάνω σε "
+"μια μπάρα τίτλου ενός παραθύρου."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Είδος θολώματος"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Αδιαφάνεια θέματος ενεργού παραθύρου του Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Σκίαση αδιαφάνειας θέματος ενεργού παραθύρου του Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Αδιαφάνεια θέματος του Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Σκίαση αδιαφάνειας θέματος του Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Αδιαφάνεια για χρήση στα ενεργά παράθυρα με θέματα διακοσμήσεων του metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Αδιαφάνεια για χρήση στα θέματα διακοσμήσεων του metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Σκίαση ενεργών παραθύρων με θέματα διακοσμήσεων του metacity από αδιαφανές "
+"σε διάφανο"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Σκίαση παραθύρων με θέματα διακοσμήσεων του metacity από αδιαφανές σε διάφανο"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Ενέργεια ρόδας ποντικιού στην μπάρα τίτλου"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Είδος θολώματος για χρήση στις διακοσμήσεις παραθύρων"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Χρήση θέματος του metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+"Χρήση θέματος του metacity όταν ζωγραφίζονται οι διακοσμήσεις παραθύρων"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Κλείσιμο Παραθύρου"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Απομεγιστοποίηση Παραθύρου"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Μεγιστοποίηση Παραθύρου"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Ελαχιστοποίηση Παραθύρου"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Επικάλυψη"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Καρφίτσωμα"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Αποσκίαση"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Μη Επικάλυψη"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Ξεκαρφίτσωμα"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Το παράθυρο \"%s\" δεν ανταποκρίνεται."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Ο εξαναγκασμός αυτής της εφαρμογής να τερματιστεί θα προκαλέσει απώλεια των "
+"μη σωσμένων αλλαγών."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Εξαναγκασμός Τερματισμού"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Επισημείωση"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Χρώμα Γεμίσματος Επισημείωσης"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Χρώμα Πινελιάς Επισημείωσης"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Πρόσθετο επισημείωση"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Καθάρισμα"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Σχεδίαση"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Σχεδίαση με εργαλείο"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Γέμισμα χρώματος για επισημειώσεις"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Εκκίνηση"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Εκκίνηση ζωγραφίσματος επισημείωσης"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Εκκίνηση σβησίματος επισημείωσης"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Εκκίνηση σβησίματος"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Πλάτος γραμμής"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Πλάτος γραμμής για επισημειώσεις"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Χρώμα πινελιάς για επισημειώσεις"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Πλάτος πινελιάς"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Πλάτος πινελιάς για επισημειώσεις"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Θόλωμα Άλφα"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Θόλωμα άλφα παραθύρων"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Φίλτρο Θολώματος"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Φράξιμο Θολώματος"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Κορεσμός Θολώματος"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Ταχύτητα Θολώματος"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Θόλωμα Παραθύρων"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Θόλωμα πίσω απ τα διάφανα τμήματα των παραθύρων"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Κορεσμός θολώματος"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Θόλωμα παραθύρων"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Θόλωμα μη εστιασμένων παραθύρων"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Απενεργοποίηση του θολώματος των περιοχών που καλυπτονται απο άλλα παραθυρα"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Μέθοδος φιλταρίσματος που χρησιμοποιείται για θόλωμα"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Θόλωμα εστίασης"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Θόλωμα εστίασης"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussian"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Ακτίνα Gaussian"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Ισχύς Gaussian"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Ακτίνα gaussian"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Ισχύς gaussian"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Τέχνασμα ανεξάρτητης υφής"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "ΕΛ Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Επίπεδο-λεπτομέρειας mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Παλμός"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Εφέ παλμού"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Χρήση των διαθέσιμων μονάδων υφών για πραγματοποίηση όσο το δυνατό "
+"περισσότερων τεχνασμάτων ανεξάρτητης υφής."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Ταχύτητα θολώματος παραθύρων"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Παράθυρα που πρέπει να επηρεαστούν απο το θολωμα εστίασης"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Παράθυρα που πρέπει να χρησιμοποιήσουν ως προεπιλογή το θόλωμα αλφα"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Αποτέλεσμα Εξόδου Κλωνοποίησης"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Εκκίνηση επιλογής κλωνοποίησης"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Χειριστής αποτελέσματος εξόδου κλωνοποίησης"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Ένας συνδυασμός πλήκτρων που όταν επικαλεσθεί, θα τρέξει την εντολή κέλυφους "
+"αναγνωρισμένη ως εντολή9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Γραμμή εντολών 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Γραμμή εντολών 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Γραμμή εντολών 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Γραμμή εντολών 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Γραμμή εντολών 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Γραμμή εντολών 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Γραμμή εντολών 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Γραμμή εντολών 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Γραμμή εντολών 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Γραμμή εντολών 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Γραμμή εντολών 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Γραμμή εντολών 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Γραμμή εντολών για εκτέλεση σε κέλυφος όταν επικαλεσθεί το τρέξιμο_εντολής9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Εντολή"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Τρέξιμο εντολής 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Τρέξιμο εντολής 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Τρέξιμο εντολής 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Τρέξιμο εντολής 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Τρέξιμο εντολής 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Τρέξιμο εντολής 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Τρέξιμο εντολής 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Τρέξιμο εντολής 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Τρέξιμο εντολής 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Τρέξιμο εντολής 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Τρέξιμο εντολής 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Τρέξιμο εντολής 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Ενεργά Πρόσθετα"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Επέτρεψε τη σχεδίαση πλήρους οθόνης παραθύρων να μην επανακατευθύνονται στα "
+"εκτός οθόνης pixmaps"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Ηχητικό Καμπανάκι"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Ηχητικό μπιπ συστήματος"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Αυτόματη Ανύψωση"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Καθυστέρηση Αυτόματης Ανύψωσης"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Αυτόματος εντοπισμός των συσκευών εξόδου"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Αυτόματος εντοπισμός του ρυθμού ανανέωσης"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Βέλτιστο"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Κλικ Για Εστίαση"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Κλικ σε παράθυρο μεταφέρει την εστίαση εισόδου σε αυτό"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Κλείσιμο ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Προεπιλεγμένο Εικονίδιο"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Προεπιλεγμένη εικόνα εικονιδίου παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Κύβος Επιφάνειας Εργασίας"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Ανίχνευση Εξόδων"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Ανίχνευση Ρυθμού Ανανέωσης"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Διάρκεια χρόνου που πρέπει ο δείκτης του ποντικιού να παραμείνει σε μια "
+"γωνία της οθόνης πριν η ενέργεια που έχει οριστεί σ αυτή την άκρη να "
+"πραγματοποιηθεί."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Καθυστέρηση Διακόπτη 'Ακρης"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Γρήγορο"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Εστίαση Προληπτικού Επιπέδου"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Εστίαση Προστατευμένων Παραθύρων"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Εστίαση προστατευμένων παραθύρων"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Εξαναγκασμός ανεξάρτητης απεικόνισης."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Γενικές Επιλογές"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Γενικές επιλογές του compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Καλό"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Απόκρυψη Αγνοημένων Παραθύρων Γραμμής Εργασιών"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Απόκρυψη όλων των παραθύρων και εστίαση στην επιφάνεια εργασίας"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Απόκρυψη παραθύρων που δεν βρίσκονται στην γραμμή εργασιων κατα την μετάβαση "
+"στην κατάσταση εμφάνισης επιφάνειας εργασίας"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Υψηλό"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Οριζόντιο Εικονικό Μέγεθος"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Εαν είναι διαθέσιμο χρήση συμπίεσης για υφές που έχουν προέλθει από εικόνες"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Αγνόηση Υποδείξεων Στη Μεγιστοποίηση"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Αγνόηση αύξησης μεγέθους και υποδείξεων αναλογίας όταν το παράθυρο "
+"μεγιστοποιείται"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Διάστημα πριν την ανύψωση των επιλεγμένων παραθύρων"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Διάστημα μεταξύ των μηνυμάτων ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Επίπεδο αποφυγής απόσπασης εστίασης"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Φωτισμός"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Λίστα των τρέχοντων ενεργών προσθέτων"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Λίστα με προσδιοριστικά στρινγκ για τις συσκευές εξόδου"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Χαμηλό"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Κατέβασμα Παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Κατέβασμα παραθύρου κάτω απ τα άλλα παράθυρα"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Μεγιστοποίηση Παραθύρου Οριζόντια"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Μεγιστοποίηση Παραθύρου Κάθετα"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Μεγιστοποίηση ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Μεγιστοποίηση ενεργού παραθύρου οριζόντια"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Μεγιστοποίηση ενεργού παραθύρου κάθετα"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Ελαχιστοποίηση ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Κανονική"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Αριθμός Επιφανειών Εργασίας"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Αριθμός ψεύτικων επιφανειών εργασίας"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Κλειστό"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Πραγματοποίηση ανανεώσεων οθόνης μόνο κατα τη διάρκεια της κάθετης "
+"περιοδικής ανανέωσης"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Αποτελέσματα-Εξοδοι"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Καθυστέρηση Ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Προτίμηση μεγαλύτερης απεικόνισης"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Προτίμηση μικρότερης απεικόνισης"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Ανύψωση Με Κλικ"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Ανύψωση Παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Ανύψωση επιλεγμένων παραθύρων μετα απ το διάστημα"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Ανύψωση παραθύρου πάνω απ τα άλλα παράθυρα"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Ανύψωση παραθύρων όταν κλικαριστούν"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Ρυθμός Ανανέωσης"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Πολλαπλασιαστής μεγέθους οθόνης για οριζόντιο εικονικό μέγεθος"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Πολλαπλασιαστής μεγέθους οθόνης για κάθετο εικονικό μέγεθος"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Εμφάνιση Επιφάνειας Εργασίας"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Αργές Γραφικές Απεικονίσεις"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Έξυπνη κατάσταση "
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Συγχρονισμός Στην Καθετη Ανανέωση"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Συμπίεση υφών"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Φίλτρο Υφών"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Φιλτράρισμα υφών"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Ο ρυθμός κατα τον οποίο η οθόνη επανασχεδιάζεται (φορές/δευτερόλεπτο)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Εκκίνηση Μεγιστοποίησης Παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Εκκίνηση Μεγιστοποίησης Παραθύρου Οριζόντια"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Εκκίνηση Μεγιστοποίησης Παραθύρου Κάθετα"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Εκκίνηση Σκίασης Παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Εκκίνηση μεγιστοποίησης ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Εκκίνηση μεγιστοποίησης ενεργού παραθύρου οριζόντια"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Εκκίνηση μεγιστοποίησης ενεργού παραθύρου κάθετα"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Εκκίνηση σκίασης ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Εκκίνηση της χρήσης των αργών γραφικών απεικονίσεων"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Απομεγιστοποίηση ενεργού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Μη-επανακατεύθυνση Παραθύρων Πλήρους Οθόνης"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Χρήση διάχυτου φωτός όταν η οθόνη μεταμορφώνεται"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Κάθετο Εικονικό Μέγεθος"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Πολύ Υψηλό"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Συνδυασμός κουμπιών μενού παραθύρου"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Συνδυασμός πλήκτρων μενού παραθύρου"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Επιτάχυνση"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ρύθμιση Εικόνας"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ρύθμιση εικόνας πάνω όψης για περιστροφή"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Προχώρημα στο επόμενο σλάιντ"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Κίνηση Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Κίνηση skydome όταν περιστρέφεται ο κύβος"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Αυτόματα"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Χρώμα των πάνω κ κάτω πλευρών του κύβου"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Χρώμα για χρήση με το κάτω στοπ-χρώματος της διαβάθμισης του skydome-fallback"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Χρώμα για χρήση με το κορυφαίο στοπ-χρώματος της διαβάθμισης του skydome-"
+"fallback"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Χρώμα Κύβου"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Χρώμα Κύβου"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Κύβος Επιφάνειας Εργασίας"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Επιτάχυνση Διπλώματος"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Ταχύτητα Διπλώματος"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Χρονικό Βήμα Διπλώματος"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Δημιουργία mipmaps όταν γίνεται για ανώτερη ποιότητα κλιμάκωσης"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Πήγαινε πίσω στο προηγούμενο σλάιντ"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Αρχεία εικόνας"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Εικόνα για χρήση ως υφή για το skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Εκκινεί την διαφάνεια του Κύβου μόνο όταν η περιστροφή οδηγηθεί από το "
+"ποντίκι"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Εσωτερικός Κύβος"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Εσωτερικός κύβος"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Λίστα από αρχεία PNG και SVG που πρέπει να εμφανίζονται στην πάνω όψη του "
+"κύβου"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Kατάσταση Πολλαπλών Οθονών"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Πολλαπλοί κύβοι"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Απόμενο Σλάιντ"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Ένας μεγάλος κύβος"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Αδιαφάνεια Kατα την Περιστροφή"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Αδιαφάνεια Όταν Δεν Γίνεται Περιστροφή"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Αδιαφάνεια του παραθύρου στην επιφάνεια εργασίας κατα την περιστροφή."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+"Αδιαφάνεια του παραθύρου στην επιφάνεια εργασίας όταν δεν γίνεται περιστροφή."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Τοποθέτηση παραθύρων στον κύβο"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Προηγούμενο Σλάιντ"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Εμφάνιση skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Κλιμάκωση εικόνας"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Κλιμάκωση εικόνων για κάλυψη της πάνω όψης του κύβου"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Επιλεγει το πως ο κύβος θα εμφανίζεται εαν χρησιμοποιηθούν πολλαπλές οθόνες."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Τελικό Χρώμα Διαβάθμισης Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Αρχικό Χρώμα Διαβάθμισης Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Εικόνα Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Ταχύτητα"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Χρονικό Βήμα"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Διαφάνεια Μόνο στην Περιστροφή με το Ποντίκι"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Ξεδίπλωμα"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Ξεδίπλωμα κύβου"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Κύρια Εφαρμογή Ελέγχου του Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Επιτρέπει στα mipmaps να δημιουργούνται για υφές διακοσμήσεων"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Εντολή"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Διακοσμήσεις παραθύρων"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Γραμμή εντολών διακοσμητή που θα εκτελείται αν κανένας διακοσμητής δεν "
+"τρέχει ήδη"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Απόρριψη μετάθεσης αρχής σκιάς Χ"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Απόρριψη μετάθεσης αρχής σκιάς Υ"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Απόρριψη χρώματος σκιάς"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Απόρριψη αδιαφάνειας σκιάς"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Απόρριψη ακτίνας σκιάς"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Χρώμα Σκιάς"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Μετάθεση Αρχής X της Σκιάς"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Μετάθεση Αρχής Υ της Σκιάς"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Αδιαφάνεια Σκιάς"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Ακτίνα Σκιάς"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Παράθυρα με σκιά"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Διακοσμησή Παραθύρου"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Διακοσμήσεις παραθύρου"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Παράθυρα που πρέπει να διακοσμηθούν"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Παράθυρα που πρέπει να έχουν σκιά"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Φωτεινότητα (σε %) των μη-ανταποκρινόμενων παραθύρων"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Σταθερή ταχύτητα"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Σταθερός χρόνος"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Σκοτείνιασμα Μη-Ανταποκρινόμενων Παραθύρων"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Σκοτείνιασμα παραθύρων που δεν ανταποκρίνονται στις εντολές του διαχειριστή "
+"παραθύρων"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Είδος Ξεθωριάσματος"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Ξεθώριασμα στο Άνοιγμα/Κλείσιμο/Ελαχιστοποίηση"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Ταχύτητα Ξεθωριάσματος"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Χρόνος Ξεθωριάσματος"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Εφέ ξεθωριάσματος στο άνοιγμα/κλείσιμο/ελαχιστοποίηση παραθύρων"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Εφέ ξεθωριάσματος στο μπίπ συστήματος"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Ξεθώριασμα μέσα παραθύρων όταν χαρτογραφούνται και ξεθώριασμα έξω όταν τα "
+"παράθυρα αποχαρτογραφούνται"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Ξεθώριασμα παραθύρων"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Ξεθωριάζοντας Παράθυρα"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Οπτικό Κουδούνι Πλήρους Οθόνης"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Εφέ ξεθωριάσματος πλήρους οθόνης στο μπίπ συστήματος"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Κορεσμός (σε %) των μη-ανταποκρινόμενων παραθύρων"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Φωτεινότητα Μη-Ανταποκρινόμενων Παραθύρων"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Κορεσμός Μή-Ανταποκρινόμενων Παραθύρων"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Οπτικό Κουδούνι"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Είδος ξεθωριάσματος παραθύρου"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Ταχύτητα ξεθωριάσματος παραθύρου στην κατάσταση \"Σταθερής ταχύτητας\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+"Χρόνος ξεθωριάσματος παραθύρου (σε ms) στην κατάσταση \"Σταθερής Ταχύτητας\""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Παράθυρα που πρέπει να ξεθωριάζουν"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Σημείο Προσάρτησης"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Σημείο προσάρτησης"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Σύστημα Αρχείων Userspace"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Σύστημα αρχείων χρήστη"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Κύρια Εφαρμογή Ελέγχου του GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Κύριος βρόγχος υποστήριξης GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Ανοιγμα ενός τερματικού"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Τρέξιμο Διαλόγου"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Γραμμή εντολών τερματικού"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Γραμμή εντολών αρπαγής οθόνης"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Εμφάνιση Κύριου Μενού"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Εμφάνιση διαλόγου Τρεξίματος Εφαρμογής"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Εμφάνιση του κύριου μενού"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Τράβα μια αρπαγή οθόνης"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Τράβα μια αρπαγή οθόνης ενός παραθύρου"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Γραμμή εντολών τερματικού"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Γραμμή εντολών αρπαγής οθόνης παραθύρου"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Εφαρμογή Ελέγχου των Ini Αρχείων"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Πρόσθετο ειδοποίησης αλλαγής αρχείου"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Κύρια Εφαρμογή ελέγχου του KConfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Εφέ Ελαχιστοποίησης"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Ελαχιστοποίηση Παραθύρων"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Ταχύτητα ελαχιστοποίησης"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Χρονικό βήμα ελαχιστοποίησης"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Αντίσταση στη Σκίαση"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Αντίσταση στη σκίαση"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+"Μετατροπή παραθύρων όταν είναι ελαχιστοποιημένα και μή-ελαχιστοποιημένα"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Παράθυρα που θα μετατραπούν οταν ελαχιστοποιηθούν"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Περιορισμός Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Περιορισμός Υ συντεταγμένης στην περιοχή της επιφάνειας εργασίας"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Μην ενημερώνεις την θέση των παραθύρων στoν server μέχρι το τέλος της "
+"μετακίνησης"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Έναρξη Μετακίνησης Παραθύρου"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Οκνηρός Προσδιορισμός Θεσης"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Μετακίνηση Παραθύρου"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Μετακίνηση παραθύρου"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Αδιαφάνεια"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Επίπεδο αδιαφάνειας των παραθύρων που μετακινούνται"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Αρπαγή και αυτομάτως απομεγιστοποίηση μεγιστοποιημένων παραθύρων στο τράβηγμα"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Αρπαγή μεγιστοποιημένων παραθύρων"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Έναρξη μετακίνησης παραθύρου"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Φωτεινότητα"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Φωτεινότητα"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Φωτεινότητα"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Φωτεινότητα"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Φωτεινότητα (σε %) των μη-ανταποκρινόμενων παραθύρων"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Μείωση Αδιαφάνειας"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Αύξηση Αδιαφάνειας"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Αλλαγή βήματος αδιαφάνειας"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Αλλαγή βήματος αδιαφάνειας"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Βήμα Αδιαφάνειας"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Επίπεδο αδιαφάνειας των παραθύρων που μετακινούνται"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Αδιαφάνεια Kατα την Περιστροφή"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Κορεσμός"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Κορεσμός"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Κορεσμός"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Κορεσμός"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Κορεσμός (σε %) των μη-ανταποκρινόμενων παραθύρων"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Διακοσμήσεις παραθύρου"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Τιμές αδιαφάνειας παραθύρων"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Χαρτογράφηση Παραθύρων"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Παράθυρα που πρέπει να τοποθετηθούν εξ' ορισμού"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Παράθυρα που πρέπει να είναι διάφανα εξ' ορισμού"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Παράθυρα που πρέπει να τοποθετηθούν εξ' ορισμού"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Αλγόριθμος για τοποθέτηση των παραθύρων"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Κατταράκτης"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Στο Κέντρο"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Διαχείρηση Παραθύρου"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Εξαναγκασμός Τοποθέτησης Παραθύρων"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Οριζόντιες θέσεις εικονικών επιφανειών εργασίας"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Διατήρηση Στον Χώρο Εργασίας"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Διατήρηση του τοποθετημένου παραθύρου στον χώρο εργασίας, ακόμα κ αν αυτό "
+"σημαίνει οτι η θέση του μπορεί να διαφέρει απο την καθορισμένη του θέση"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Τοποθέτηση Παραθύρων"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Τοποθέτηση παραθύρων στις κατάλληλες θέσεις όταν ταξινομούνται"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Τρόπος τοποθέτησης"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Τοποθετημένα παράθυρα"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Τυχαία"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Επιλέγει το αν τα παράθυρα κλιμακωθούν αν γινει χρήση πολλαπλών συσκευών "
+"εξόδου."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Έξυπνο"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Χρήση της ενεργής συσκευής εξόδου"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Χρήση της συσκευής εξόδου του εστιασμένου παραθύρου"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Χρήση της συσκευής εξόδου με τον δείκτη"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Κάθετες θέσεις εικονικών επιφανειών εργασίας"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Τοποθετημένα παράθυρα στις εικονικές επιφάνειες εργασίας"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Μοντίφες για τοποθέτηση παραθύρων"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Παράθυρα που πρέπει να τοποθετηθούν εξ' ορισμού"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Παράθυρα που θα τοποθετηθούν σε συγκεκριμένες εικονικές επιφάνειες εργασίας "
+"εξ' ορισμού"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Παράθυρα που πρέπει αναγκαστικά να τοποθετηθούν, ακόμα κ αν υποδεικνύουν "
+"στον διαχειριστή παραθύρων οτι πρέπει να αποφύγει να τα τοποθετήσει."
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Διακοσμήσεις παραθύρου"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Μοντίφες"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Θέσεις Χ"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Θέσεις Χ Εικονικών Επιφανειών Εργασίας"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Τιμές θέσης Χ"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Θέσεις Υ"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Θέσεις Υ Εικονικών Επιφανειών Εργασίας"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Τιμές θέσης Υ"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Φορτωτής εικόνων Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Ταίριαγμα Regex"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Ταίριαγμα παραθύρου regex"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Χρώμα Ορίου"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Χρώμα ορίου για τις καταστάσεις μορφοποίησης τετράγωνο και περίγραμμα"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Προκαθορισμένη Κατάσταση Μορφοποίησης"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Προκαθορισμένη κατάσταση για μορφοποιήση παραθύρου"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Χρώμα Γεμίσματος"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Χρώμα για χρήση στην τετράγωνη κατάσταση μορφοποίησης"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Εκκίνηση Κανονικής Μορφοποίησης Παραθύρου"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Εκκίνηση Μορφής Μορφοποίησης Περιγράμματος"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Εκκίνηση Τετράγωνης Μορφής Μορφοποίησης"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Εκκίνηση Μορφής Μορφοποίησης Παραμορφώσεως"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Εκκίνηση Μορφοποίησης Παραθύρου"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Κανονική Μορφοποίηση Παραθύρων"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Περίγραμμα"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Μορφοποίηση Περίγράμματος"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Τετράγωνο"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Τετράγωνη Μορφοποίηση Παραθύρων"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Μορφοποίηση Παραθύρου"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Μορφοποίηση παραθύρου"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Έναρξη μορφοποίησης παραθύρου"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Έναρξη μορφοποίησης παραθύρου παραμορφώνοντάς το"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Έναρξη μορφοποίησης παραθύρου κανονικά"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Έναρξη μορφοποίησης παραθύρου με περίγραμμα"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Έναρξη μορφοποίησης παραθύρου με το τετράγωνο"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Παραμόρφωση"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Μορφοποίηση Παραθύρου με Παραμόρφωση"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Παράθυρα στα οποία θα χρησιμοποιηθεί κανονική μορφοποίηση"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Παράθυρα στα οποία θα χρησιμοποιηθεί μορφοποίηση περιγράμματος"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Παράθυρα στα οποία θα χρησιμοποιηθεί τετραγωνική μορφοποίηση"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Παράθυρα στα οποία θα χρησιμοποιηθεί μορφοποίηση με παραμόρφωση"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Γύρισμα Άκρης DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Γύρισμα Άκρης με Μετακίνηση"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Γύρισμα Άκρης με Δείκτη"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Χρόνος Γυρίσματος"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Γύρισμα στην αριστερή εικονική επιφάνεια εργασίας και τύλιγμα δείκτη"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Γύρισμα στην επόμενη εικονική επιφάνεια εργασίας όταν τραβιέται αντικείμενο "
+"στην άκρη της οθόνης"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Γύρισμα στην επόμενη εικονική επιφάνεια εργασίας όταν μετακινείται ο δείκτης "
+"στην άκρη της οθόνης"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Γύρισμα στην επόμενη εικονική επιφάνεια εργασίας όταν μετακινείται "
+"παράθυροστην άκρη της οθόνης"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Γύρισμα στην δεξιά εικονική επιφάνεια εργασίας και τύλιγμα δείκτη"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Αναστροφή στον Υ άξονα για μετακίνηση του δείκτη"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Αναστροφή Υ Δείκτη"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Ευαισθησία Δείκτη"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Ανύψωση στην περιστροφή"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Ανύψωση παραθύρου στην περιστροφή"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Περιστροφή Κύβου"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Περιστροφή Γύρισμα Αριστερά"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Περιστροφή Γύρισμα Δεξιά"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Περιστροφή Αριστερά"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Περιστροφή Αριστερά με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Περιστροφή Δεξιά"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Περιστροφή Δεξιά με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Περιστροφή Στο"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Περιστροφή Στην Όψη 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Περιστροφή Στην Όψη 1 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Περιστροφή Στην Όψη 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Περιστροφή Στην Όψη 10 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Περιστροφή Στην Όψη 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Περιστροφή Στην Όψη 11 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Περιστροφή Στην Όψη 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Περιστροφή Στην Όψη 12 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Περιστροφή Στην Όψη 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Περιστροφή Στην Όψη 2 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Περιστροφή Στην Όψη 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Περιστροφή Στην Όψη 3 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Περιστροφή Στην Όψη 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Περιστροφή Στην Όψη 4 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Περιστροφή Στην Όψη 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Περιστροφή Στην Όψη 5 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Περιστροφή Στην Όψη 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Περιστροφή Στην Όψη 6 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Περιστροφή Στην Όψη 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Περιστροφή Στην Όψη 7 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Περιστροφή Στην Όψη 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Περιστροφή Στην Όψη 8 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Περιστροφή Στην Όψη 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Περιστροφή Στην Όψη 9 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Περιστροφή Κύβου"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Περιστροφή κύβου επιφάνειας εργασίας"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Περιστροφή αριστερά"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Περιστροφή αριστερά και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Περιστροφή δεξιά"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Περιστροφή δεξιά και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Περιστροφή στην όψη 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Περιστροφή Στην Όψη 1 με Παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Περιστροφή στην όψη 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Περιστροφή στην όψη 1 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Περιστροφή στην όψη 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Περιστροφή στην όψη 10 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Περιστροφή στην όψη 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Περιστροφή στην όψη 11 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Περιστροφή στην όψη 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Περιστροφή στην όψη 12 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Περιστροφή στην όψη 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Περιστροφή στην όψη 2 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Περιστροφή στην όψη 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Περιστροφή στην όψη 3 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Περιστροφή στην όψη 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Περιστροφή στην όψη 4 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Περιστροφή στην όψη 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Περιστροφή στην όψη 5 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Περιστροφή στην όψη 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Περιστροφή στην όψη 6 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Περιστροφή στην όψη 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Περιστροφή στην όψη 7 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Περιστροφή στην όψη 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Περιστροφή στην όψη 8 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Περιστροφή στην όψη 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Περιστροφή στην όψη 9 και μεταφορά ενεργού παραθύρου κατα μήκος"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Περιστροφή στην εικονική επιφάνεια εργασίας"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Περιστροφή παραθύρου"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Περιστροφή με παράθυρο"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Επιτάχυνση Περιστροφής"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Ταχύτητα Περιστροφής"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Χρονικό Βήμα Περιστροφής"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Ζουμ Περιστροφής"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Ευαισθησία της μετακίνησης του δείκτη"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Αρπαγή Περιστροφής Κύβου στην Κάτω Όψη"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Αρπαγή Περιστροφής Κύβου στην Πάνω Όψη"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Αρπαγή Στην Κάτω Όψη"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Αρπαγή Στην Πάνω Όψη"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Έναρξη Περιστροφής"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Τέλος χρόνου πριν το γύρισμα της εικονικής επιφάνειας εργασίας"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Ζουμ"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Ποσοστό αδιαφάνειας επι της εκατό"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Μεγάλο"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Κλικ στην Επιφάνεια Εργασίας για να Εμφανιστεί η Επιφάνεια Εργασίας"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Σκοτείνιασμα Φόντου"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Σκοτείνιασμα φόντου στην κλιμάκωση παραθύρων"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Έμβλημα"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Είσοδος στην κατάσταση Εμφάνισης Επιφάνειας Εργασίας όταν η Επιφάνεια "
+"Εργασίας κλικαριστεί κατα τη διάρκεια της Κλιμάκωσης"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Χρόνος Αιώρησης"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Εκκίνηση Διαλογέα Παραθύρου"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Εκκίνηση Διαλογέα Παραθύρου Για Όλα τα Παράθυρα"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Εκκίνηση Διαλογέα Παραθύρου Για Ομάδα Παραθύρων"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Εκκίνηση Διαλογέα Παραθύρου Για Παράθυρα στην Τρέχουσα Έξοδο"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Διάταξη και μεταμόρφωση όλων των παραθύρων"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Διάταξη και έναρξη μεταμόρφωσης ομάδας παραθύρων"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Διάταξη και έναρξη μεταμόρφωσης παραθύρων"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Διάταξη και έναρξη μεταμόρφωσης παραθύρων στην τρέχουσα έξοδο"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Σε όλες τις συσκευές εξόδου"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Στην τρέχουσα συσκευή εξόδου"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Επίστρωση Εικονιδίου"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Επίστρωση ενός εικονιδίου στα παράθυρα μόλις αυτά κλιμακωθούν"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Κλιμάκωση"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Κλιμάκωση Παραθύρων"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Ταχύτητα κλιμάκωσης"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Χρονικό βήμα κλιμάκωσης"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Κλιμάκωση παραθύρων"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Επιλέγει το αν τα παράθυρα κλιμακωθούν αν γινει χρήση πολλαπλών συσκευών "
+"εξόδου."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Χώρος μεταξύ των παραθύρων"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Χωροταξία"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Χρόνος (σε ms) πρίν να τερματιστεί η κατάσταση κλιμάκωσης κατά τη διάρκεια "
+"της αιώρησης πάνω από ένα παράθυρο"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Παράθυρα που πρέπει να κλιμακωθούν σε κατάσταση κλιμάκωσης"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Αυτόματο άνοιγμα αρπαγής οθόνης σε αυτή την εφαρμογή"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Διαδρομή"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Εκκίνηση τετράγωνης αρπαγής οθόνης"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Εκκίνηση Εφαρμογής"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Τοποθέτηση των εικόνων αρπαγής οθόνης σε αυτή τη διαδρομή"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Αρπαγή Οθόνης"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Πρόσθετο αρπαγής οθόνης"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Φορτωτής εικόνας svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Ποσό φωτεινότητας σε ποσοστό επι της εκατό"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Ποσό κορεσμού σε ποσοστό επι της εκατό"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Επιλογέας Εφαρμογών"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Αυτόματη Περιστροφή"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Μεταφορά Μπροστά"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Μεταφορά επιλεγμένου παράθυρου μπροστά"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Η απόσταση της επιφάνειας εργασίας που πρέπει να ζουμαριστεί έξω κατα την "
+"εναλλαγή παραθύρων"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Εικονίδιο"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Ελαχιστοποιημένο"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Επόμενο Πάνελ"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Επόμενο παράθυρο"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Επόμενο παράθυρο (Όλα τα παράθυρα)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Επόμενο παράθυρο (Οχι popup)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Κάνει popup τον επιλογέα αν δεν είναι ορατός και επιλέγει το επόμενο παράθυρο"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Κάνει popup τον επιλογέα αν δεν είναι ορατός και επιλέγει το επόμενο "
+"παράθυρο απο όλα τα παράθυρα"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Κάνει popup τον επιλογέα αν δεν είναι ορατός και επιλέγει το προηγούμενο "
+"παράθυρο"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Κάνει popup τον επιλογέα αν δεν είναι ορατός και επιλέγει το προηγούμενο "
+"παράθυρο απο όλα τα παράθυρα"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Προηγούμενο Πάνελ"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Προηγούμενο παράθυρο"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Προηγούμενο παράθυρο (Όλα τα παράθυρα)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Προηγούμενο παράθυρο (Οχι popup)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Περιστροφή στο επιλεγμένο παράθυρο κατα την εναλλαγή"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Επιλογή τύπου παραθύρου του επόμενου πάνελ."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Επιλογή του επόμενου παραθύρου χωρίς εμφάνιση του παραθύρου popup."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Επιλογή τύπου παραθύρου του προηγούμενου πάνελ."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Επιλογή του προηγούμενου παραθύρου χωρίς εμφάνιση του παραθύρου popup."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Εμφάνιση εικονιδίου δίπλα στη μικρογραφία"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Εμφάνιση ελαχιστοποιημένων παραθύρων"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Ταχύτητα επιλογέα"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Χρονικό βήμα επιλογέα"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Επιλογέας παραθύρων"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Παράθυρα που δεν πρέπει να εμφανίζονται στον επιλογέα"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Χορήγηση υποστήριξης YV12 χρωματικού μοντέλου"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Παίξιμο Βίντεο"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Παίξιμο βίντεο"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Χρωματικό μοντέλο YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Προσθήκη γραμμής"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Προσθήκη σημείου"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Προσθέτει τα εφέ νερού σε διαφορετικές ενέργειες επιφάνειας εργασίας"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Καθυστέρηση (σε χιλ.δευτερολέπτου) μεταξύ κάθε σταγόνας βροχής"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Ενεργοποίηση των εφέ νερού για τον δείκτη"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Γραμμή"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Κλιμάκωση Μετάθεσης Αρχής"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Σημείο"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Καθυστέρηση Βροχής"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Τίτλος κύματος"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Εκκίνηση βροχής"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Εκκίνηση εφέ βροχής"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Εκκίνηση γυαλοκαθαριστήρα"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Εκκίνηση εφέ γυαλοκαθαριστήρα"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Εφέ Νερού"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Κλιμάκωση μετάθεσης αρχής νερού"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Εφέ κύματος από τον τίτλο παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Εφέ Εστίασης"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Εφέ Εστίασης Παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Εστιάζει Παράθυρα"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Τριβή"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Πιάσιμο Παραθύρων"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Ανάλυση Πλέγματος"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Αντίστροφο άρπαγμα παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Κάνει το παράθυρο να τρέμει"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Εφέ Χαρτογράφησης"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Εφέ Χαρτογράφησης Παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Χαρτογράφηση Παραθύρων"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Εφέ Μεγιστοποίησης"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Ελάχιστο Μέγεθος Πλέγματος"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Ελάχιστο Μέγεθος Κορυφαίου Πλέγματος"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Μετακίνηση Παραθύρων"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Τρεμούλιασμα"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Αντίστροφο Άρπαγμα"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Άρπαγμα παραθύρων"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Τριβή Ελατηρίου"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Κ Ελατηρίου"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Σταθερά Ελατηρίου"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Εκκίνηση αρπάγματος παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Χρήση μοντέλου ελατηρίου για το εφέ ταλάντωσης παραθύρου"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Ανάλυση Κορυφαίου Πλέγματος"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Παράθυρα που πρέπει να ταλαντευτούν όταν εστιαστούν"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Παράθυρα που πρέπει να ταλαντευτούν όταν πιαστούν"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Παράθυρα που πρέπει να ταλαντευτούν όταν χαρτογραφηθούν"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Παράθυρα που πρέπει να ταλαντευτούν όταν μετακινηθούν"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Εφέ ταλάντευσης όταν μεγιστοποιούνται και απομεγιστοποιούνται παράθυρα"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Ταλαντευόμενα Παράθυρα"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Γραμμικό Φιλτράρισμα"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Χρήση γραμμικού φιλτραρίσματος όταν ζουμάρεται μέσα"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Ζουμάρισμα Επιφάνειας Εργασίας"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Ζουμ Μέσα"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Ζουμ Έξω"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Pan του Ζούμ"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Ταχύτητα Ζουμ"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Χρονικό Βήμα Ζουμ"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Pan και ζούμ του κύβου"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Παράγοντας ζουμ"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Pan του ζούμ"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Γραμμή εντολών 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Τρέξιμο εντολής 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Γραμμή εντολών αρπαγής οθόνης"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Γραμμή εντολών αρπαγής οθόνης"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Μείωση αδιαφάνειας παραθύρου"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Αύξηση αδιαφάνειας παραθύρου"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Τιμές αδιαφάνειας για παράθυρα που πρέπει να είναι διάφανα απο προεπιλογή"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Αδιαφάνεια παραθύρων"
+
+#~ msgid "Background Images"
+#~ msgstr "Εικόνες Φόντου"
+
+#~ msgid "Background images"
+#~ msgstr "Εικόνες φόντου"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Τοποθέτηση παραθύρων στο πλάνο"
+
+#~ msgid "Plane Down"
+#~ msgstr "Μετακίνηση Πλάνου Κάτω"
+
+#~ msgid "Plane Left"
+#~ msgstr "Μετακίνηση Πλάνου Αριστερά"
+
+#~ msgid "Plane Right"
+#~ msgstr "Μετακίνηση Πλάνου Δεξιά"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Μετακίνηση Πλάνου Στην Όψη 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Μετακίνηση Πλάνου Πάνω"
+
+#~ msgid "Plane down"
+#~ msgstr "Μετακίνηση πλάνου κάτω"
+
+#~ msgid "Plane left"
+#~ msgstr "Μετακίνηση πλάνου αριστερά"
+
+#~ msgid "Plane right"
+#~ msgstr "Μετακίνηση πλάνου δεξιά"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Μετακίνηση πλάνου στην όψη 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Μετακίνηση πλάνου πάνω"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Χρόνος Ξεθωριάσματος Αδιαφάνειας Παραθύρου Επιφάνειας Εργασίας."
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 0000000..47da12e
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,3731 @@
+# English message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2000, 2001 SuSE GmbH.
+# James Ogley <ogley@suse.co.uk>, 2000, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2001-07-17 16:27+0200\n"
+"Last-Translator: James Ogley <ogley@suse.co.uk>\n"
+"Language-Team: English <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Desktop"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Window Manager"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Scanner"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "&Shrink Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "&Shrink Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "&Shrink Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "&Shrink Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "AutoYast"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Window Manager"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Suspend"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "&Delete Windows completely"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "&Delete Windows completely"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "&Delete Windows"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+#, fuzzy
+msgid "Minimize Window"
+msgstr "&Shrink Windows"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Hittite"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Colours"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Active Profile"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Hittite"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Hittite"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Hittite"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Hittite"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filter: "
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "&Set Filter"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Duration"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Duration"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Suspend"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Duration"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Russian"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Russian Federation"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Russian"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Russian Federation"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Russian"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Mi'kmaq"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Mi'kmaq"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows free (%1)"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Hittite"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Command '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Command '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Command '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Command '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Command: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Command: "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Active Profile"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "File system"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "AutoYast"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Default Section"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Default domain"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "Select for Update"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Starting daemon."
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Starting daemon."
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Virtual Device"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Logging"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "List only detected printers"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Lower Sorbian"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "&Shrink Windows"
+
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "&Shrink Windows"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Delay"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "&Radio Clock"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "Resize failed."
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "Refresh"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Show All Partitions"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "&Set Filter"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "&Set Filter"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "&Set Filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Virtual Device"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D Acceleration:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "Advanced Options"
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "AutoYast"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Colours"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Colours"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Desktop"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D Acceleration:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Suspend"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Test"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "&Previous"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Failed files"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "New Size"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "&Delete Windows"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "&Previous"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "local time"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Disk Image"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Suspend"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Test"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Command: "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "&Shrink Windows"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "&Low Capacity"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "No Description"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind options"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Test"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Contains"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Resize failed."
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Real Time"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Suspend"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Real Time"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "File system"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows free (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "&Tone Dialling"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Error parsing command line."
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Error parsing command line."
+
+#: ../metadata/gnomecompat.xml.in.h:8
+#, fuzzy
+msgid "Show Main Menu"
+msgstr "&Show Boot Menu"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+#, fuzzy
+msgid "Show the main menu"
+msgstr "&Show Boot Menu"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Error parsing command line."
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Do not log any"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "Do not log any"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Shrink Windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Shrink Windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Shrink Windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Contains"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "Move &Down"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Resize failed."
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Move &Down"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Move &Down"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Low Capacity"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Starting daemon."
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Starting daemon."
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Occitan (post 1500)"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Occitan (post 1500)"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "&Low Capacity"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Starting daemon."
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Duration"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Duration"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Duration"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Duration"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind options"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Window Manager"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Virtual Device"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Resize failed."
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Virtual Device"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Resize failed."
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind options"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind options"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "&Workgroup"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Resize failed."
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Virtual Device"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Resize failed."
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Virtual Device"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Colours"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Colours"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Colours"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Starting daemon."
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Starting daemon."
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Starting daemon."
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Starting daemon."
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Starting daemon."
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Resize failed."
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "Real Time"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Pointer to %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Printer &Description"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Remote Subnet"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Move &Down"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Starting daemon."
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D Acceleration:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Test"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Test"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Test"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Start Detection"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "Log Out"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Background"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Initial RAM Disk"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Scanner"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "local time"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "local time"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Spain"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Hittite"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Error parsing command line."
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Error parsing command line."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Application Order"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "AutoYast"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "During Boot"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Icons"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Shrink Windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Desktop"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "&Delete Windows"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "&Delete Windows"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "&Delete Windows"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "&Previous"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "&Delete Windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Starting daemon."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "local time"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "local time"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Delay"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Action"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "&Delete Windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Resolution"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "&Delete Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Maximum Mail Size"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Maximum Mail Size"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Move &Down"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "&Shrink Windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Action"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Skipping %1"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Skipping %1"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "&Delete Windows"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Server Resolution"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windows"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filter: "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Desktop"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Log Out"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Log Out"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Log Out"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Suspend"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Test"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Remote Subnet"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Log Out"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Log Out"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Command: "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Command '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Error parsing command line."
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Error parsing command line."
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "&Delete Windows completely"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Remote Subnet"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Remote Subnet"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Remote Subnet"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Remote Subnet"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "&Tone Dialling"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Action"
+
+#, fuzzy
+#~ msgid "Unknown"
+#~ msgstr "unknown"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Duration"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "Do not log any"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&Low Capacity"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Radius"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D Acceleration: "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D Acceleration: "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Test"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Russian Federation"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Russian"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Shrink Windows"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Shrink Windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Maximum Mail Size"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Desktop"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Occitan (post 1500)"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D Acceleration: "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Test"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "local time"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "local time"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&Delete Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Action"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Skipping %1"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Set Filter"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Server Resolution"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows free (%1)"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows free (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Suspend"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Test"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Log Out"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Command: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Command: "
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "Provider Type"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Cornish"
+
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Show c&hanges"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Floppy disk"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Starting daemon."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminals"
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644
index 0000000..eeea174
--- /dev/null
+++ b/po/en_US.po
@@ -0,0 +1,3171 @@
+# English message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2002-07-18 14:04+0200\n"
+"Last-Translator: proofreader <i18n@suse.de>\n"
+"Language-Team: English <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Previous"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Previous"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Terse output"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+#, fuzzy
+msgid "Detect Outputs"
+msgstr "Terse output"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Previous"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Previous"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "Invalid relation"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "Invalid relation"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "Previous"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Previous"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Previous"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Previous"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "Previous"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Previous"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Previous"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Registration key"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Previous"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Previous"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Previous"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Previous"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Previous"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Previous"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Previous"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "Previous"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Previous"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Previous"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Registration key"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Previous"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Previous"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Previous"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Previous"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Previous"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Previous"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Invalid relation"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Registration key"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Registration key"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Registration key"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Previous"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Previous"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Previous"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+#, fuzzy
+msgid "Put screenshot images in this directory"
+msgstr "Recurse into the directory"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Previous"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "No confirmation"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Previous"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Previous"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Registration key"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Registration key"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Previous"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Previous"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Previous"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Terse output"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "Catalog"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "No confirmation"
+
+#, fuzzy
+#~ msgid "Unknown"
+#~ msgstr "unknown"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Previous"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Invalid relation"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Registration key"
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..c502670
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,4806 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2009-02-05 01:16+0100\n"
+"Last-Translator: Gabriel Ferreiro Blazetic <gbril9119@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Escritorio"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Ventana de Gestión"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ninguno"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Tonalidad"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximizada"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Maximizar ventana horizontalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Maximizar ventana verticalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Elevación automática"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Bajar"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menú de ventanas"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Acción a tomar cuando se desplaza la rueda del ratón sobre una ventana de la "
+"barra de título."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tipo de difuminado"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacidad de la ventana activa del tema de Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Opacidad de sombra de la ventana activa del tema de Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacidad del tema de Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Opacidad de sombra del tema de Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Opacidad al utilizar las ventanas activas con decoraciones del tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacidad a utilizar para las decoraciones tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Sombra de las ventanas activas con decoraciones de opaco a transparente del "
+"tema metacity "
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Sombra ventanas con decoraciones de opaco a transparente del tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Acción de rueda del ratón en la barra de título"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipo de difuminado usado para decoraciones de ventana"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Usar el tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Usar el tema Metacity para dibujar las decoraciones de ventana"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Cerrar ventana"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Desmaximizar ventana"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizar ventana"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizar ventana"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Subir"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Adherir"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Anular sombra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Desmarcar Sobre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Despegar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "La ventana \"%s\" no responde."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forzando la salida de la aplicación puede causar la pérdida de los datos que "
+"no haya guardado."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "Forzar salida"
+
+# Este es un plugin que permite escribir en la pantalla
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anotar"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Color de relleno para Anotar"
+
+# Comentar color del stroke
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Color de trazo para Anotar"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "plugin Anotar"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Limpiar"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Dibujar"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Dibujar usando herramienta"
+
+# del plugin Anotar
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Color de relleno para anotaciones"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Iniciar"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Iniciar dibujo de Anotar"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Iniciar borrado de Anotar"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Iniciar borrado"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Ancho de línea"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Ancho de linea para anotaciones"
+
+# del plugin Anotar
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Color de Trazo para anotaciones"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ancho de Trazo"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ancho de Trazo para anotaciones"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "Bilineal 4x"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Desenfoque Alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Ventanas con desenfoque Alfa"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtro de desenfoque"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Oclusión de desenfoque"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturación de desenfoque"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Velocidad de desenfoque"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Desenfocar Ventanas"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Desenfocar detras de las partes transparentes de las ventanas"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturación de desenfoque"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Desenfocar ventanas"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Desenfocar ventanas que no estan en primer plano"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Deshabilitar desenfoque de regiones de la pantalla tapadas por otras ventanas"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Método de filtrado usado para desenfoque"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Desenfoque de Foco"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Desenfoque de foco para ventanas"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussiano"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Radio Gaussiano"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Fuerza Gaussiana"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Radio Gaussiano"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Fuerza Gaussiana"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Muestra de textura independiente"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap nivel-de-detalle"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulso"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efecto de Pulso"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Usar las unidades de textura disponibles para crear tantas muestras de "
+"textura independiente como sea posible."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Velocidad de desenfoque de la ventana"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Ventanas que debieran ser afectadas por el desenfoque"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Ventanas que debieran usar desenfoque alfa por defecto"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Clonar salida"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Iniciar selección de clonación"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Manejador de clonación de salida"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Combinación de teclas que al utilizarse ejecutará el comando de shell "
+"identificado por command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Línea de comandos 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Línea de comandos 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Línea de comandos 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Línea de comandos 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Línea de comandos 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Línea de comandos 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Línea de comandos 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Línea de comandos 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Línea de comandos 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Línea de comandos 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Línea de comandos 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Línea de comandos 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command0 es invocado"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command1 es invocado"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command10 es invocado"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command11 es invocado"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command2 es invocado"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command3 es invocado"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command4 es invocado"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command5 es invocado"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command6 es invocado"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command7 es invocado"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command8 es invocado"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Línea de comandos que se ejecuta en el shell cuando run_command9 es invocado"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Comandos"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Combinaciones de Teclas"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Combinaciones de Teclas"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Ejecutar comando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Ejecutar comando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Ejecutar comando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Ejecutar comando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Ejecutar comando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Ejecutar comando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Ejecutar comando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Ejecutar comando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Ejecutar comando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Ejecutar comando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Ejecutar comando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Ejecutar comando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Plugins Activos"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permitir que el dibujado de ventanas a pantalla completa no se redireccione "
+"a pixmaps de fuera de pantalla"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Timbre audible"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Pitido del sistema audible"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Elevación automática"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Retraso de elevación automática"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detección automática de dispositivos de salida"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detección automática de la frecuencia de actualización"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "El mejor"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Clic para enfocar"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Al hacer clic en la ventana se mueve el foco de entrada a ella"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Cierra la ventana activa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Icono por defecto"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Imagen del icono de ventana por defecto"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Tamaño de Escritorio"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detectar salidas"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detectar frecuencia de actualización"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Tiempo que el puntero del ratón debe estar en el borde de la pantalla antes "
+"de que se lance la acción."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Retrazo del Disparador de Bordes"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rápido"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Nivel de Prevención de Enfoque"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Ventanas de Prevención de Enfoque"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Ventanas de prevencion de foco"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forzar el pintado de salida independiente."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opciones Generales"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opciones generales de Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bueno"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ocultar ventanas omitidas de barra de tareas"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Ocultar todas las ventanas y enfocar el escritorio"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Oculta las ventanas que no se encuentran en la barra de tareas al entrar en "
+"el modo de muestra de escritorio"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Alto"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Tamaño horizontal virtual"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Si está disponible usar la compresión de texturas convertidas desde imágenes"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorar sugerencias al maximizar"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignorar sugerencias de aumento de tamaño y aspecto cuando la ventana esté "
+"maximizada"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervalo antes de elevar las ventanas seleccionadas"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervalo entre mensajes de ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Combinaciones de Teclas"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Nivel de prevención de atracción de enfoque"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Iluminación"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista de plugins activos actualmente"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista de cadenas que describen los dispositivos de salida"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Bajo"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Bajar ventana"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Colocar la ventana por debajo de otras"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximizar ventana horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximizar ventana verticalmente"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximiza la ventana activa"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximiza la ventana activa horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximiza la ventana activa verticalmente"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimiza la ventana activa"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Número de escritorios"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Número de escritorios virtuales"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Apagado"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Sólo se llevan a cabo actualizaciones de la pantalla durante el período de "
+"borrado vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Salidas"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Manejo de Salida de Traslapes"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Pintar independientemente la salida de cada dispositivo, inclusive si el "
+"dispositivo de salida se sobrepone"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Retardo de ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferir salidas grandes"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferir salidas pequeñas"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Alzar al hacer clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Elevar ventana"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Alza las ventanas seleccionadas tras el intervalo"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Elevar la ventana sobre las demás"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Alza las ventanas al hacer clic en ellas"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Frecuencia de actualización"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicador de tamaño de pantalla para el tamaño horizontal virtual"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicador de tamaño de pantalla para el tamaño vertical virtual"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Mostar escritorio"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Ralentizar animaciones"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Modo inteligente"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizar con borrado vertical"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compresión de Textura"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtro de Textura"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrado de Texturas"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Velocidad con la que se redibuja la pantalla (veces/segundo)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Activar o desactivar ventana maximizada"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Activar o desactivar ventana maximizada horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Activar o desactivar ventana maximizada verticalmente"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Activar o desactivar ventana con sombra"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Activa o desactiva la ventana activa maximizada"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Activa o desactiva la ventana activa maximizada horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Activa o desactiva la ventana activa maximizada verticalmente"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Activa o desactiva la ventana activa con sombra"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Activa o desactiva el uso de animaciones lentas"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Desmaximiza la ventana activa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Anular redirección de ventanas a pantalla completa"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Usa luz indirecta cuando se transforma la pantalla"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Tamaño vertical virtual"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Muy Alto"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Cual de los dispositivos de salida de sobreposición debe ser preferido"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Botón vinculado al menú de ventana"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tecla vinculada al menú de ventana"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Aceleración"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ajuste de imagen"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ajustar imagen de la cara superior a la rotación"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avanza a la siguiente diapositiva"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Cúpula animada"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Anima la cúpula cuando se gira el cubo"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Apariencia"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Comportamiento"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "El color de los lados superior e inferior del cubo"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Color utilizado para la parada de color inferior del degradado de vuelta "
+"atrás de la cúpula"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Color utilizado para la parada de color superior del degradado de vuelta "
+"atrás de la cúpula"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Color del cubo"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Color del cubo"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cubo de escritorio"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Aceleración del pliegue"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocidad del pliegue"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Paso del pliegue"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"Generar mipmap cuando sea posible para obtener una escala de mayor calidad"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Vuelve a la diapositiva anterior"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Archivos de imagen"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imagen que se usará como textura de la cúpula"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Iniciar transparencia de Cubo sólo si la rotación es manejada por el mouse"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Cubo interior"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Cubo interior"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista de archivos PNG y SVG que se deben procesar en la cara superior del "
+"cubo"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modo de multi salidas"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Multiples cubos"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Diapositiva siguiente"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Un cubo grande"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacidad durante rotacion"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacidad cuando no esta rotando"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacidad de la ventana de escritorio durante rotacion"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacidad de la ventana de escritorio cuando no esta rotando"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Coloca las ventanas en un cubo"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Diapositiva anterior"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Procesar cúpula"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Escalar imagen"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Escala las imágenes para que cubran la cara superior del cubo"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Seleccione como va a ser visualizado el cubo si son usados multiples "
+"disporitivos de salida"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Cúpula"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Color de fin del degradado de cúpula"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Color de inicio del degradado de cúpula"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imagen de cúpula"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocidad"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Paso"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparencia Sólo al Rotar con el Mouse"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Cubo Transparente"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Desplegar"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Despliega el cubo"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Herramienta de Control de Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permite generar mipmaps para las texturas de decoración"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Decoracion de ventanas"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Línea de comando del decorador que se ejecuta si no hay ningún decorador en "
+"ejecución"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Desechar desplazamiento X de la sombra"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Desechar desplazamiento Y de la sombra"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Desechar color de la sombra"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Desechar opacidad de la sombra"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Desechar radio de la sombra"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Color de la sombra"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Desplazamiento X de la sombra"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Desplazamiento Y de la sombra"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacidad de la sombra"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Radio de la sombra"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Sombra de la ventana"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decoración de ventanas"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "La decoración de las ventanas"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Ventanas que deben estar decoradas"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Ventanas que deben tener sombra"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Velocidad de giro"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Limitar Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Cambiar Tamaño Ventanas Normal"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Modo de desvanecimiento"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Desvanecer en Minimizar/Abrir/Cerrar"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocidad de desvanecimiento"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Tiempo de desvanecimiento"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efecto de desvanecimiento cuando minimizas/abres/cierras ventanas"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efecto de desvanecimiento con pitido del sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Las ventanas aparecen progresivamente cuando se asignan y se desvanecen "
+"cuando se desasignan"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Desvanecer ventanas"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Desvanecer ventanas"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Timbre visual a pantalla completa"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+"Efecto de desvanecimiento a pantalla completa con el pitido del sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Timbre visual"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Velocidad de desvanecimiento de ventana"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Ventanas que se deben escalar en el modo de escala"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Ventana que deben desvanecerse"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Punto de Montaje"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Punto de Montaje"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Sistema de Archivos del Espacio de Usuario"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Sistema de archivos del espacio de usuario"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Herramienta de control de Gconf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "soporte de loop principal de GLib "
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Abrir terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Ejecutar diálogo"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Línea de comandos para abrir Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Línea de comandos de captura de pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Mostrar menú principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Mostrar el cuadro de diálogo de ejecución de aplicación"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Muestra el menú principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Capturar la pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Toma una captura de pantalla de una ventana"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Línea de comandos para abrir Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Línea de comandos de captura de ventana"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Herramienta de Archivo Plano Ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Complemento de notificacion de cambio de archivo"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Herramienta de Control Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efecto Minimizar"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimizar ventanas"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Velocidad al minimizar"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Paso al minimizar"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistencia de decoloración"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistencia a la decoloración"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transforma las ventanas cuando se minimizan o desminimizan"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Tipos de ventana que deben transformarse al minimizarlas"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Limitar Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Limita la coordenada Y al área de trabajo"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"No actualizar la posición en el servidor de ventanas hasta que terminan de "
+"moverse"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Iniciar movimiento de ventana"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Posicionamiento Flojo"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mover ventana"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Mueve la ventana"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacidad"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nivel de opacidad de las ventanas en movimiento"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Separar y desmaximizar automáticamente ventanas maximizadas al arrastrar"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Separar ventanas maximizadas"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Empieza a mover la ventana"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Disminuir opacidad"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Aumentar opacidad"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Paso de cambio de opacidad"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Paso de cambio de opacidad"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Paso de opacidad"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nivel de opacidad de las ventanas en movimiento"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacidad durante rotacion"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "La decoración de las ventanas"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Tipos de ventana"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Asignar ventanas"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Ventanas que deben posicionarse por defecto"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Ventanas que deben ser translúcidas por defecto"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Ventanas que deben posicionarse por defecto"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmo a usar para posicionamiento de ventanas"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascada"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrado"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Ventana de Gestión"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Forzar Ventanas de Ubicación"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Posiciones de viewport horizontales"
+
+#: ../metadata/place.xml.in.h:7
+#, fuzzy
+msgid "Keep In Workarea"
+msgstr "Mantener en el Área de trabajo"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Colocar ventanas"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Colocar en todas las salidas"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Coloca las ventanas en sus lugares adecuados en la asignación"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Modo de Posicionamiento"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Ventanas Posicionadas"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aleatorio"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Selecciona como debe comportarse el acomodamiento de ventanas si se "
+"selecciona multipes salidas"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligente"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Usar el dispositivo de salida activo"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Usar el dispositivo de salida de la ventana enfocada"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Usar el dispositivo de salida con apuntador"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Posiciones de viewport verticales"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Ventanas posicionadas en viewport"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Procedimientos para posicionamiento de ventanas"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Ventanas que deben posicionarse por defecto"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Ventanas que deben posicionarse en viewports específicos por defecto"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Ventanas que deben ser colocadas forzosamente, inclusive si indican que el "
+"administrador de ventanas debe evitar colocarlas"
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Ventanas con posiciones arregladas"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Soluciones alternativas"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Posiciones X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Posiciones de Viewport X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "valores de posicion X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Posiciones Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Posiciones de Viewport Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "valores de posicion Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Cargador de imágenes Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regex Coincidir"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex coincidir ventanas"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Color de borde"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Color de borde usado para modos de cambiar tamaño linea exterior y rectangulo"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Modo de Cambio de Tamaño por defecto"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Modo usado por defecto para cambiar tamaño de ventanas"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Color de relleno"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Color de relleno usado por el modo de cambio de tamaño rectangulo"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Iniciar cambio de tamaño de ventanas normal"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Iniciar cambio de tamaño de ventanas linea exterior"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Iniciar cambio de tamaño de ventanas rectangulo"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Iniciar cambio de tamaño de ventanas estirar"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Iniciar cambio de tamaño de ventanas"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Cambiar Tamaño Ventanas Normal"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Linea Exterior"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Cambio Tamaño Ventanas Linea Exterior"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rectángulo"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Cambio Tamaño Ventanas Rectángulo"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Cambiar de tamaño la ventana"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Cambia de tamaño la ventana"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Empieza a cambiar el tamaño de la ventana"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Empieza a cambiar el tamaño de la ventana estirándola"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Empieza a cambiar el tamaño de la ventana normalmente"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Empieza a cambiar el tamaño de la ventana con linea exterior"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Empieza a cambiar el tamaño de la ventana con rectángulo"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Estirar"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Cambiar Tamaño Ventana Estirar"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Ventanas que deben usar cambio de tamaño normal"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Ventanas que deben usar cambio de tamaño con linea exterior"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Ventanas que deben usar cambio de tamaño con rectángulo"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Ventanas que deben usar cambio de tamaño con estiramiento"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD Inversión de Borde"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Mover Inversión de Borde"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Puntero Inversión de Borde"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Tiempo de inversión"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Invertir a viewport izquierdo y doblar puntero"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Se invierte al viewport siguiente al arrastrar un objeto al borde de la "
+"pantalla"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Se invierte al viewport siguiente al arrastrar un puntero al borde de la "
+"pantalla"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Se invierte al viewport siguiente al mover una ventana al borde de la "
+"pantalla"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Invertir a viewport derecho y doblar puntero"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Invertir eje Y para movimiento de puntero"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Invertir Y en puntero"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilidad del puntero"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Elevar durante la rotación"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Elevar ventanas durante la rotación"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Girar cubo"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Girar a inversión izquierda"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Girar a inversión derecha"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Girar a la izquierda"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Girar a la izquierda con ventana"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Girar a la derecha"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Girar a la derecha con ventana"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Girar a"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Girar a la Cara 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Girar a la Cara 1 con Ventana"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Girar a la Cara 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Girar a la Cara 10 con Ventana"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Girar a la Cara 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Girar a la Cara 11 con ventana"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Girar a la Cara 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Girar a la Cara 12 con ventana"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Girar a la Cara 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Girar a la Cara 2 con ventana"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Girar a la Cara 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Girar a la Cara 3 con ventana"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Girar a la Cara 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Girar a la Cara 4 con ventana"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Girar a la Cara 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Girar a la Cara 5 con ventana"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Girar a la Cara 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Girar a la Cara 6 con ventana"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Girar a la Cara 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Girar a la Cara 7 con ventana"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Girar a la Cara 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Girar a la Cara 8 con ventana"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Girar a la Cara 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Girar a la Cara 9 con ventana"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Girar cubo"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Girar cubo del escritorio"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Girar a la izquierda"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Gira a la izquierda y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Girar a la derecha"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Gira a la derecha y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Girar a la cara del cubo"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Girar a la Cara 1 con Ventana"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Girar a la cara 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Girar a la cara 1 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Girar a la cara 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Girar a la cara 10 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Girar a la cara 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Girar a la cara 11 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Girar a la cara 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Girar a la cara 12 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Girar a la cara 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Girar a la cara 2 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Girar a la cara 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Girar a la cara 3 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Girar a la cara 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Girar a la cara 4 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Girar a la cara 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Girar a la cara 5 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Girar a la cara 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Girar a la cara 6 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Girar a la cara 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Girar a la cara 7 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Girar a la cara 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Girar a la cara 8 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Girar a la cara 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Girar a la cara 9 y arrastra la ventana activa"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Girar a viewport"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Girar ventana"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Girar con ventana"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Aceleración de giro"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocidad de giro"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Paso de giro"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom de giro"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilidad de movimiento del puntero"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Solapa el giro del cubo hacia la cara inferior"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Solapa el giro del cubo hacia la cara superior"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Solapar hacia la cara inferior"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Solapar hacia la cara superior"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Iniciar giro"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tiempo límite antes de invertir viewport"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Porcentaje de opacidad"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grande"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Hacer Click en el Escritorio para Mostrar Escritorio"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Oscurecer fondo"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Oscurece el fondo al escalar las ventanas"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblema"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Mostrar Escritorio cuando el Escritorio es pinchado durante el Escalado"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Tiempo de desplazamiento"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Iniciar selector de ventanas"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Iniciar selector de ventanas para todas las ventanas"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Iniciar selector de ventanas para un grupo de ventanas"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Iniciar selector de ventanas para las ventanas de la salida actual"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Diseñar y empezar a transformar todas las ventanas"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Diseñar y empezar a transformar un grupo de ventanas"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Disponer e iniciar transformación de ventanas"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Diseñar y empezar a transformar las ventanas de la salida actual"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "En todos los dispositivos de salida"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "En el dispositivo de salida actual"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Superponer icono"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Superponer un icono sobre las ventanas cuando se escalen"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Escalar"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Escalar ventanas"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Velocidad de escala"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Paso de escala"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Escalar ventanas"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Seleccionar qué ventanas escalar si se usan múltiples dispositivos de salida"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espacio entre ventanas"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espaciado"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tiempo en milisegundos para finalizar el modo de escala al desplazar el "
+"cursor sobre una ventana"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Ventanas que se deben escalar en el modo de escala"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Automaticamente toma una captura de pantalla en esta aplicación"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Carpeta"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Inicia captura de pantalla rectangular"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Iniciar Aplicación"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Poner capturas de pantalla en esta carpeta"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Captura de Pantalla"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Plugin de captura de pantalla"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Cargador de imágenes Svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Porcentaje de brillo"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Porcentaje de saturación"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Cambiador de Aplicaciones"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Auto Rotación"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Traer al Frente"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Arrastra la ventana seleccionada al primer plano"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Escritorio distante debe alejarse mientras se intercambian las ventanas"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icono"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimizada"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Panel siguiente"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Ventana siguiente"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Ventana siguiente (Todas las ventanas)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Ventana siguiente (Sin emerger)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Mostrar el conmutador si no está visible y seleccionar la ventana siguiente"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Mostrar el conmutador si no está visible y seleccionar la siguiente ventana "
+"del conjunto total de ventanas"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Mostrar el conmutador si no está visible y seleccionar la ventana anterior"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Mostrar el conmutador si no está visible y seleccionar la ventana anterior "
+"del conjunto total de ventanas"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Panel anterior"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Ventana ant"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Ventana ant (Todas las ventanas)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Ventana ant (Sin Emerger)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Girar a la ventana seleccionada mientras conmuta"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Seleccionar la ventana del tipo de panel siguiente"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Seleccionar la ventana siguiente sin mostrar la ventana emergente"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Seleccionar la ventana del tipo de panel anterior"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Seleccionar la ventana anterior sin mostrar la ventana emergente"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Muestra el icono junto a la miniatura"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Muestra ventanas minimizadas"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocidad de conmutador"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Paso de conmutador"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Conmutar Ventanas"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Ventanas que deben mostrarse en el conmutador"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Proveer soporte para el espacio de color YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Reproducción de Video"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Reproducción de video"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Espacio de color YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Añadir línea"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Añadir punto"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Añadir efecto acuático a distintas acciones de escritorio"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Retraso (en milisegundos) entre gotas de lluvia"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Habilitar efectos acuáticos del puntero"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Línea"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Escala de desplazamiento"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punto"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Retraso de lluvia"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Ola en el título"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Activa o desactiva la lluvia"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Activa o desactiva el efecto de lluvia"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Alternar limpiaparabrisas"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Alternar efecto de limpiaparabrisas"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efecto acuático"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Escala de desplazamiento de agua"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efecto de ola desde el título de la ventana"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efecto Enfocar"
+
+# clients/inst_resize_ui.ycp:691
+# clients/inst_resize_ui.ycp:691
+# clients/inst_resize_ui.ycp:691
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efecto Enfocar Ventanas"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Enfocar Ventanas"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Fricción"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Agarrar Ventanas"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Resolución de la cuadrícula"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Solapamiento de ventanas invertido"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Hacer que la ventana tiemble"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Asignar efecto"
+
+# clients/inst_resize_ui.ycp:691
+# clients/inst_resize_ui.ycp:691
+# clients/inst_resize_ui.ycp:691
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Asignar efecto de ventana"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Asignar ventanas"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efecto Maximizar"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Tamaño mínimo de cuadrícula"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Tamaño mínimo de cuadrícula de vértice"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Mover Ventanas"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Temblor"
+
+# 52895 AttribValues/label
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Solapamiento inverso"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Solapar ventanas"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fricción de tensión"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Constante de tensión"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constante de tensión"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Activa o desactiva el solapamiento de ventanas"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Usa el modelo de muelle para el efecto de ventana gelatinosa"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Resolución de cuadrícula de vértice"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Ventanas que deben ondear al enfocarse"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Ventanas que deben ondear al agarrarse"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Ventanas que deben ondear al asignarse"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Ventanas que deben ondear al moverse"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efecto gelatinoso al maximizar o desmaximizar las ventanas"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Ventanas Gelatinosas"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtro lineal"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Usa el filtro lineal cuando se hace un acercamiento"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom de Escritorio"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Ampliar"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Reducir"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Panoramico"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocidad de zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Paso de zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoom y panorámica del cubo de escritorio"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Factor de zoom"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Panorámica"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Línea de comandos 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Ejecutar comando 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Línea de comandos de captura de pantalla"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Línea de comandos de captura de pantalla"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Disminuye la opacidad de la ventana"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Aumenta la opacidad de la ventana"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valores de opacidad para ventanas que deberían ser translúcidas por "
+#~ "defecto"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Valores de opacidad de ventanas"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacidad de ventanas"
+
+#~ msgid "Background Images"
+#~ msgstr "Imagenes de fondo"
+
+#~ msgid "Background images"
+#~ msgstr "Imagenes de fonde"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Posiciona las ventanas en un plano"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plano Abajo"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plano Izquierda"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plano Derecha"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plano a Cara 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plano a Cara 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plano a Cara 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plano a Cara 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plano a Cara 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plano a Cara 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plano a Cara 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plano a Cara 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plano a Cara 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plano a Cara 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plano a Cara 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plano a Cara 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plano Arriba"
+
+#~ msgid "Plane down"
+#~ msgstr "Plano abajo"
+
+#~ msgid "Plane left"
+#~ msgstr "Plano izquierda"
+
+#~ msgid "Plane right"
+#~ msgstr "Plano derecha"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plano a cara 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plano a cara 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plano a cara 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plano a cara 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plano a cara 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plano a cara 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plano a cara 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plano a cara 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plano a cara 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plano a cara 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plano a cara 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plano a cara 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plano arriba"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Tiempo de desvanecimiento de opacidad para ventanas del escritorio"
+
+#~ msgid "Open window menu"
+#~ msgstr "Abre el menú de la ventana"
+
+#~ msgid "Dock"
+#~ msgstr "Anclar"
+
+#~ msgid "Toolbar"
+#~ msgstr "Barra de herramientas"
+
+#~ msgid "Menu"
+#~ msgstr "Menú"
+
+#~ msgid "Utility"
+#~ msgstr "Utilidad"
+
+#~ msgid "Splash"
+#~ msgstr "Pantalla inicial"
+
+#~ msgid "Dialog"
+#~ msgstr "Cuadro de diálogo"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Menú desplegable"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Menú emergente"
+
+#~ msgid "Tooltip"
+#~ msgstr "Sugerencia"
+
+#~ msgid "Notification"
+#~ msgstr "Notificación"
+
+#~ msgid "Combo"
+#~ msgstr "Combo"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Cuadro de diálogo modal"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Pantalla completa"
+
+#~ msgid "Unknown"
+#~ msgstr "Desconocido"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command10"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command1"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command10"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command11"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command2"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command3"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command4"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command5"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command6"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command7"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command8"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Combinación de teclas que al utilizarse ejecutará el comando de shell "
+#~ "identificado por command9"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Porcentaje de brillo"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Porcentaje de opacidad"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Porcentaje de saturación"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Saturación"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Retraso (en milisegundos) entre gotas de lluvia"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr ""
+#~ "Distancia de alejamiento al reducir mientras se intercambian las ventanas"
+
+#~ msgid "Do not modify"
+#~ msgstr "No modificar"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Desechar desplazamiento X de la sombra"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Desechar desplazamiento Y de la sombra"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Desechar opacidad de la sombra"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Desechar radio de la sombra"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Enfocar efecto de ventana (ninguno, temblor)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Seleccionar la ventana anterior"
+
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Aceleración de pliegue (de 1,0 a 20,0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Velocidad de pliegue (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Paso de pliegue (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Federación Rusa"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Ruso"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Intervalo antes de elevar las ventanas seleccionadas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "Diseñar y empezar a transformar las ventanas de la salida actual"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Asignar efecto de ventana (ninguno, temblor)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Velocidad de minimización (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Velocidad de minimización (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Tamaño mínimo de cuadrícula de vértice"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Número de escritorios virtuales"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Paso de cambio de opacidad"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Nivel de opacidad de las ventanas en movimiento"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Nivel de opacidad de las ventanas en movimiento"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Superponer un icono sobre las ventanas cuando se escalen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Complementos que esto debe cargar antes"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Complementos que esto requiere"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Mostrar el conmutador si no está visible y seleccionar la siguiente "
+#~ "ventana del conjunto total de ventanas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Mostrar el conmutador si no está visible y seleccionar la siguiente "
+#~ "ventana del conjunto total de ventanas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Mostrar el conmutador si no está visible y seleccionar la ventana "
+#~ "anterior del conjunto total de ventanas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Mostrar el conmutador si no está visible y seleccionar la ventana "
+#~ "anterior del conjunto total de ventanas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Aceleración de pliegue (de 1,0 a 20,0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Velocidad de zoom (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Paso de ampliar/reducir (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Velocidad de escala (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Paso de escala (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr ""
+#~ "Multiplicador de tamaño de pantalla para el tamaño horizontal virtual"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Multiplicador de tamaño de pantalla para el tamaño vertical virtual"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Sensibilidad de movimiento del puntero"
+
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Resistencia de sombra (de 0 a 100)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Espacio entre ventanas"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Fricción de tensión"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Constante de tensión"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Velocidad de escala (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Paso de escala (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Filtrado de texturas (rápido, bueno, mejor)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "Velocidad con la que se redibuja la pantalla (veces por segundo)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Tiempo en milisegundos para finalizar el modo de escala al desplazar el "
+#~ "cursor sobre una ventana"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Tiempo límite antes de invertir viewport"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Usa el filtro lineal cuando se acerca la imagen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Resolución de cuadrícula de vértice"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Escala de desplazamiento de agua"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Velocidad de desvanecimiento de ventana"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Velocidad de desvanecimiento de ventana"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Tipos de ventana que deben desvanecerse"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Tipos de ventana que deben desvanecerse"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Tipos de ventana que deben desvanecerse"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Tipos de ventana que deben desvanecerse"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Tipos de ventanas que se deben escalar en el modo de escala"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Tipos de ventanas que deben mostrarse en el conmutador"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Tipos de ventana que deben transformarse al minimizarlas"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Tipos de ventana que deben desvanecerse"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Tipos de ventana que deben temblar al enfocarse"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Tipos de ventana que deben temblar al obtenerse"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Tipos de ventana que deben temblar al asignarse"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Tipos de ventana que deben temblar al moverse"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Esquinas activas que deben iniciar el modo de escala (superior izquierda, "
+#~ "superior derecha, inferior izquierda, inferior derecha)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Velocidad de zoom (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Paso de ampliar/reducir (de 0,1 a 50,0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Factor de zoom"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Girar a cara %d"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Girar a cara %d"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Girar a cara %d con la ventana"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Girar a cara %d y traer la ventana activa"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Girar a cara %d"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Girar a cara %d"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Girar a cara %d con la ventana"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Girar a cara %d y traer la ventana activa"
+
+#~ msgid "Command line %d"
+#~ msgstr "Línea de comando %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr ""
+#~ "Línea de comando que se debe ejecutar en la shell al invocar run_command%d"
+
+#~ msgid "Run command %d"
+#~ msgstr "Ejecutar el comando %d"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr ""
+#~ "Asociación de teclas que, al invocarse, ejecuta el comando de shell "
+#~ "identificado por el comando %d"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Mover ventanas de tipo"
+
+#~ msgid "Corners"
+#~ msgstr "Esquinas"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "Enfoca las ventanas al pasar el ratón sobre ellas"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "Iniciar todas las ventanas"
+
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "Iniciar movimiento de ventana de teclado"
+
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "Iniciar cambio de tamaño de ventana de teclado"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "Iniciar conmutador de ventanas"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "Modificador para mostrar el conmutador de todas las ventanas"
+
+#~ msgid "Return from scale view"
+#~ msgstr "Volver desde la vista a escala"
+
+#~ msgid "Show switcher"
+#~ msgstr "Muestra el conmutador"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "Enfoque aproximado"
+
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Empieza a mover la ventana mediante el teclado"
+
+#~ msgid "Terminate"
+#~ msgstr "Interrumpir"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "Efecto acuático con el pitido del sistema"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que se deben desvanecer (Escritorio, Dock, Barra de "
+#~ "herramientas, Menús, Utilidades, Inicial, Diálogos, Diálogo de modos, "
+#~ "Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que se deben transformar al minimizarse (Escritorio, "
+#~ "Dock, Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, "
+#~ "Diálogo de modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que deben cambiar de tamaño en el modo de escala "
+#~ "(Escritorio, Dock, Barra de herramientas, Menús, Utilidades, Inicial, "
+#~ "Diálogos, Diálogo de modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que se deben mostrar en el conmutador (Escritorio, "
+#~ "Dock, Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, "
+#~ "Diálogo de modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que deben temblar cuando se enfoquen (Escritorio, Dock, "
+#~ "Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, Diálogo de "
+#~ "modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que deben temblar cuando se recuperen (Escritorio, "
+#~ "Dock, Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, "
+#~ "Diálogo de modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que deben temblar cuando se asignen (Escritorio, Dock, "
+#~ "Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, Diálogo de "
+#~ "modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Tipos de ventanas que deben temblar cuando se muevan (Escritorio, Dock, "
+#~ "Barra de herramientas, Menús, Utilidades, Inicial, Diálogos, Diálogo de "
+#~ "modos, Normal, Pantalla completa, Desconocidas)"
+
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "Efecto gelatinoso con pitido del sistema"
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..925846e
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,3744 @@
+# translation of
+# Copyright (C) 2006 SUSE Linux Products GmbH.
+# Estonian message file for YaST2 (@memory@).
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: autoinst.fi\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2003-09-22 13:26+0200\n"
+"Last-Translator: Ain Vagula <avagula@gmail.com>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Töölauad"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Aken"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Puudub"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Vali &pilt"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Töölaua efektid"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Aken"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Kiirus:"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Lähtestamine"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Värvid"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktiivne vajutatud:"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "P_uhasta"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Lähtestamine"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Käivita Windows"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Käivita Windows"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Lähtestamine"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filtreeri seda kausta"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Määra filter"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Häälestamine"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Häälestamine"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Kiirus:"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Häälestamine"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Vene"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Vene"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Vene"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+#, fuzzy
+msgid "Pulse effect"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows NT"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Videorežiimi valimine"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Käsk tagastas '%1' : %2"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Käsk tagastas '%1' : %2"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Käsk tagastas '%1' : %2"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Käsk tagastas '%1' : %2"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Käsk tagastas '%1' : %2"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Käsku pole antud"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Tundmatu käsk "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Aktiivne vajutatud:"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "Failisüsteem"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+#, fuzzy
+msgid "Automatic detection of output devices"
+msgstr "Automaatne tuvastamine"
+
+#: ../metadata/core.xml.in.in.h:8
+#, fuzzy
+msgid "Automatic detection of refresh rate"
+msgstr "Automaatne tuvastamine"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+#, fuzzy
+msgid "Close active window"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Vaikeruuting"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Töölauad"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "X Window süsteem"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Horisontaalne"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "ZEN-partitsiooni lubamine"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Käivita Windows"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+#, fuzzy
+msgid "Maximize active window"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+#, fuzzy
+msgid "Minimize active window"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normaalne"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Kaugtöölaud"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Kaugtöölaud"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "Käivita Windows"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "Värskenda"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Töölauad"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Animatsioon"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Määra filter"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "Määra filter"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Määra filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+#, fuzzy
+msgid "Toggle Window Shaded"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+#, fuzzy
+msgid "Unmaximize active window"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D kiirenduse aktiveerimine"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "Täiustatud jõudluse kontroll"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Lähtestamine"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Värvid"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Värvid"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Töölauad"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D kiirenduse aktiveerimine"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Kiirus:"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Töölauad"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "Eelmine"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "tekstirežiim"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "Käivita Windows"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Eelmine"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "Vali &pilt"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Vali &pilt"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Vali &pilt"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Kiirus:"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Töölauad"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Käsku pole antud"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "Käivita Windows"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "MShadow"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Registreerimiskood"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Töölauad"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Kiirus:"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Töölauad"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Failisüsteem"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "Ekraan"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows NT"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Lisa sündmus"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Lisa sündmus"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "Käivitatakse terminalis"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "Häälestusdialoog"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Käsku pole antud"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Käsku pole antud"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+#, fuzzy
+msgid "Show Main Menu"
+msgstr "Peamenüü"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+#, fuzzy
+msgid "Show Run Application dialog"
+msgstr "Käivita rakendus"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+#, fuzzy
+msgid "Show the main menu"
+msgstr "Teenuse URI näitamine"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Käsku pole antud"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "Käivita Windows"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "X Window süsteem"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "X Window süsteem"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "Käivita Windows"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Käivita Windows"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Heledus"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Heledus"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Heledus"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Heledus"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Käivita Windows"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Käivita Windows"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "Käivita Windows"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Häälestamine"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Häälestamine"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Häälestamine"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Häälestamine"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows NT"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Aken"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Horisontaalne"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Horisontaalne"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Venemaa Föderatsioon"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Horisontaalne"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Horisontaalne"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Värvid"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Värvid"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Värvid"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "Vasakule"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "Paremale"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Vasakule"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "Paremale"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Paremale"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D kiirenduse aktiveerimine"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Registreerimiskood"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Töölauad"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Registreerimiskood"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Taaskäivituse kinnitus"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "XF86ZoomIn"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Suur"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Värviline taust"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Vali &pilt"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "Kiirus:"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "Vali &pilt"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Tühik"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+#, fuzzy
+msgid "Automatically open screenshot in this application"
+msgstr "Aplett käivitatakse sisselogimisel automaatselt"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Kataloog\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Videorežiimi valimine"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Käivita rakendus"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Ekraan"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Käsku pole antud"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Rakenduste sirvija"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Lähtestamine"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Toiming"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikoon"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "Mitteaktiivne vajutatud:"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Töölauad"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "tekstirežiim"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "tekstirežiim"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "tekstirežiim"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Eelmine"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Käivita Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Käivita Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Käivita Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Käivita Windows"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "Kas kasutada animeeritud aknaid?"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "Kiirus:"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "Vali &pilt"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Lis&a link"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Lisa sündmus"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+#, fuzzy
+msgid "Offset Scale"
+msgstr "Kaugus tiitlist:"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+#, fuzzy
+msgid "Title wave"
+msgstr "Tiitel: %1"
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/water.xml.in.h:16
+#, fuzzy
+msgid "Water Effect"
+msgstr "Töölaua efektid"
+
+#: ../metadata/water.xml.in.h:17
+#, fuzzy
+msgid "Water offset scale"
+msgstr "Kaugus tiitlist:"
+
+#: ../metadata/water.xml.in.h:18
+#, fuzzy
+msgid "Wave effect from window title"
+msgstr "kaugus tiitlist"
+
+#: ../metadata/wobbly.xml.in.h:1
+#, fuzzy
+msgid "Focus Effect"
+msgstr "X Window süsteem"
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "X Window süsteem"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Toiming"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Resolutsioon"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Käivita Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Töölaua efektid"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Töölaua efektid"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "X Window süsteem"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Töölaua efektid"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "X Window süsteem"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Draiver"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Toiming"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Tühik"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Toiming"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "Sorimisjärjestuse muutmine"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Resolutsioon"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Käivita Windows"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filtreeri seda kausta"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Töölauad"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "XF86ZoomIn"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "XF86ZoomOut"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "XF86ZoomIn"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Kiirus:"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Töölauad"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Ekraani pööramine"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "XF86ZoomOut"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "XF86ZoomIn"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Käsk tagastas '%1' : %2"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Tundmatu käsk "
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Käsku pole antud"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Käsku pole antud"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "PgDn"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Vasakule"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Paremale"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "PgUp"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Paremale"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "PgUp"
+
+#, fuzzy
+#~ msgid "Open window menu"
+#~ msgstr "Ava menüü"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "Tööriistad"
+
+#~ msgid "Menu"
+#~ msgstr "Menüü"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "KDE utiliidid"
+
+#, fuzzy
+#~ msgid "Splash"
+#~ msgstr "splash"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "Häälestusdialoog"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Aken"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "Menüü"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "Tööriistad"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Märguanded"
+
+#, fuzzy
+#~ msgid "Dnd"
+#~ msgstr "End"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "Ekraan"
+
+#~ msgid "Unknown"
+#~ msgstr "Tundmatu"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Häälestamine"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "MShadow"
+
+#, fuzzy
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "X Window süsteem"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D kiirenduse aktiveerimine"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Kiirus:"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Venemaa Föderatsioon"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Vene"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Töölaua efektid"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Mitteaktiivne vajutatud:"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Mitteaktiivne vajutatud:"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Kaugtöölaud"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D kiirenduse aktiveerimine"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Registreerimiskood"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Kiirus:"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Vali &pilt"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Käivita Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Toiming"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Määra filter"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Resolutsioon"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Kaugus tiitlist:"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows NT"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows NT"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Kiirus:"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Töölauad"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "XF86ZoomOut"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "XF86RotateWindows"
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "Ekraani pööramine"
+
+#, fuzzy
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "XF86RotateWindows"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Käsku pole antud"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Tundmatu käsk "
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Korni"
+
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "&Näita muudatusi"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "XF86Terminal"
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 0000000..8cc7fba
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,3292 @@
+# translation of eu-compiz.po to Basque
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Ander Elortondo <ander.elor@gmail.com>, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: eu-compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-08-25 10:20+0200\n"
+"Last-Translator: Ander Elortondo <ander.elor@gmail.com>\n"
+"Language-Team: Basque <librezale@librezale.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Mahaigaina"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Leiho kudeatzailea"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Bat ere ez"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Itzala"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximizatu"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Horizontalki maximizatu leihoa"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Bertikalki maximizatu leihoa"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Ikonotua"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatikoki goratu"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Azpian"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Leiho Menua"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Leihoko titulu barra gainetik sagu gurpila biratzean hartu beharreko ekintza."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Lausotze mota"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity gaian leiho aktiboko opakutasuna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity gaian leiho aktiboko opakotasun itzala"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity gaiaren opakutasuna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity gaiaren opakotasun itzala"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Metacity gaiaren dekorazioaetan erabili beharreko opakutasuna leiho "
+"aktiborako"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Metacity gaiaren dekorazioaetan erabili beharreko opakutasuna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Itzaldu leiho aktiboa metacity dekorazio gaia erabiliz, opakutik "
+"transluzidora."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Itzaldu leihoak metacity dekorazio gaia erabiliz, opakutik transluzidora."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Sagu gurpil ekintza titulu-barran"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Leiho dekoraziorako lausotze mota"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Erabili metacity gaia"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Erabili metacity gaia leiho dekorazioa marraztean"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Itxi leihoa"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Leheneratu leihoa"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizatu leihoa"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Leihoa Minimizatu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Ezarri gainean"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Itsatsi"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Itzala kendu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Gainean ezartzea kendu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "itsastea kendu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "\"%s\" leihoak ez du erantzuten."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Aplikazio honi irtetzera behartuz, gorde gabeko aldaketak galtzea ekar "
+"dezake."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Irtetzera behartu"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Oharrak idatzi"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Betetze kolorea oharretan"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Oharren marra kolorea"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Oharren plugina"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Garbitu"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Marraztu"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Marraztu tresna erabiliz"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Betetze kolorea oharrentzat"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Hasi"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Hasi oharren marraztea"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Hasi oharren ezabatzea"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Hasi ezabatzea"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Lerro zabalera"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Lerro zabalera oharrentzat"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Marra kolorea oharrenzat"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Marra zabalera"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Marra zabalera oharrentzat"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alfa lausotzea"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alfa lausotze leihoak"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Lausotze iragazkia"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Lausotze oklusioa"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Lausotze saturazioa"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Lausotze abiadura"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Lausotze leihoak"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Leiho atal transluzidoen atzeko lausotzea"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Lausotze saturazioa"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Lausotze leihoak"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Fokua ez duten leihoen lausotzea"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Beste leiho batek ilundutako pantaila eremuen lausotzea ezgaitu"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Lausotzerako erabilitako iragazki metodoa"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fokoaren Lausotzea"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Leihoen foko lausotzea"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussiar"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gauss Erradioa"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gaussiar Indarra"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gauss erradioa"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gaussiar indarra"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Testura independente lagina"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap DM"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap Detaile Maila"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pultso"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Pultso efektua"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Erabili testura eskuragarriak ahal bezain testura independente lagin "
+"sortzeko."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Leiho lausotze abiadura"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Foko lausotzeak eragina izango duen leihoak"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Alfa lausotzea lehenetsita izango duten leihoak"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Klonatu irteera"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Hasi klonatze hautapena"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Irteera klonatze kudeatzailea"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Shell command0 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Shell command1 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Shell command10 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Shell command11 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Shell command2 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Shell command3 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Shell command4 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Shell command5 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Shell command6 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Shell command7 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Shell command8 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Shell command9 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Shell command0 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Shell command1 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Shell command10 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Shell command11 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Shell command2 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Shell command3 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Shell command4 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Shell command5 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Shell command6 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Shell command7 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Shell command8 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Shell command9 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Shell command0 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Shell command1 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Shell command10 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Shell command11 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Shell command2 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Shell command3 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Shell command4 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Shell command5 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Shell command6 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Shell command7 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Shell command8 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Shell command9 komandoa exekutatuko duen laster-tekla"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "0 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "1 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "10 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "11 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "2 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "3 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "4 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "5 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "6 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "7 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "8 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "9 komando lerroa"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_0komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_1komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_10komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_11komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_2komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_3komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_4komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_5komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_6komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_7komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_8komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Shellean exekutatu beharreko komando lerroa exekutatu_9komandoa abiaraztean"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Komandoa"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Exekutatu 0 komandoa"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Exekutatu 1 komandoa"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Exekutatu 10 komandoa"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Exekutatu 11 komandoa"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Exekutatu 2 komandoa"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Exekutatu 3 komandoa"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Exekutatu 4 komandoa"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Exekutatu 5 komandoa"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Exekutatu 6 komandoa"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Exekutatu 7 komandoa"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Exekutatu 8 komandoa"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Exekutatu 9 komandoa"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Plugin aktiboak"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Gaitu pantaila osoa marraztean ez birbideratzea pantailaz kanpoko pixmapsera"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Kanpai entzungarri"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Sistemako beep entzungarri"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatikoki goratu"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Automatikoki goratzeraren atzerapena"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Irteera gailuen detekzio automatikoa"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Freskatze tasaren detekzio automatikoa"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Onena"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klik enfokatzeko"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Leihoan klik egitean mugi sarrera fokua berari"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Itxi leiho aktiboa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Lehenetsitako ikonoa"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Lehenetsitako leihoaren ikono irudia"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Mahaigain Kuboa"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Irteerak detektatu"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Freskatze-tasa detektatu"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Saguaren erakuslea pantaila ertzean egon behar duen denbora akzioa hasi "
+"aurretik."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Ertz abiarazlearen atzerapen denbora"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Azkarra"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Foku Prebentzio maila"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Foku Prebentzioa Leihoak"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Foku prebentzioa leihoak"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Behartu irteera independenteko margotzea."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Aukera orokorrak"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Compiz aukera orokorrak"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Ona"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ezkutatu ataza-barran ez dauden leihoak"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Ezkutatu leiho guztiak eta mahaigaina enfokatu"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Gorde ataza-barran ez dauden leihoak mahaigain erakuste moduan sartzean"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Altura"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Horizontal tamaina birtuala"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Ahal denean erabili trinkotzea irudietatik eratorritako testurentzat"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ez ikusi iradokizunak maximizatua dagoenean"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ez ikusi tamaina handitze eta itxura iradokizunak leihoa maximizatua "
+"dagoenean"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Hautatutako leihoak goratu arretiko tartea"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Ping mezuen arteko tartea"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Foku lapurtze prebentzio maila"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Argitasuna"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Orain aktibo dauden plugin zerrenda"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Irteera gailuak deskribatzeko kateen zerrenda"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Azpian"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Azpiko leihoa"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Azpiko leihoa beste leihoen atzean"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Horizontalki maximizatu leihoa"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Bertikalki maximizatu leihoa"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Leiho aktiboa maximizatu"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Leiho aktiboa horizontalki maximizatu"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Leiho aktiboa bertikalki maximizatu"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Leiho aktiboa minimizatu"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normala"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Mahaigain kopurua"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Mahaigain birtualen kopurua"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Itzali"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Pantaila eguneratzeak zuritze bertikalaren denboran bakarrik baimendu"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Irteerak"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Gainjartze irteeren kudeaketa"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Margotu gailu bakoitza independente, nahiz eta irteera gailuak gainjarri"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping atzerapena"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Hobetsi irteera handiagoa"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Hobetsi irteera txikiagoa"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Goratu klikatzean"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Goratu leihoa"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Goratu hautatutako leihoa denbora tarte baten ondoren"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Goratu leihoa beste leihoen gainetik"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Goratu leihoak klikatzean"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Freskatze-tasa"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Pantaila tamaina biderkatzailea tamaina horizontal birtualerako"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Pantaila tamaina biderkatzailea tamaina bertikal birtualerako"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Ikus mahaigaina"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animazioak motel"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Modu adimentsua"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank-era sinkronizatu"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Testura trinkotzea"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Testura iragazkia"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Testura iragazten"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Pantaila marrazteko maiztasuna (aldiz/segunduko) "
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Gaitu/ezgaitu leihoa maximizatua"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Gaitu/ezgaitu leihoa maximizatua horizontalki"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Gaitu/ezgaitu leihoa maximizatua bertikalki"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Gaitu/ezgaitu leihoa itzalduta"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Gaitu/ezgaitu leiho aktiboa maximizatua"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Gaitu/ezgaitu leiho aktiboa maximizatua horizontalki"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Gaitu/ezgaitu leiho aktiboa maximizatua bertikalki"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Gaitu/ezgaitu leiho aktiboa itzaldua"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Gaitu/ezgaitu animazio motelen erabilpena"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Leheneratu leiho aktiboa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Ez-birbideratu pantaila osoko leihoak"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Erabili argi barreiatua pantaila transformatzean"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Tamaina Birtual Bertikala"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Oso altua"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Gainjartze irteera gailuen artean hobetsiko dena"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Leiho menu tekla konbinazioa"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Leiho menu laster-tekla"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Azelerazioa"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Irudia doitu"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Goiko aurpegiko irudia doitu biratzeko"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Aurreratu hurrengo diapositibara"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Skydome animatu"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animatu skydome kuboa biratzean"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatiko"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Kuboaren goiko eta azpiko aurpegien kolorea"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"skydome atzera biratze gradientean, azpiko kolore-gelditzean erabili "
+"beharreko kolorea"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"skydome atzera biratze gradientean, goiko kolore-gelditzean erabili "
+"beharreko kolorea"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kubo kolorea"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kubo kolorea"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Mahaigain Kuboa"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Bueltatze azelerazioa"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Bueltatze abiadura"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Bueltatze denbora-pausoa"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Kalitate handiagoko eskalan sortu mipmaps posible denean"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Joan atzera aurreko diapositibara"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Irudi fitxategiak"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Skydomean testura bezala erabiltzeko irudia"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Kuboaren gardentasuna hasi, biratzea saguak gidatzen badu"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Kubo Barrua"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Kubo barrua"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Kuboko goi aurpegian errenderatuko diren PNG eta SVG irudien zerrenda"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Irteera anitzeko modua"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Kubo anitz"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Hurrengo diapositiba"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Kubo handian"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opakutasuna biratzean"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opakutasuna biratzen ez dabilenean"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Mahaigain leihoaren opakutasuna biratzean."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Mahaigain lehioaren opakutasuna biratzen ez dabilenean."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Kokatu leihoak kuboan"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Aurreko diapositiba"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Errendatu skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Irudia eskalatu"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Eskalatu irudia kuboaren goi aurpegia estaltzeko"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Hautatu nola erakutsi kuboa irteera anitzeko gailuak erabiltzean."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Skydomeko gradientearen amaiera kolorea"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Skydomeko gradientearen hasiera kolorea"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Skydome irudia"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Abiadura"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "denbora-pausoa"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Gardentasuna saguaz biratzean bakarrik"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Zabaldu"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Zabaldu kuboa"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus kontrol tresna"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Gaitu mipmaps sortzea dekorazio testurentzat"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Komandoa"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekorazio leihoak"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Jadanik dekoratzailerik ez badago martxan, exekutatuko den komando lerroa"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Itzalaren X desplazamendua salto"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Itzalaren Y desplazamendua salto"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Itzalaren kolorea salto"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Itzalaren opakutasuna salto"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Itzalaren erradio salto"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Itzal Kolorea"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Itzalaren X desplazamendua"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Itzalaren Y desplazamendua"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Itzalaren opakutasuna"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Itzalaren Erradioa"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Leihoak itzaldu"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Leiho Dekorazioa"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Leiho dekorazioak"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Dekoratuko diren leihoak"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Itzala izango duten leihoak"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Distira (%tan) erantzuten ez duen leihoek"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Abiadura konstantea"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Denbora konstantea"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Erantzuten ez duten leihoen tamaina aldatu"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Leiho kudeatzailearen eskariei erantzuten ez duten leihoen tamaina aldatu"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Iraungitze modua"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Iraungi minimizatu/ireki/ixtean"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Iraungitze abiadura"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Iraungitze denbora"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Iraungitze efektua ondorengo leiho gertaeretan minimizatu/ireki/itxi"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Sistemako kanpaian iraungitze efektua"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Leihoak iraungiz agertu aukeratzean eta iraungiz desagertu aukeraketa "
+"galtzean"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Iraungi leihoak"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Leihoak iraungitzen"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Pantaila osoko ikus-kanpaia"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Pantaila osoko iraungitzea sistema kanpaiak jotzean"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Erantzuten ez duten leihoen saturazioa (%tan)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Erantzuten ez duen leiho distira"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Erantzuten ez duen leiho saturazioa"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Ikus-Kanpaia"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Leiho iraungitze modua"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Leiho iraungitze abiadura \"abiadura konstante\" moduan"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Leiho iraungitze denbora (ms) \"denbora konstante\" moduan"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Iraungitu beharreko leihoak"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Muntatze puntua"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Muntatze puntua"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Erabiltzailearen-espazio Fitxategi Sistema"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Erabiltzailearen-espazio fitxategi sistema"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf kontrol tresna"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib loop nagusiaren euskarria"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Terminala zabaldu"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Exekuzio elkarrizketa"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Terminal komando lerroa"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Pantaila-argazkia komando lerroa"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Ikus Menu Nagusia"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Ikus aplikazio exekuzio elkarrizketa"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Ikus menu nagusia"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Egin pantaila-argazkia"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Egin pantaila-argazkia leiho batena"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Terminal komando lerroa"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Leiho pantaila -argazki komando lerroa"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini fitxategi lauaren tresna"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Fitxategi aldaketaren jakinarazpen plugina"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig kontrol tresna"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Ikonotze Efektua"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Ikonotu leihoak"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Ikonotze abiadura"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Ikonotze denbora-pausoa"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Itzaltze Erresistentzia"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Itzaltze erresistentzia"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Eraldatu leihoak ikonotzean edo handitzean"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Leihoak ikonotzean eraldatuko dira"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Mugatu Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Mugatu Y koordenatua laneko areara"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "Ez eguneratu kokapena leiho zerbitzarian, mugitzen amaitu arte"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Hasi leiho mugimendua"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Kokapen alferra"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Leiho Mugimendua"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Leiho mugimendua"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opakutasuna"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Mugitzen ari diren leihoaen opakutasuna"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Maximizatutako leihoak arrastatzean automatikoki askatu eta desmaximizatu"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Askatu maximizatutako leihoak"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Hasi leihoa mugitzen"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Distira"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Distira"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Distira"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Distira"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Distira (%tan) erantzuten ez duen leihoek"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Txikitu opakutasuna"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Handitu opakutasuna"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Opakutasun aldatze pausoa"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Opakutasun aldatze pausoa"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Opakotasun pausoa"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Mugitzen ari diren leihoaen opakutasuna"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opakutasuna biratzean"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturazioa"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturazioa"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturazioa"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturazioa"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Erantzuten ez duten leihoen saturazioa (%tan)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Leiho dekorazioak"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Leihoaren opakutasun balioak"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Map leihoak"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Berez kokatuko diren leihoak"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Lehenetsita transluzidoa izan behar duten leihoak"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Berez kokatuko diren leihoak"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Leiho kokapenerako algoritmoa"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskadan"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Zentratua"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Leiho kudeatzailea"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Behartu leihoen kokatzea"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Mahaigain aurkezpen horizontalen kokapena"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Mantendu lan arean"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Mantendu leiho kokapena lan arean, nahiz eta kokapen hau ez etorri bat "
+"kokapen zehatzaz"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Kokatu leihoak"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Kokatu irteera guztietan zehar "
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Kokatu leihoak toki egokian mapeatzerakoan"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Kokapen Modua"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Kokatutako leihoak"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Ausaz"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Hautatu nola kokatuko diren leihoak hainbat irteera gailu erabiltzen badira."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Adimentsua"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Irteera gailu aktiboa erabili"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Fokua duen leihoaren irteera gailua erabili"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Aukeratu irteera gailuan erakusleaz"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Mahaigain aurkezpen bertikalen kokapenak"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Mahaigain aurkezpenan kokatutako leihoak"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Leihoak kokatzeko konponbideak"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Berez kokatuko diren leihoak"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Mahaigain aurkezpen konkretuan berez kokatuko diren leihoak"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Kokatzera behartuko diren leihoak, nahiz eta leiho kudeatzaileak horiek "
+"kokatzea saihestu "
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Leiho dekorazioak"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Konponbideak"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X kokapenak"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X mahaigain aurkezpen kokapenak"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X kokapen balioak"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y kokapenak"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y mahaigain aurkezpen kokapenak"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y kokapen balioak"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png irudi kargatzailea"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regex parekatzea"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex leiho parekatzea"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Ertz Kolorea"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Kanpoko-lerro eta lauki tamaina aldaketa moduan ertz kolorea"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Lehenetsitako Tamaina aldaketa Modua"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Lehenetsitako modua leiho tamaina aldaketan"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Betetze Kolorea"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Kanpoko-lerro eta lauki tamaina aldaketa moduan betetze kolorea"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Hasi leiho tamaina aldatze normala"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Hasi kanpoko-lerro leiho tamaina aldaketa"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Hasi lauki leiho tamaina aldaketa"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Hasi tiratze leiho tamaina aldaketa"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Hasi Lehio Tamaina-aldaketa"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Leihoak Normal Tamainaz-aldatu"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Kanpo-lerroa"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Kanpo-lerroaz Tamaina-aldatu Leihoei"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Laukia"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Laukiaz Tamaina-aldatu Leihoei"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Tamaina-aldatu Leihoari"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Tamaina-aldatu leihoari"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Hasi tamaina-aldatzen leihoari"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Hasi tamaina-aldatzen leihoari tiratuz"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Hasi tamaina-aldatzen leihoari normal"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Hasi tamaina-aldatzen leihoari kanpo-lerroaz"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Hasi tamaina-aldatzen leihoari laukiaz"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Tiratu"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Tamaina-aldatu leihoei tiratuz"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Tamaina-aldatze normala erabiliko duten leihoak"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Tamaina-aldatzea kanpo-lerroaz egingo duten leihoak"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Tamaina-aldatzea laukiaz egingo duten leihoak"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Tamaina-aldatzea tiratuz egingo duten leihoak"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD ertza irauli"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Mugitu Ertz Iraultzea"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Ertz Iraultze Erakuslea"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Iraultze Denbora"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Irauli ezkerreko mahaigain aurkezpen eta okertu erakuslea"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Irauli hurrengo mahaigain aurkezpenera, objektua pantaila ertzera "
+"arrastatzean"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Irauli hurrengo mahaigain aurkezpenera, erakuslea pantaila ertzera mugitzean"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Irauli hurrengo mahaigain aurkezpenera, leihoa pantaila ertzera mugitzean"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Irauli eskumako mahaigain aurkezpenera eta okertu erakuslea"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Alderantzikatu Y ardatza erakusle mugimendurako"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Alderantzikatu Y erakuslean"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Erakuslearen Sentikortasuna"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Altzatu biratzean"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Altzatu leihoa biratzean"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Biratu kuboa"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Biratu ezkerrera irauliz"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Biratu eskumara irauliz"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Ezkerrera biratu"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Ezkerrera biratu leihoaz"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Eskumara biratu"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Eskumara biratu leihoaz"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Nora Biratu"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "1 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "1 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "10 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "10 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "11 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "11 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "12 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "12 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "2 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "2 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "3 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "3 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "4 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "4 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "5 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "5 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "6 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "6 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "7 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "7 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "8 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "8 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "9 Aurpegira Biratu"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "9 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Biratu kuboa"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Mahaigain kuboa biratu"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Ezkerrera biratu"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Ezkerrera biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Eskumara biratu"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Eskumara biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "1 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "1 Aurpegira Biratu Leihoaz"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "1 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "1 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "10 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "10 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "11 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "11 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "12 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "12 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "2 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "2 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "3 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "3 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "4 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "4 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "5 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "5 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "6 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "6 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "7 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "7 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "8 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "8 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "9 aurpegira biratu"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "9 aurpegira biratu eta eraman leiho aktiboa"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Biratu mahaigain aurkezpena"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Biratu leihoa"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Biratu leihoaz"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Biratze azelerazioa"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Biratze abiadura"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Biratze denbora-pausua"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Biratze zoom"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Erakusle mugimenduaren sentikortasuna"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Atxiki kubo biratzea azpiko aurpegiari"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Atxiki kubo biratzea goiko aurpegiari"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Atxiki Azpiko Aurpegiari"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Atxiki Goiko Aurpegiari"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Hasi Biratzea"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Denbora-muga mahaigain aurkezpena irauli aurretik"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Opakutasun kopurua ehunekotan"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Handia"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Klikatu mahaigaina, mahaigaina ikusteko"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Ilundu atzeko-planoa"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Ilundu atzeko-planoa leihoak eskalatzean"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Ikurra"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Sartu Mahaigain Ikusteko moduan, eskalatzean mahaigaina klikatzean"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Nabarmentze Denbora"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Abiarazi Leiho Hautatzailea"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Abiarazi leiho hautatzailea leiho guztientzat"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Abiarazi leiho hautatzailea leiho taldearentzat"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Abiarazi leiho hautatzailea uneko irteerako leihoentzat"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Diseinua eta transformatzen hasi leiho guztiak"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Diseinua eta transformatzen hasi leiho taldea"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Diseinua eta transformatzen hasi leihoak"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Diseinua eta transformatzen hasi uneko irteerako leihoak"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Irteera gailu guztietan"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Uneko irteera gailuan"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Gainjarri Ikonoa"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Gainjarri ikonoa leihoetan eskalatu eta gero"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Eskalatu"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Eskalatu Lehioak"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Eskalatze abiadura"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Eskalatze denbora-pausoa"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Eskalatu lehioak"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Hautatu non eskalatuko diren leihoak hainbat irteera gailu erabiltzen badira."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Leiho arteko tartea"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Tartea"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Denbora (ms) eskalatze modua amaitzeko, erakuslea leiho gainetik pasatzean"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Eskalatze moduan eskalatuko diren leihoak"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Auomatikoki ireki pantaila argazkia aplikazio honetan"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Direktorioa"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Hasi laukizuzen pantaila argazkia"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Abiarazi aplikazioa"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Pantaila argazkiak direktorio honetan sartu"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Pantaila argazkia"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Pantaila argazkia plugin"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg irudi kargatzailea"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Distira kopurua ehunekotan"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Saturazio kopurua ehunekotan"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Aplikazio Aldatzailea"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Auto-biratu"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Eraman aurrealdera"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Eraman hautatutako leihoak aurrealdera"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Leihoak aldatzerakoan hurruntze zooma mahaigainari"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikonoa"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Ikonotua"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Hurrengo panela"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Hurrengo leihoa"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Hurrengo leihoa (Leiho guztiak)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Hurrengo leihoa (popup ez)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Popup aldatzailea bistara ez badago eta hautatu hurrengo leihoa"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Popup aldatzailea bistara ez badago eta hautatu hurrengo leihoa, leiho "
+"guztien artean"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Popup aldatzailea bistara ez badago eta hautatu aurreko leihoa"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Popup aldatzailea bistara ez badago eta hautatu aurreko leihoa, leiho "
+"guztien artean"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Aurreko panela"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Aurreko leihoa"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Aurreko leihoa (leiho guztiak)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Aurreko leihoa (popup ez)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Biratu hautatutako leihoa aldatu bitartean"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Hautatu hurrengo paneleko leiho mota."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Hautatu hurrengo leihoa popup leihoa ikusi gabe."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Hautatu aurreko paneleko leiho mota."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Hautatu aurreko leihoa popup leihoa ikusi gabe."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Erakutsi ikonoa koadro txiki ondoan."
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Erakutsi txikitutako leihoak"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Aldatzailearen abiadura"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Aldatzailearen denbora-pausoa"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Leiho aldatzailea"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Aldatzailean erakutsiko diren leihoak"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "hornitu YV12 colorspace euskarria"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Bideo Playback"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Bideo playback"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 colorspace"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Gehitu lerroa"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Gehitu puntua"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Gehitu ur efektuak mahaigain ezberdinen akzioei"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Euri-tanten arteko denbora (ms)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Gaitu erakuslearen ur efektuak"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Lerroa"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Eskala desplazamendua"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Puntua"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Euri atzerapena"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Uhin titulua"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Gaitu/ezgaitu euria"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Gaitu/ezgaitu euri efektua"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Gaitu/ezgaitu wiper"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Gaitu/ezgaitu wiper efektua"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Ur efektua"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Ur desplazamendu eskala"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Uhin efektua leiho titulutik"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Foku efektua"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Leiho foku efektua"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Leihoak enfokatu "
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Marruskadura"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Harrapatu leihoak"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Sareta erresoluzioa"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Leiho atxikitze alderantzikatua "
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Leihoak dardara egin dezala"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Map Efektua"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Map leiho efektua"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Map leihoak"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maximizatu efektua"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Sareta tamaina minimoa"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Vertex sareta tamaina minimoa"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Mugitu leihoak"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Dardara"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Atxikitze alderantzikatua"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Atxikitu leihoak"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Malguki marruskadura"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Malguki K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Malguki konstantea "
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Gaitu/ezgaitu leiho atxikitzea"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Erabili malguki modua dar-dar leiho efekturako"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Vertex sareta erresoluzioa"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Dar-dar egin behar duten leihoak enfokatzean"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Dar-dar egin behar duten leihoak eustean "
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Dar-dar egin behar duten leihoak mapatzean"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Dar-dar egin behar duten leihoak mugitzean"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Dar-dar efektua leihoak maximizatzean eta maximizatzea kentzean"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Dardara duten leihoak"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Iragazki lineala"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Erabili iragazki lineala zooma gerturatzean"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Mahaigain zooma"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Zoom gerturatzea"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Zoom urrundu"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Zoom pan"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoom abiadura"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Zoom denbora-pausoa"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoom eta pan mahaigain kuboa"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Zoom faktorea"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Zoom pan"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "1 komando lerroa"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Exekutatu 1 komandoa"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Pantaila-argazkia komando lerroa"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Pantaila-argazkia komando lerroa"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Txikitu leiho opakutasuna"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Handitu leiho opakutasuna"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Lehenetsita transluzidoak izango diren leihoentzako opakutasun balioak"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Leihoen opakutasuna"
+
+#~ msgid "Background Images"
+#~ msgstr "Atzeko plano Irudiak"
+
+#~ msgid "Background images"
+#~ msgstr "Atzeko plano irudiak"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Kokatu leihoak planoan"
+
+#~ msgid "Plane Down"
+#~ msgstr "Planoa Behera"
+
+#~ msgid "Plane Left"
+#~ msgstr "Planoa Ezkerrera"
+
+#~ msgid "Plane Right"
+#~ msgstr "Planoa Eskumara"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Planoa 1 Aurpegira"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Planoa 10 Aurpegira"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Planoa 11 Aurpegira"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Planoa 12 Aurpegira"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Planoa 2 Aurpegira"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Planoa 3 Aurpegira"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Planoa 4 Aurpegira"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Planoa 5 Aurpegira"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Planoa 6 Aurpegira"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Planoa 7 Aurpegira"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Planoa 8 Aurpegira"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Planoa 9 Aurpegira"
+
+#~ msgid "Plane Up"
+#~ msgstr "Planoa Gora"
+
+#~ msgid "Plane down"
+#~ msgstr "Planoa behera"
+
+#~ msgid "Plane left"
+#~ msgstr "Planoa ezkerrera"
+
+#~ msgid "Plane right"
+#~ msgstr "Planoa eskumara"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Planoa 1 aurpegira"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Planoa 10 aurpegira"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Planoa 11 aurpegira"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Planoa 12 aurpegira"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Planoa 2 aurpegira"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Planoa 3 aurpegira"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Planoa 4 aurpegira"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Planoa 5 aurpegira"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Planoa 6 aurpegira"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Planoa 7 aurpegira"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Planoa 8 aurpegira"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Planoa 9 aurpegira"
+
+#~ msgid "Plane up"
+#~ msgstr "Planoa gora"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Mahaigain leiho opakotasun iraungitze denbora."
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..a94e3b3
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,4782 @@
+# translation of compiz.po to Finnish
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2003 SuSE Linux AG.
+#
+# Michael Hintsala <mhintsa@fi.ibm.com>, 2003. 2001.
+# Jyri Palokangas <jmp@netti.fi>, 2006.
+# Jouni Hätinen <jounihat@iki.fi>, 2006.
+# Jani-Matti Hätinen <jani-matti.hatinen@iki.fi>, 2006.
+# Jani Hyytiäinen <janihy@gmail.com>, 2008.
+# Timo Jyrinki <timo.jyrinki@iki.fi>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2008-12-23 10:30+0100\n"
+"Last-Translator: Timo Jyrinki <timo.jyrinki@iki.fi>\n"
+"Language-Team: Finnish <laatu@lokalisointi.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Työpöytä"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Ikkunoiden hallinta"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ei mitään"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Näytä rullattuna"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Suurenna"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Suurenna vaakatasossa"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Suurenna pystytasossa"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Pienennä"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Nosta"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Laske"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Ikkunavalikko"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Suoritettava toiminto kun hiiren kiekkoa rullataan ikkunan otsikkopalkissa"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Sumennustyyppi"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+"Aktiivisen Metacity-ikkunan läpinäkyvyysMetacity-teeman aktiivisen ikkunan "
+"läpinäkyvyys"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity-teeman aktiivisen ikkunan läpinäkyvyyden varjo"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity-teeman läpinäkyvyys"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity-teeman läpinäkyvyyden varjo"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Läpinäkyvyys aktiivisessa ikkunassa käytettäessä Metacity-teemaa kehyksineen"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Metacity-teeman kehyksiin käytettävä läpinäkyvyys"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Varjosta aktiiviset ikkunat Metacity-teemaa kehyksineen käytettäessä "
+"läpikuultamattomasta läpikuultavaan"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Varjosta ikkunat Metacity-teemaa kehyksineen käytettäessä "
+"läpikuultamattomasta läpikuultavaan"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Hiiren rullan napsautuksen vaikutus ikkunan otsikkoon"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Sumennustyyppi ikkunan kehyksille"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Käytä Metacity-teemaa"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Käytä Metacity-teemaa ikkunoiden kehyksissä"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Sulje ikkuna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Palauta suurennettu ikkuna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Suurenna ikkuna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Pienennä ikkuna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Näytä päällimmäisenä"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Näytä kaikilla työpöydillä"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Älä näytä rullattuna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Älä näytä päällimmäisenä"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Älä näytä kaikilla työpöydillä"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Ikkuna \"%s\" ei vastaa."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Tämän sovelluksen sulkeminen väkisin saa tallentamattomat muutokset "
+"katoamaan."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "Sulje _väkisin"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Piirros"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Piirroksen täyttöväri"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Piirroksen ääriviivojen väri"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Piirroksen liitännäiset"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Tyhjennä"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Piirrä"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Piirrä työkalulla"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Piirroksen väri"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Aktivoi"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Aktivoi piirtäminen"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Aktivoi piirtämisen pyyhkiminen"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Aktivoi pyyhkiminen"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Viivan leveys"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Viivan leveys piirroksiin"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Viivan väri piirroksiin"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Viivan leveys"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Viivan leveys piirroksiin"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xbilineaarinen"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alpha-sumennus"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Sumenna ikkunat alpha-sumennuksella"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Sumennuksen suodatin"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Sumennuksen purevuus"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Sumennuksen kylläisyys"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Sumennuksen nopeus"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Sumenna ikkunat"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Sumenna ikkunoiden läpinäkyvien osien takana"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Sumennuksen kylläisyys"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Sumennettavat ikkunatyypit"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Sumenna ikkunat joilla ei ole keskitystä"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Poista sumennuksen käyttö alueissa joista ikkunat ovat tehneet "
+"vaikeaselkoiset"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Sumentamiseen käytettävä suodatin"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Keskityksen sumennus"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Sumenna passiiviset ikkunat"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussian"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gaussin säde"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gaussin voimakkuus"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gaussin säde"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gaussin voimakkuus"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Riippumaton tekstuurien nouto"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmapin yksityiskohtien taso"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap-kuvien yksityiskohtien tarkkuus"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Syke"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Syketehoste"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Käytä käytettävissä olevia teksturointiyksiköitä tekemään mahdollisimman "
+"monta riippumatonta tekstuurien noutoa."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Ikkunan sumennuksen nopeus"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Ikkunatyypit, joihin keskityksen sumennus vaikuttaa"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Ikkunatyypit, joiden tulisi käyttää alfa sumennusta oletuksena"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Ulostulon kloonaus"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Aktivoi kloonauksen valinta"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Ulostulon kloonauksen käsittelijä"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Näppäinyhdistelmä, jota painettaessa ajetaan komento command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Pikanäppäimet"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Komentorivi 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Komentorivi 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Komentorivi 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Komentorivi 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Komentorivi 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Komentorivi 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Komentorivi 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Komentorivi 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Komentorivi 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Komentorivi 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Komentorivi 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Komentorivi 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command0 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command1 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command10 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command11 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command2 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command3 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command4 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command5 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command6 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command7 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command8 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Suoritettava komentorivi, kun run_command9 suoritetaan"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Komennot"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Pikanäppäimet"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Pikanäppäimet"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Suorita komento 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Suorita komento 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Suorita komento 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Suorita komento 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Suorita komento 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Suorita komento 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Suorita komento 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Suorita komento 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Suorita komento 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Suorita komento 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Suorita komento 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Suorita komento 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Käytössä olevat liitännäiset"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "Kokoruutuikkunoita ei uudelleenohjata piilotetuille pikselikartoille"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Kuuluva äänimerkki"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Kuuluva järjestelmän huomautus"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automaattinosto"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Automaattinoston viive"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Ulostulolaitteiden automaattinen tunnistus"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Virkistystaajuuden automaattinen tunnistus"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Paras"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Tarkenna hiiren napsautuksesta"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Hiiren napsautus ikkunalla tarkentaa sen"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Sulje aktiivinen ikkuna"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Oletuskuvake"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Oletuskuva ikkunoille, joilla ei ole kuvaketta"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Työpöydän koko"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Tunnista ulostulot"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Tunnista virkistystaajuus"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Näyttöasetukset"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Osoittimen paikallaanoloaika näytön reunalla, ennen kuin reunatoiminto "
+"suoritetaan."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Reunaliipaisimen viive"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Nopea"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Kohdistus- ja nostokäyttäytyminen"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Kohdistuksen eston taso"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Keskityksen estäminen ikkunoissa"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Keskityksen estäminen ikkunoissa"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Pakota ulostulojen itsenäinen piirto."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Yleiset asetukset"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Yleiset Compizin asetukset"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Hyvä"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Piilota tehtäväpalkissa näkymättömät ikkunat"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Piilota kaikki ikkunat ja näytä työpöytä"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Piilota ikkunat jotka eivät ole ikkunaluettelossa, kun käytetään \"näytä "
+"työpöytä\" -toimintoa"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Korkea"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Virtuaalinen koko leveyssuunnassa"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Käytä pakkausta kuvista muunnetuille tekstuureille, jos mahdollista"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Jätä huomiotta vihjeet suurennettaessa"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Ohita kokolisäys- ja kuvasuhdevihjeet ikkunaa suurennettaessa"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Aikaväli ennen valittujen ikkunoiden nostamista"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Viive ping-viestien välillä"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Pikanäppäimet"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Kohdistuksen nappaamisen eston taso"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Valaistus"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista tällä hetkellä aktiivisista liitännäisistä"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Ulostulolaitteita kuvaavien merkkijonojen luettelo"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Matala"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Laske ikkuna"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Laske ikkuna taka-alalle"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Suurenna ikkunaa vaakatasossa"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Suurenna ikkunaa pystytasossa"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Suurenna aktiivinen ikkuna"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Suurenna aktiivista ikkunaa vaakatasossa"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Suurenna aktiivista ikkunaa pystytasossa"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Pienennä aktiivinen ikkuna"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Tavallinen"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Työtilojen lukumäärä"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Virtuaalityöpöytien lukumäärä"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Pois päältä"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Suorita vain näyttöpäivitykset pystytasossa tehtävän tyhjäyksen aikana"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Ulostulot"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Päällekkäisten ulostulojen käsittely"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Piirrä jokainen ulostulolaite itsenäisesti, vaikka ulostulolaitteet olisivat "
+"päällekkäin"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ikkunoiden tummentamisen viive"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Suosi suurempaa ulostuloa"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Suosi pienempää ulostuloa"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Nosta napsautuksesta"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Nosta ikkuna"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Nosta valittu ikkuna tietyn ajan jälkeen"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Nosta ikkuna muiden päälle"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Nosta ikkuna napsautuksesta"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Virkistystaajuus"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Näytön virtuaalikoon kerroin todelliseen kokoon leveyssuunnassa"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Näytön virtuaalikoon kerroin todelliseen kokoon pystysuunnassa"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Näytä työpöytä"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Hitaat animaatiot"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Älykäs tila"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synkronoi VBlankiin"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Tekstuurien pakkaus"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Tekstuurisuodatin"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Tekstuurisuodatus"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Kuinka usein ruutu päivitetään (1-200 krt/s)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Suurenna ikkuna"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Suurenna ikkuna vaakatasossa"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Suurenna ikkuna pystytasossa"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Pienennä ikkuna kehystilaan"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Suurenna aktiivinen ikkuna"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Suurenna aktiivinen ikkuna vaakatasossa"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Suurenna aktiivinen ikkuna pystytasossa"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Pienennä aktiivinen ikkuna kehystilaan"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Ota käyttöön hitaat animaatiot"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Palauta suurenettu aktiivinen ikkuna"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Kokoruutuikkunoita ei uudelleenohjata"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Käytä hajavaloa ruudun muuttuessa"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Pystysuuntainen virtuaalinen koko"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Hyvin korkea"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Mitä päällekkäisistä ulostulolaitteista suositaan"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Ikkunavalikon näppäinyhdistelmä"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+"Määrittää näppäinyhdistelmän ikkunavalikolle, joka saadaan myös klikkaamalla "
+"ikkunan kehystä vasemmalla hiiren painikkeella"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Kiihdytys"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Sovita kuva"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Sovita kannen ja pohjan kuva kuutiolle"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Etene seuraavaan diaan"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animoi Taivaankansi"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animoi taivaankansi työpöytäkuutiota kääntäessä"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Ulkoasu"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automaattinen"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Käyttäytyminen"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Kuution pohjan ja kannen väri"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Alin väri taivaankannen liukuvärissä"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Ylin väri taivaankannen liukuvärissä"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Kuution kannet"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kuution väri"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Työpöytäkuutio"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Kiihdytyskerroin"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Nopeuskerroin"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Aikaviivekerroin"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Luo mipmap skaalauksen laadun parantamiseksi mikäli se on mahdollista"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Takaisin edelliseen diaan"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Kuvatiedostot"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Taivaankannen tekstuurina käytettävä kuva"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Kuutio on läpinäkyvä vain kun sitä käännetään hiirellä"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Kuution sisäpinta"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Näyttää kuution sisäpinnan"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Lista kuution päälle asetettavista PNG- ja SVG-tiedostoista"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Useita ulostuloja"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Useita kuutioita"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Seuraava dia"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Yksi iso kuutio"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Läpikuultavuus pyörityksen aikana"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Läpikuultavuus kun kuutiota ei pyöritetä"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Työpöytien läpinäkyvyys pyörityksen aikana"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Työpöytien läpinäkyvyys kun kuutiota ei pyöritetä"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Asettele ikkunat työpöytäkuution pinnalle"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Edellinen dia"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Piirrä taivas"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Skaalaa kuvaa"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Skaalaa kuva kuution katon kokoiseksi"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Valitsee miten kuutio näyetään jos käyettään usempaa kuin yhtä ulostulo "
+"laitetta (näyttöä)"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Taivas"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Liukuvärin lopetusväri"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Liukuvärin aloitusväri"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Taivaan kuva"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Nopeus"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Aikaviive"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Läpinäkyvä vain hiirellä pyörittäessä"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Läpinäkyvä kuutio"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Avaa"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Avaa kuutio"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "D-Bus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "D-Bus-hallinnan taustaosa"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Salli mipmap kuvioiden käyttäminen kehysten tekstuureihin"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Komento"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Ikkunatyypit, joilla tulisi olla kehykset"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Kehystyskomento, joka suoritetaan kehystimen puuttuessa"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Varjon X-poikkeama"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Varjon Y-poikkeama"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Varjon väri"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Varjon läpinäkyvyys"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Varjon säde"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Varjon väri"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Varjon X-poikkeama"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Varjon Y-poikkeama"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Varjon läpinäkyvyys"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Varjon säde"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Ikkunatyypit, joilla tulisi olla varjo"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Ikkunan kehykset"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Ikkunan kehyksen asetukset"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Ikkunatyypit, jotka tulisi kehystää"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Ikkunatyypit, joille tulisi lisätä varjo"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Kirkkaus prosenteissa ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Vakionopeus"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Vakioaika"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Himmennä ikkunat, jotka eivät vastaa"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "Himmennä ikkunat, jotka eivät vastaa ikkunanhallinnan pyyntöihin"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Häivytystapa"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Häivytä pienentämisen, avaamisen ja sulkemisen yhteydessä"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Häivytyksen nopeus"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Häivytysviive"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Häivystehoste pienentämisen, avaamisen ja sulkemisen yhteydessä"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Häivitystehoste järjestelmän piipauksesta"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Ikkunat häivytetään näkyvistä/näkyviin"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Häivytä ikkunat"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Ikkunoiden häivytys"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Kokoruudun näkyvä kello"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Kokoruudun häivytystehoste järjestelmän piippauksesta"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Värikylläisyys prosenteissa ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Kirkkaus ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Värikylläisyys ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Näkyvä kello"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Ikkunan häivytystapa"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Ikkunan häivytysnopeus \"Vakionopeus\"-tilassa"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Ikkunan häivytysaika (millisekunneissa) \"Vakioaika\"-tilassa"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Ikkunatyypit, joita tulisi häivyttää"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Liitoskohta"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Liitoskohta"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Käyttäjätilan tiedostojärjestelmä"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Käyttäjätilan tiedostojärjestelmä"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf-tietokannan hallinta"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib-pääsilmukan tuki"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Avaa pääte"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Suorita komento -valintaikkuna"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Suorita päätekomento"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Kuvakaappauksen komento"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Näytä päävalikko"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Näytä Suorita komento -valintaikkuna"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Näytä päävalikko"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Ota kuvankaappaus"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Ota kuvankaappaus ikkunasta"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Päätteen komentorivi"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Ikkunan kuvakaappauksen komento"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Struktuurittomien Ini-viestien tietokannan hallinta"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Käyttäjätilan tiedostojärjestelmä"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig-tietokannan hallinta"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Pienennystehoste"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Pienennä ikkunat"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Pienennykseen käytetty aika"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Pienennyksen aikaväli"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Varjon vastussauma"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Varjon vastussauma"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Animoi ikkunoiden pienennys ja suurennus"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Ikkunatyypit, jotka tulisi muuntaa pienennettäessä"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Rajoita Y-koordinaatti"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Rajoita Y-koordinaatti työskentelyalueelle"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Älä päivitä serveripuolen sijaintia ikkunoissa kunnes siirtäminen on valmis"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Siirrä ikkunaa"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Laiska sijoittaminen"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Siirrä Ikkuna"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Ikkunan siirtäminen"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Läpinäkyvyys"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Liikkuvien ikkunoiden läpinäkyvyys"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Vapauta ja palauta suurennetut ikkunat automaattisesti siirrettäessä"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Vapauta suurennetut ikkunat"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Aloita ikkunan siirtäminen"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Kirkkaus"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Kirkkaus"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Kirkkaus"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Kirkkaus"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Kirkkaus prosenteissa ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Vähennä läpikuultavuutta"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Lisää läpikuultavuutta"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Peittävyyden muutoksen askelten suuruus"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Peittävyyden muutoksen askelten suuruus"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Läpinäkyvyyden muutos"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Liikkuvien ikkunoiden läpinäkyvyys"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Läpikuultavuus pyörityksen aikana"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Kylläisyys"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Kylläisyys"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Kylläisyys"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Kylläisyys"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Värikylläisyys prosenteissa ikkunoille, jotka eivät vastaa"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Ikkunan kehyksen asetukset"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Ikkunatyypit"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Ikkunatyypit, jotka huojuvat ilmestyessä"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Ikkunatyypit, jotka tulisi sijoittaa oletuksena"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Ikkunatyypit, jotka tulisi sijoittaa oletuksena"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Ikkunan sijoittamiseen käyettettävä algoritmi"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Porrasta"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Keskitetty"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Määrätty ikkunoiden sijoittelu"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Pakotetun sijoittelun ikkunat"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Työpöytien vaakataso-sijainti"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Pidä työtilassa"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Pidä asetettu ikkuna työtilassa, vaikka se tarkoittaisi sijainnin eriävyyttä "
+"määritellystä sijainnista"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Sijoita ikkunat"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Sijoita kaikkien ulostulojen kesken"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Sijoita ikkunat sopiville paikoille niiden ilmestyessä"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Käyetettävä metodi sijoittamisessa"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Sijoitetut ikkunat"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Satunnainen"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Määrittää kuinka ikkunoiden sijoittelun tulisi toimia, jos valittuina on "
+"useita ulostuloja"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Älykäs"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Käytä aktiivista ulostulolaitetta"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Käytä kohdistetun ikkunan ulostulolaitetta"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Käytä osoittimen sisältämää ulostulolaitetta"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Työpöytien pystytaso-sijainti"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Tiettyyn työpöytään sijoitettavat ikkunat"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Poikkeukset ikkunoiden sijoittamisessa"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Ikkunatyypit, jotka tulisi sijoittaa oletuksena"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Ikkunatyypit, jotka tulisi sijoittaa tiettyyn työpöytään oletuksena"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Ikkunatyypit, jotka tulisi pakotetusti sijoittaa paikoilleen, vaikka ne "
+"kieltäisivät ikkunointiohjelmaa tekemästä niin."
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Ikkunatyypit, joilla määrätyt sijainnit"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Ikkunatyypit, joilla määrätty työtila"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Poikkeukset"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X-sijainnit"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Näkymän X-sijainnit"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X-sijainnin arvot"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y-sijainnit"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Näkymän Y-sijainnit"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y-sijainnin arvot"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "PNG-kuvien lataaja"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Lauseketäsmäys"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Lausekkeen määrittelemien ikkunoiden täsmäys"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Pikanäppäimet"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Reunan väri"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Reunan väri, jota käytetätään Ääriviiva- ja Suorakulmio-venytys metodeille"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Koon muuttamisen oletustapa"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Ikkunan koon muuttamiseen käytettävä oletustapa"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Täyttöväri"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Täyttöväri suorakulmio-tapaan"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Aloita ikkunan koon muuttaminen tavallista tapaa käyttäen"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Aloita ikkunan koon muuttaminen ääriviiva-tapaa käyttäen"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Aloita ikkunan koon muuttaminen suorakulmio-tapaa käyttäen"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Aloita ikkunan koon muuttaminen venytys-tapaa käyttäen"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Muuta ikkunan kokoa"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Ikkunan koon muuttaminen tavallisesti"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Ääriviiva"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Ikkunan koon muuttaminen ääriviivoilla"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Suorakulmio"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Ikkunan koon muttaminen suorakulmiolla"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Muuta ikkunan kokoa"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Muuta ikkunan kokoa"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Aloita ikkunan koon muuttaminen"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Aloita ikkunan koon muuttaminen venyttämällä"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Aloita ikkunan koon muuttaminen tavallisesti"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Aloita ikkunan koon muuttaminen ääriviivaa käyttäen"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Aloita ikkunan koon muuttaminen suorakulmiota käyttäen"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Venytä"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Ikkunan koon muttaminen Venytä metodilla"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Ikkunat, joilla käytetään normaalia koon muuttamista"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Ikkunat, joilla käytetään ääriviivatapaa koon muuttamiseen"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Ikkunat, joilla käytetään suorakulmiota koon muuttamiseen"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Ikkunat, joilla käytetään venyttämistä koon muuttamista"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Käännä seuraavaan työpöytään siirtäessä objektia reunaan"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Käännä seuraavaan työpöytään siirtäessä ikkunan reunaan"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Käännä seuraavaan työpöytään siirtäessä osoitinta reunaan"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Käännön kesto"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Käännä vasempaan työtilaan ja siirrä osoitin"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Vaihda seuraavaan työpöytään vedettäessä objektia ruudun reunaa vasten."
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Vaihda seuraavaan työpöytään vedettäessä osoitinta ruudun reunaa vasten."
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Vaihda seuraavaan työpöytään vedettäessä ikkunaa ruudun reunaa vasten."
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Käännä oikeaan työtilaan ja siirrä osoitin"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Peilaa osoittimen Y-suuntainen liike"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Peilaa osoittimen Y-akseli"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Osoittimen herkkyys"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Nosta pyörittäessä"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Nosta ikkuna pyörittäessä"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Käännä kuutiota"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Kierrä vasemmalle"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Kierrä oikealle"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Käännä vasemmalle"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Käännä vasemmalle ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Käännä oikealle"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Käännä oikealle ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Käännä"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Käännä työpöydälle 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Käännä työpöydälle 1 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Käännä työpöydälle 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Käännä työpöydälle 10 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Käännä työpöydälle 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Käännä työpöydälle 11 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Käännä työpöydälle 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Käännä työpöydälle 12 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Käännä työpöydälle 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Käännä työpöydälle 2 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Käännä työpöydälle 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Käännä työpöydälle 3 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Käännä työpöydälle 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Käännä työpöydälle 4 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Käännä työpöydälle 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Käännä työpöydälle 5 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Käännä työpöydälle 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Käännä työpöydälle 6 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Käännä työpöydälle 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Käännä työpöydälle 7 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Käännä työpöydälle 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Käännä työpöydälle 8 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Käännä työpöydälle 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Käännä työpöydälle 9 ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Kuution kääntö"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Käännä työpöytäkuutiota"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Kääntää kuution vasemmalle"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Kääntää kuution vasemmalle aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Kääntää kuution oikealle"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Kääntää kuution oikealle aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Käännä työpöydälle"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Käännä työpöydälle ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Käännä työpöydälle 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Käännä työpöydälle 1 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Käännä työpöydälle 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Käännä työpöydälle 10 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Käännä työpöydälle 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Käännä työpöydälle 11 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Käännä työpöydälle 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Käännä työpöydälle 12 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Käännä työpöydälle 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Käännä työpöydälle 2 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Käännä työpöydälle 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Käännä työpöydälle 3 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Käännä työpöydälle 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Käännä työpöydälle 4 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Käännä työpöydälle 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Käännä työpöydälle 5 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Käännä työpöydälle 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Käännä työpöydälle 6 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Käännä työpöydälle 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Käännä työpöydälle 7 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Käännä työpöydälle 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Käännä työpöydälle 8 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Käännä työpöydälle 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Käännä työpöydälle 9 aktiivisen ikkuna kanssa"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Käännä näkymään"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Käännä ikkunaa"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Käännä ikkunan kanssa"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Kääntämiskiihdytys"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Kääntämisnopeus"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Kääntämisaikaväli"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoomaus käännettäessä"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Osoitinliikkeen herkkyys"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Kiinnitä kääntäminen kuution pohjaan"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Kiinnitä kääntäminen kuution kattoon"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Kiinnitä pohjaan"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Kiinnitä kattoon"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Aloita kääntäminen"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Aikakatkaisu ennen näkymän vaihtamista"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Läpinäkyvyys prosentteina"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Suuri"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Pikanäppäimet kytkevät skaalaustilan päälle/pois"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Pikanäppäimet vaihtavat skaalaustilaa sen sijaan että ottaisivat sen "
+"käyttöön painettaessa ja pois käytöstä vapautettaessa."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Näytä työpöytä siihen klikatessa"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Tummenna tausta"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Tummenna tausta ikkunoita skaalatessa"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Tunnus"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Siirry työpöytätilaan kun työpöytää klikataan skaalauksen aikana"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Päälläoloaika"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Käynnistä ikkunavalitsin"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Aktivoi ikkunavalitsin kaikille ikkunoille"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Aktivoi ikkunavalitsin ikkunaryhmälle"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Aktivoi ikkunavalitsin ikkunoille nykyisessä ulostulossa"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Pikanäppäimet kytkevät skaalaustilan päälle/pois"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Pikanäppäimet vaihtavat skaalaustilaa sen sijaan että ottaisivat "
+"painettaessa käyttöön ja vapautettaessa pois käytöstä."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Asettele ja ala mukauttaa kaikkia ikkunoita"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Asettele ja ala mukauttaa ikkunaryhmää"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Asettele ja ala mukauttaa ikkunoita"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Asettele ja ala mukauttaa ikkunoita nykyisessä ulostulossa"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Kaikissa ulostulolaitteissa"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Vain nykyisessä ulostulolaitteessa"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Aseta kuvake päälle"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Asettaa kuvakkeen ikkunan päälle skaalaamisen jälkeen"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Skaalaus"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Ikkunoiden skaalaus"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Skaalausnopeus"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Skaalausaikaväli"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Määrittää ikkunatyypit, jotka tulisi skaalata skaalaustilassa"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Määrittää missä ikkunat skaalataan jos käytössä on useampi ulostulo laite"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Ikkunoiden välinen tila"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Tila"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Aika (ms), jonka jälkeen skaalaustila lopetetaan, kun ikkunan päälle "
+"asettaminen on käytössä"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Ikkunatyypit, jotka tulisi skaalata skaalaustilassa"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Ohjelma joka automaattisesti avaa kuvakaappauksen"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Hakemisto"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Käynnistä suorakulmion muotoinen kuvankaappaaja"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Suorita sovellus"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Tallenna kuvakaappaukset tähän hakemistoon"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Kuvakaappaus"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Kuvakaappaus-liitännäinen"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "SVG-kuvien lataaja"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Kirkkauden määrä prosentteina"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Kylläisyyden määrä prosentteina"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Sovellusten vaihtaja"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automaattinen kääntö"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Tuo etualalle"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Tuo aktiivinen ikkuna etualalle"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Etäisyys, jonka työpöydän tulisi olla loitonnettuna ikkunoita vaihdettaessa"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Kuvake"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Pienennetty"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Seuraava paneeli"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Seuraava ikkuna"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Seuraava ikkuna (kaikki ikkunat)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Seuraava ikkuna (ei ponnahdusikkunaa)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Ponnauta vaihtaja näkyviin jos ei ole ja valitse seuraava ikkuna"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Ponnauta vaihtaja näkyviin jos ei ole ja valitse edellinen ikkuna ja valitse "
+"seuraava ikkuna kaikista ikkunoista"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Ponnauta vaihtaja näkyviin jos ei ole ja valitse edellinen ikkuna"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Ponnauta vaihtaja näkyviin jos ei ole ja valitse edellinen ikkuna kaikista "
+"ikkunoista"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Edellinen paneeli"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Edellinen ikkuna"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Edellinen ikkuna (kaikki ikkunat)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Edellinen ikkuna (ei ponnahdusikkunaa)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Käännä valittuun ikkunaan vaihtaessa"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Valitse seuraava paneelityypin ikkuna."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Siirry seuraavaan ikkunaan ilman vaihtajan ponnahdusikkunaa"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Valitse edellinen paneelityypin ikkuna."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Siirry edelliseen ikkunaan ilman vaihtajaa ponnahdusikkunaa"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Näytä kuvake esikatselukuvan vieressä"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Näytä pienennetyt ikkunat"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Vaihtajanopeus"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Vaihtaja-aikaväli"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Ikkunoiden vaihtajassa näkyvät ikkunatyypit"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Määrittää ikkunatyypit, jotka näkyvät ikkunoiden vaihtajassa"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Lisää YV12-väriavaruuden tuen"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Videon toisto"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Mahdollistaa videon toiston"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12-väriavaruus"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Lisää viiva"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Lisää piste"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Lisää vesitehosteen erilaisille työpöydän toiminnoille"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Kunkin sadepisaran välinen viive (ms)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Ota käyttöön osoittimen vesitehosteet"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Viiva"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Vääristyksen skaala"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Piste"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Sateen viive"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Otsikon aalto"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Ota käyttöön sade"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Ota käyttöön sadetehoste"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Ota käyttöön pyyhkijä"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Ota käyttöön pyyhkijä"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Vesitehoste"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Määrittää vesipisaran alla olevan alueen vääristyksen"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Aaltotehoste ikkunan otsikosta"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Keskitystehoste"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Ikkunan keskitystehoste"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Ikkunatyypit, jotka huojuvat keskittäessä"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Kitka"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Ikkunatyypit, jotka huojuvat tartuttaessa"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Hilan tarkkuus"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Käänteinen ikkunoiden tarttuvuus"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Tee ikkunoista väriseviä"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Ilmestymistehoste"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Liitä ikkunatehoste"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Ikkunatyypit, jotka huojuvat ilmestyessä"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Suurennustehoste"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Pienin mahdollinen hilakoko"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Pienin mahdollinen kärkipisteen hilakoko"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Ikkunatyypit, jotka huojuvat siirrettäessä"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Värinä"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Kiinnitä käänteiset"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Kiinnitä ikkunat"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Jousikitka"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Jousivakio"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Määrittää jousen voimakkuuden"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Ota käyttöön tarttuvat ikkunat"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Käytä ikkunoiden joustavaa huojumistehostetta"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Kärkipisteen hilan tarkkuus"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Määrittää ikkunatyypit, joiden tulisi huojua kohdistettaessa"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Määrittää ikkunatyypit, joiden tulisi huojua tartuttaessa"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Määrittää ikkunatyypit, joiden tulisi huojua liitettäessä"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Määrittää ikkunatyypit, joiden tulisi huojua siirrettäessä"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Huojumistehoste ikkuna suurentaessa ja pienentäessä"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Huojuvat ikkunat"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Suodata lineaarisesti"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Käytä lineaarista suodatinta zoomin aikana"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Työpöydän zoomaus"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Lähennys"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Loitonnus"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Zoomin muutosarvo"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoomausnopeus"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Zoomausaikaväli"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoomaa ja panoroi työpöytää"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Suurennuskerroin"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Panorointi suurennettaessa"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Komentorivi 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Suorita komento 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Kuvakaappauksen komennot"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Kuvakaappauksen pikanäppäimet"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Vähennä ikkunan läpikuultavuutta"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Lisää ikkunan läpikuultavuutta"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "Läpinäkyvyyden arvot ikkunoille, jotka ovat läpinäkyviä oletuksena"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Läpinäkyvien ikkunoiden arvot"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Ikkunoiden läpinäkyvyys"
+
+#~ msgid "Background Images"
+#~ msgstr "Taustakuvat"
+
+#~ msgid "Background images"
+#~ msgstr "Taustakuvat"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Asettele ikkunat työpöytätason pinnalle"
+
+#~ msgid "Plane Down"
+#~ msgstr "Siirry alas"
+
+#~ msgid "Plane Left"
+#~ msgstr "Siirry vasemmalle"
+
+#~ msgid "Plane Right"
+#~ msgstr "Siirry oikealle"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Siirry tasolle 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Siirry tasolle 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Siirry tasolle 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Siirry tasolle 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Siirry tasolle 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Siirry tasolle 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Siirry tasolle 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Siirry tasolle 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Siirry tasolle 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Siirry tasolle 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Siirry tasolle 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Siirry tasolle 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Siirry ylös"
+
+#~ msgid "Plane down"
+#~ msgstr "Siirry alas"
+
+#~ msgid "Plane left"
+#~ msgstr "Siirry vasemmalle"
+
+#~ msgid "Plane right"
+#~ msgstr "Siirry oikealle"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Siirry tasolle 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Siirry tasolle 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Siirry tasolle 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Siirry tasolle 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Siirry tasolle 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Siirry tasolle 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Siirry tasolle 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Siirry tasolle 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Siirry tasolle 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Siirry tasolle 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Siirry tasolle 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Siirry tasolle 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Siirry ylös"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Kuution läpinäkyvyyden katoamiseen kestävä aika"
+
+#~ msgid "Open window menu"
+#~ msgstr "Avaa ikkunavalikko"
+
+#~ msgid "Dock"
+#~ msgstr "Telakointi"
+
+#~ msgid "Toolbar"
+#~ msgstr "Työkalupalkki"
+
+#~ msgid "Menu"
+#~ msgstr "Valikko"
+
+#~ msgid "Utility"
+#~ msgstr "Apuohjelma"
+
+#~ msgid "Splash"
+#~ msgstr "Splash"
+
+#~ msgid "Dialog"
+#~ msgstr "Valintaikkuna"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Avattava valikko"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Ponnahdusvalikko"
+
+#~ msgid "Tooltip"
+#~ msgstr "Työkaluvihje"
+
+#~ msgid "Notification"
+#~ msgstr "Ilmoitus"
+
+#~ msgid "Combo"
+#~ msgstr "Yhdistelmä"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Modaalinen valintaikkuna"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Kokoruutu"
+
+#~ msgid "Unknown"
+#~ msgstr "Tuntematon"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command10 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command1 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command10 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command11 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command2 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command3 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command4 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command5 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command6 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command7 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command8 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "Tunnisteen command9 mukaisen komennon suorittava näppäinyhdistelmä"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Kirkkauden määrä prosentteina"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Läpikuultavuuden määrä prosentteina"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Kylläisyyden määrä prosentteina"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Kylläisyys"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Kunkin sadepisaran välinen viive (ms)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr ""
+#~ "Etäisyys, jonka työpöydän tulisi olla loitonnettuna ikkunoita "
+#~ "vaihdettaessa"
+
+#~ msgid "Do not modify"
+#~ msgstr "Älä muuta"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Hylkää varjon poikkeama (X)"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Hylkää varjon poikkeama (Y)"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Hylkää varjon vahvuus"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Hylkää varjon säde"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Ikkunan kohdistustehoste (ei mitään = None, vavistus = Shiver)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Valitse edellinen ikkuna"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Taittamisen kiihdytys (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Taittamisen nopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Taittamisen aikaviive (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Aikaväli ennen valittujen ikkunoiden nostamista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "Asettele tämänhetkisen kohteen ikkunat ja aloita niiden muunto"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Ikkunoiden ilmestymistehoste (ei mitään = None, vavistus = Shiver)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Pienennysnopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Pienennysnopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Pienin mahdollinen kärkipisteen hilakoko"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Virtuaalisten työpöytien määrä"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Läpikuultavuuden muutosväli"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Liikkuvien ikkunoiden läpikuultavuustaso"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Liikkuvien ikkunoiden läpikuultavuustaso"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Aseta kuvake päälle ikkunoihin, kun ne skaalataan"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Etukäteen tätä varten ladattavat liitännäiset"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Tähän vaadittavat liitännäiset"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Tuo vaihtaja ponnahdusikkunaan, jos se ei ole näkyvissä, ja valitse "
+#~ "seuraava ikkuna kaikista ikkunoista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Tuo vaihtaja ponnahdusikkunaan, jos se ei ole näkyvissä, ja valitse "
+#~ "seuraava ikkuna kaikista ikkunoista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Tuo vaihtaja ponnahdusikkunaan, jos se ei ole näkyvissä, ja valitse "
+#~ "edellinen ikkuna kaikista ikkunoista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Tuo vaihtaja ponnahdusikkunaan, jos se ei ole näkyvissä, ja valitse "
+#~ "edellinen ikkuna kaikista ikkunoista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Taittamisen kiihdytys (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Zoomauksen nopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Zoomauksen aikaviive (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Skaalauksen nopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Skaalauksen aikaviive (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "Virtuaalisen vaakatasokoon näyttökokokerroin"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Virtuaalisen pystytasokoon näyttökokokerroin"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Osoitinliikkeen herkkyys"
+
+#, fuzzy
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Varjon vastussauma"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Ikkunoiden välinen tila"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Jousikitka"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Jousivakio"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Skaalauksen nopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Skaalauksen aikaviive (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Tekstuurisuodin (nopea = Fast, hyvälaatuinen = Good, paras = Best)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "Nopeus, jolla näyttö piirretään uudelleen (kertaa/sekunnissa)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Aika (ms), jonka jälkeen skaalaustila lopetetaan, kun ikkunan päälle "
+#~ "asettaminen on käytössä"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Aikakatkaisu ennen näkymän vaihtamista"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Käytä lineaarista suodinta lähennettäessä"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Kärkipisteen hilan tarkkuus"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Vesisiirtymän skaala"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Ikkunan häivytyksen nopeus"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Ikkunan häivytyksen nopeus"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi skaalata skaalaustilassa"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi näyttää vaihtajassa"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi muuntaa pienennettäessä"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Ikkunatyypit, jotka tulisi häivyttää"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Ikkunatyypit, joiden tulisi huojua kohdistettaessa"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Ikkunatyypit, joiden tulisi huojua tartuttaessa"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Ikkunatyypit, joiden tulisi huojua liitettäessä"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Ikkunatyypit, joiden tulisi huojua siirrettäessä"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Nurkat, jotka aktivoivat skaalaustilan (vasen ylänurkka = TopLeft, oikea "
+#~ "ylänurkka = TopRight, vasen alanurkka = BottomLeft, oikea alanurkka = "
+#~ "BottomRight)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Zoomauksen nopeus (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Zoomauksen aikaviive (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Zoomauskerroin"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Kierrä kohteen %d suuntaan"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Kierrä kohteen %d suuntaan"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Kierrä kohteen %d suuntaan ikkunan kanssa"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Kierrä kohteen %d suuntaan ja tuo aktiivinen ikkuna mukana"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Kierrä kohteen %d suuntaan"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Kierrä kohteen %d suuntaan"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Kierrä kohteen %d suuntaan ikkunan kanssa"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Kierrä kohteen %d suuntaan ja tuo aktiivinen ikkuna mukana"
+
+#~ msgid "Command line %d"
+#~ msgstr "Komentorivi %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr ""
+#~ "Komentotulkissa suoritettava komentorivi, kun suorita_komento%d annetaan"
+
+#~ msgid "Run command %d"
+#~ msgstr "Suorita komento %d"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr ""
+#~ "Pikanäppäin, joka kutsuttaessa suorittaa komentotulkin komennon komento%d"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Siirrettäessä huojuvat ikkunatyypit"
+
+#~ msgid "Corners"
+#~ msgstr "Kulmat"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "Kohdista ikkunaan osoittimen liikkuessa sen päälle"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "Aktivoi kaikkien ikkunoiden ikkunanvaihtaja"
+
+#, fuzzy
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "Siirrä ikkunaa"
+
+#, fuzzy
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "Muuta ikkunan kokoa"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "Aktivoi ikkunanvaihtaja"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "Kaikkien ikkunoiden näyttämiseen käytettävä vaihtonäppäin"
+
+#~ msgid "Return from scale view"
+#~ msgstr "Poistu skaalausnäkymästä"
+
+#~ msgid "Show switcher"
+#~ msgstr "Näytä ikkunavaihtaja"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "Seuraava tarkennus"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Aloita ikkunan siirtäminen"
+
+#~ msgid "Terminate"
+#~ msgstr "Lopeta"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "Vesitehoste järjestelmän huomautuksessa"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Häivytettävät ikkunatyypit (työpöytä = Desktop, paneeli = Dock, "
+#~ "työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "Pienennettäessä animoitavat ikkunatyypit (työpöytä = Desktop, paneeli = "
+#~ "Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Skaalautuvat ikkunatyypit (työpöytä = Desktop, paneeli = Dock, "
+#~ "työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Ikkunavaihtajassa näkyvät ikkunatyypit(työpöytä = Desktop, paneeli = "
+#~ "Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Ikkunatyypit, jotka huojuvat kohdistettaessa(työpöytä = Desktop, paneeli "
+#~ "= Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Ikkunatyypit, jotka huojuvat tartuttaessa (työpöytä = Desktop, paneeli = "
+#~ "Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Ikkunatyypit, jotka huojuvat ilmestyessään (työpöytä = Desktop, paneeli = "
+#~ "Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "Ikkunatyypit, jotka huojuvat liikuteltaessa (työpöytä = Desktop, paneeli "
+#~ "= Dock, työkalupalkki = Toolbar, valikko = Menu, työkalu = Utility, "
+#~ "käynnistysikkuna = Splash, valintaikkuna = Dialog, pakotettu "
+#~ "valintaikkuna = ModalDialog, tavallinen ikkuna = Normal, kokoruutuikkuna "
+#~ "= Fullscreen, tuntematon = Unknown)"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "Huojumistehoste järjestelmän huomautuksesta"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..2759156
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,3419 @@
+# translation of compiz.po to fr-compiz.po
+# Copyright (C) 2007 compiz-fusion.org
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the Compiz package.
+#
+# Tristan RABLAT <tristan.rablat@gmail.com>, 2007.
+# Bruno Patri <bruno.patri@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr-compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2009-01-06 01:19+0100\n"
+"Last-Translator: Even myname <thispawn@gmail.com>\n"
+"Language-Team: <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Bureau"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Gestion des Fenêtres"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Aucun"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Ombrer"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximiser"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Optimiser la fenêtre horizontalement"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Optimiser la fenêtre verticalement"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimiser"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Remonter"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Descendre"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menu de la fenêtre"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Action à accomplir en tournant la molette de la souris sur la barre de titre "
+"d'une fenêtre"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Type de flou"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacité de la fenêtre active du thème Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Nuance de l'opacité de la fenêtre active du thème Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacité du thème Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Nuance de l'opacité du thème Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Opacité à utiliser pour les fenêtres actives avec les décorations des thèmes "
+"Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacité à utiliser pour les décorations des thèmes Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Nuancer les fenêtres actives avec les décorations du thème Metacity, "
+"d'opaque à transparent"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Nuancer les fenêtres avec les décorations du thème Metacity, d'opaque à "
+"transparent"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Action de la molette de souris sur la barre de titre"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Type de flou utilisé pour les décorations des fenêtres"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Utiliser le thème Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Utiliser le thème Metacity pour dessiner les décorations de fenêtres"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Fermer la fenêtre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Restaurer la fenêtre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Optimiser la fenêtre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimiser la fenêtre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Placer au dessus"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Coller"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Ne plus ombrer"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Ne plus placer au dessus"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Décoller"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "La fenêtre \"%s\" ne répond pas."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forcer cette application à quitter causera la perte de tout changement non "
+"enregistré."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forcer à quitter"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Annoter"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Couleur de remplissage des annotations"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Couleur du contour des annotations"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Extension \"Annotation\""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Effacer"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Dessiner"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Dessiner avec un outil"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Couleur de remplissage des annotations"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Lancer"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Lancer le dessin d'annotations"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Lancer l'effacement des annotations"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Lancer l'effacement"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Largeur de ligne"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Largeur de ligne des annotations"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Couleur du contour des annotations"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Largeur du contour"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Largeur du contour des annotations"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "Bilinéaire 4x"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Flou Alpha"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Flou Alpha Fenêtres"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtre flou"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Occlusion Floue"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturation du flou"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Vitesse de flou"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Flouter les fenêtres"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Flou derrière les parties transparentes des fenêtres"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturation du flou"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Flouter les fenêtres"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Flouter les fenêtres qui n'ont pas le focus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Désactiver le flou des régions de l'écran obscurcies par d'autres fenêtres"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Méthode de filtrage utilisée pour le flou"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Flou du focus"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Le focus floute les fenêtres"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussien"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Rayon Gaussien"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Puissance Gaussienne"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Rayon Gaussien"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Puissance Gaussienne"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Récupérer la texture indépendante"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Niveau de détail des Mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulsation"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Effet de pulsation"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"utiliser les unités de texture disponible pour récupérer autant que possible "
+"la texture indépendante"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Vitesse de floutage de la fenêtre"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Types de fenêtres devant utiliser le flou du focus"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Types de fenêtres devant utiliser le fondu par défaut"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Cloner la sortie"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Sélection du mode vidéo (clône)"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Manipulateur de clône de sortie"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Raccourci qui, lorsqu'il est appelé, exécute la commande du shell identifiée "
+"par command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Ligne de commande 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Ligne de commande 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Ligne de commande 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Ligne de commande 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Ligne de commande 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Ligne de commande 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Ligne de commande 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Ligne de commande 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Ligne de commande 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Ligne de commande 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Ligne de commande 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Ligne de commande 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command0 est appelé"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command1 est appelé"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command10 est appelé"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command11 est appelé"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command2 est appelé"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command3 est appelé"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command4 est appelé"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command5 est appelé"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command6 est appelé"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command7 est appelé"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command8 est appelé"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Ligne de commande à exécuter dans le shell lorsque run_command9 est appelé"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Commande"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Exécuter la commande 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Exécuter la commande 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Exécuter la commande 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Exécuter la commande 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Exécuter la commande 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Exécuter la commande 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Exécuter la commande 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Exécuter la commande 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Exécuter la commande 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Exécuter la commande 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Exécuter la commande 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Exécuter la commande 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Extensions actives"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Empêcher la redirection vers des pixmaps hors de l'écran lors de l'affichage "
+"des fenêtres plein écran"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Cloche audible"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Signal sonore du système audible"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Remontée automatique"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Délai de remontée automatique"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Détection automatiques des périphériques de sortie"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Détection automatique de la fréquence de rafraîchissement"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Meilleur"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Cliquer pour obtenir le focus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Si vous cliquez sur la fenêtre, vous déplacez le focus dessus"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Fermer la fenêtre active"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Icône par défaut"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Image de l'icône de la fenêtre par défaut"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Cube du Bureau"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Détection des sorties"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Détecter la fréquence de rafraîchissement"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Durée pendant laquelle le pointeur doit rester au bord de l'écran avant que "
+"l'action ait lieu."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Délai de déclenchement des bordures"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rapide"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Niveau de sensibilité du Focus"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Fenêtres prévenues du Focus"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "fenêtres prévenues du focus"
+
+# coloration trouvé plus juste que peinture
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forcer le rendement indépendant de coloration"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Options Générales"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Options Générales de Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bon"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Masquer les fenêtres de la barre des tâches"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Masquer toutes les fenêtres et afficher le bureau"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Masquer les fenêtres qui ne se trouvent pas dans la barre des tâches lorsque "
+"vous passez en mode d'affichage du bureau"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Élevé"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Taille virtuelle horizontale"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Si elle est disponible, utiliser la compression des textures venant d'images "
+"converties"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorer les conseils lorsque la fenêtre est agrandie"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignorer l'incrément de taille et les conseils d'aspect lorsque la fenêtre "
+"est agrandie"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervalle avant de remonter les fenêtres sélectionnées"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervalle entre les messages ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+# En français, on ne vole pas un focus mais je n'ai pas trouvé mieux.
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Niveau de sensibilité du vol de Focus"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Éclairage"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Liste des extensions (plugins) actuellement actives"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Liste des chaînes décrivant les périphériques de sortie"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Faible"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Abaisser la fenêtre"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Abaisser la fenêtre sous d'autres fenêtres"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Optimiser la fenêtre horizontalement"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Optimiser la fenêtre verticalement"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Optimiser la fenêtre active"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Optimiser la fenêtre active horizontalement"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Optimiser la fenêtre active verticalement"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimiser la fenêtre active"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Nombre de bureaux"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Nombre de bureaux virtuels"
+
+# En français, on/off est compris par tout le monde et on préfèreéviter de réutiliser le mot désactivé
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Off"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"N'effectuer les mises à jour de l'écran que lors de la période de vidage "
+"vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Sorties"
+
+# Traduction très peu sûre
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Chevauchement de manipulations de sorties"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Peindre chaque sortie de périphérique indépendamment, même si elles se "
+"chevauchent."
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Délai du Ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Préférer une sortie plus grande"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Préférer une sortie plus petite"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Remonter au clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Remonter la fenêtre"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Remonter les fenêtres sélectionnées après l'intervalle"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Remonter la fenêtre au-dessus des autres"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Remonter les fenêtres lorsque vous cliquez dessus"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Fréquence de rafraîchissement"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicateur de taille d'écran pour taille virtuelle horizontale"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicateur de taille d'écran pour taille virtuelle verticale"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Afficher le Bureau"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Ralentir les animations"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Mode Élégant"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sync vers VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compression de texture"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtre de texture"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrage de texture"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Vitesse à laquelle l'écran est redessiné (fois/seconde)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Basculer la fenêtre agrandie"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Basculer la fenêtre agrandie horizontalement"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Basculer la fenêtre agrandie verticalement"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Basculer la fenêtre ombrée"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Basculer la fenêtre active agrandie"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Basculer la fenêtre active agrandie horizontalement"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Basculer la fenêtre active agrandie verticalement"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Basculer la fenêtre active ombrée"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Basculer l'utilisation d'animations lentes"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Restaurer la fenêtre active"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Ne pas rediriger les fenêtres plein écran"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Utiliser la lumière diffuse lorsque l'écran est transformé"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Taille virtuelle verticale"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Très élevé"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Quel périphérique de sortie chevauchée devrait être préférée"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Bouton de racourci du menu de la fenêtre"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Touche de racourci du menu de la fenêtre"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Accélération"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ajuster l'Image"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ajuster l'image de la face supérieure à la rotation"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Passer à la diapositive suivante"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animer le Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animer le Skydome lors de la rotation de cube"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatique"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Couleur des côtés supérieur et inférieur du cube"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Couleur à utiliser pour l'arrêt de couleur inférieure du gradient de rappel "
+"de Skydome"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Couleur à utiliser pour l'arrêt de couleur supérieure du gradient de rappel "
+"de Skydome"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Couleur du cube"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Couleur du cube"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cube du Bureau"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Accélération de pliage"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Vitesse de pliage"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Intervalle de pliage"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"Générer des mipmaps dans la mesure du possible pour une mise à l'échelle de "
+"meilleure qualité"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Revenir à la diapositive précédente"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Fichiers image"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Image à utiliser comme texture pour le Skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Rendre le Cube transparent seulement si la rotation est contrôlée par la "
+"souris"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Vue de l'intérieur du Cube"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "À l'intérieur du cube"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Liste de fichiers PNG et SVG à afficher sur la face supérieure du cube"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Mode de sorties multiples"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Cubes multiples"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Diapositive suivante"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Un grand cube"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacité pendant la rotation"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacité à l'arrêt"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacité de la fenêtre du bureau pendant la rotation"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacité de la fenêtre du bureau à l'arrêt"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Placer des fenêtres sur le cube"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Diapositive précédente"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Afficher le Skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Mettre l'image à l'échelle"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Mettre les images à l'échelle pour couvrir la face supérieure du cube"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Choisir comment le cube est affiché si plusieurs périphériques de sortie "
+"sont utilisés"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Couleur de fin du gradient du Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Couleur de début du gradient du Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Image du Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Vitesse"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Intervalle"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparence seulement si la souris contrôle la rotation"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Déplier"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Déplier le cube"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "DBus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Backend de contrôle DBus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permettre la génération de mipmaps pour les textures de décoration"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Commande"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Décoration des fenêtres"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Ligne de commande du décorateur qui est exécutée si aucun décorateur ne "
+"fonctionne"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Décalage X de l'ombre des gouttes"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Décalage Y de l'ombre des gouttes"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Couleur de l'ombre des gouttes"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacité de l'ombre des gouttes"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Rayon de l'ombre des gouttes"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Couleur de l'ombre"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Décalage X de l'ombre"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Décalage Y de l'ombre"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacité de l'ombre"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Rayon de l'ombre"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Ombrer les fenêtres"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Décoration de la fenêtre"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Décorations des fenêtres"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Types de fenêtres devant être décorées"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Types de fenêtres devant avoir une ombre"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Luminosité (en %) des fenêtres ne répondant pas"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Vitesse constante"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Temps constant"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Fenêtres ne répondant pas ternes"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Les Fenêtres ternes qui ne répondent pas aux requêtes du gestionnaire de "
+"fenêtres."
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Mode de Fondu"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Fondu quand une fenêtre est Minimisée/ouverte/fermée"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Vitesse de fondu"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Temps de Fondu"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Effet de fondu lors des événements Minimiser/Ouvrir/Fermer la fenêtre"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Effet de fondu au signal sonore du système"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Apparition/disparition en fondu des fenêtres à l'ouverture/fermeture"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Fondu des Fenêtres"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Types de fenêtres à animer"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Cloche visuelle plein écran"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Effet de fondu plein écran au signal sonore du système"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Saturation (en %) des fenêtres ne répondant pas"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Luminosité d'une fenêtre ne répondant pas"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Saturation d'une fenêtre ne répondant pas"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Cloche visuelle"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Mode de fondu de la fenêtre"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Vitesse du fondu d'une fenêtre dans le mode de \"Vitesse constante\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+"Temps (en ms) du fondu d'une fenêtre dans le mode de \"Vitesse constante\""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Types de Fenêtres devant utiliser le fondu"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Point de montage"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Point de montage"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Système de fichier de l'Espace Utilisateur"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Système de fichier de l'espace utilisateur"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Backend de contrôle GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Support de la boucle principale GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Ouvrir un terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Boîte de dialogue d'exécution"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Commande à lancer pour le Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Ligne de commande de capture d'écran"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Afficher le menu principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Afficher la boîte de dialogue d'exécution de l'application"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Afficher le menu principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Faire une capture d'écran"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Faire une capture d'écran d'une fenêtre"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Commande à lancer pour le Terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Ligne de commande de capture de fenêtre"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini (Ne pas modifier)"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini Flat File Backend"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Extension pour la notification de modification de fichier"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Backend de contrôle Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Effet de Minimisation"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimiser la fenêtre"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Vitesse de minimisation"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Intervalle de minimisation"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Résistance de l'Ombre"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Résistance de l'ombre"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformer les fenêtres lorsqu'elles sont réduites ou agrandies"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Types de fenêtres à transformer lorsqu'elles sont réduites"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Contraindre Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Contraindre la coordonnée Y à être dans la zone de l'espace de travail"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Ne pas mettre à jour la position de la fenêtre coté serveur, tant que son "
+"mouvement n'est pas fini"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Lancer le déplacement de fenêtre"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Positionnement souple"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Déplacer la fenêtre"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Déplacer la fenêtre"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacité"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Niveau d'opacité pour déplacer des fenêtres"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Désactiver l'alignement et la démaximisation automatique des fenêtres "
+"lorsque vous les faites glisser"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Désactiver l'alignement des fenêtres agrandies"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Démarrer le déplacement de la fenêtre"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Luminosité"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Luminosité"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Luminosité"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Luminosité"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Luminosité (en %) des fenêtres ne répondant pas"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Réduire l'opacité"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Augmenter l'opacité"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Incrément de changement d'opacité"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Incrément de changement d'opacité"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Incrément d'opacité"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Niveau d'opacité pour déplacer des fenêtres"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacité pendant la rotation"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturation"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturation"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturation"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturation"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Saturation (en %) des fenêtres ne répondant pas"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Décorations des fenêtres"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Valeur de l'opacité des fenêtres"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Mapper les types de fenêtres"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Fenêtres devant être positionnées par défaut"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Fenêtres devant être transparentes par défaut"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Fenêtres devant être positionnées par défaut"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algorithme à utiliser pour le déplacement des fenêtres"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascade"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centré"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Gestion des Fenêtres"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Forcer le Placement d'une fenêtre"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Positions du viewport horizontal"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Garder dans la Zone de Travail"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Garder la fenêtre dans la zone de travail, même si cela signifie que la "
+"position peut différer de celle spécifiée"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Placer des fenêtres"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Placer à travers toutes les sorties"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Placer des fenêtres aux positions correctes lorsqu'elles sont mappées"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Mode de placement"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Fenêtres positionnées"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aléatoire"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Sélectionne comme un emplacement de fenêtre pourrait se comporter si "
+"plusieurs sorties sont sélectionnées"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Intelligent"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Utilise la périphérique de sortie actif"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Utilise la périphérique de sortie sur la fenêtre active"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Utilise la périphérique de sortie avec le pointeur"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Positions du viewport vertical"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Fenêtres positionnées sur un bureau"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Solutions de placement de fenêtre"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Fenêtres devant être positionnées par défaut"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Types de fenêtres qui devraient être positionnées sur un bureau spécifique "
+"par défaut"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Les fenêtres pourrait être forcées à se situer, même si elles indiquent que "
+"le gestionnaire de fenêtre pourrait éviter de les situer."
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Décorations des fenêtres"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Solutions"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Positions en X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Positions du viewport en X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valeurs de la position en X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Positions en Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Positions du viewport en Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valeurs de la position en Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Chargeur d'Images png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Correspondance Regex"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Correspondance Regex"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Couleur de Bordure"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Couleur de la bordure utilisée pour les modes de redimensionnement "
+"Rectangulaire et Contour"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Mode de redimensionnement par défaut"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Mode utilisé par défaut pour le redimentionnement de fenêtre"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Couleur de Remplissage"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Couleur de remplissage pour le mode de redimensionnement rectangulaire"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Lancer le redimensionnement de fenêtre Normal"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Lancer le redimensionnement de fenêtre Contour"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Lancer le redimensionnement de fenêtre Rectangle"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Lancer le redimensionnement de fenêtre Étiré"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Lancer le redimensionnement de fenêtre"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Redimensionne les fenêtres en mode Normal"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Contour"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Redimensionne les fenêtres en mode Contour"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rectangle"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Redimensionne les fenêtres en mode Rectangle"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Redimensionner la Fenêtre"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Redimensionner la fenêtre"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Commencer à redimensionner la fenêtre"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Commencer à redimensionner la fenêtre en l'étirant"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Commencer à redimensionner la fenêtre normalement"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Commencer à redimensionner la fenêtre avec le contour"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Commencer à redimensionner la fenêtre avec un rectangle"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Étirer"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Redimensionne les fenêtres en mode Étiré"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Types de fenêtres qui devraient utiliser le redimensionnement Normal"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Types de fenêtres qui devraient utiliser le redimensionnement Contour"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+"Types de fenêtres qui devraient utiliser le redimensionnement Rectangle"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Types de fenêtres qui devraient utiliser le redimensionnement Étiré"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Rotation de côté - Glissement-déplacement"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Rotation de côté - Déplacement"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Rotation de côté - Pointeur"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Temps de rotation"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Rotation sur le coté gauche avec le pointeur"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Rotation vers la face suivante - Glissement d'un objet vers le côté de "
+"l'écran"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Rotation vers la face suivante - Déplacement du pointeur vers le côté de "
+"l'écran"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Rotation vers la face suivante - Déplacement de la fenêtre vers le côté de "
+"l'écran"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Rotation sur le coté droit avec le pointeur"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Insérer l'axe Y pour le mouvement du pointeur"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Inversion Y du pointeur"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilité du pointeur"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Remonter lors de la rotation"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Remonter la fenêtre lors de la rotation"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Rotation du Cube"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Rotation sur le côté gauche"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Rotation sur le côté droit"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Rotation à gauche"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Rotation à gauche avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Rotation à droite"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Rotation à droite avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Rotation vers"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Rotation vers la face 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Rotation vers la face 1 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Rotation vers la face 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Rotation vers la face 10 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Rotation vers la face 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Rotation vers la face 11 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Rotation vers la face 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Rotation vers la face 12 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Rotation vers la face 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Rotation vers la face 2 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Rotation vers la face 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Rotation vers la face 3 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Rotation vers la face 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Rotation vers la face 4 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Rotation vers la face 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Rotation vers la face 5 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Rotation vers la face 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Rotation vers la face 6 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Rotation vers la face 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Rotation vers la face 7 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Rotation vers la face 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Rotation vers la face 8 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Rotation vers la face 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Rotation vers la face 9 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Rotation du Cube"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Rotation du cube de bureau"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Rotation à gauche"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Rotation à gauche avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Rotation à droite"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Rotation à droite avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Rotation vers la face 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Rotation vers la face 1 avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Rotation vers la face 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Rotation vers la face 1 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Rotation vers la face 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Rotation vers la face 10 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Rotation vers la face 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Rotation vers la face 11 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Rotation vers la face 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Rotation vers la face 12 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Rotation vers la face 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Rotation vers la face 2 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Rotation vers la face 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Rotation vers la face 3 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Rotation vers la face 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Rotation vers la face 4 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Rotation vers la face 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Rotation vers la face 5 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Rotation vers la face 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Rotation vers la face 6 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Rotation vers la face 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Rotation vers la face 7 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Rotation vers la face 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Rotation vers la face 8 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Rotation vers la face 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Rotation vers la face 9 avec la fenêtre active"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Rotation vers un bureau (une face)"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Rotation de la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Rotation avec la fenêtre"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Accélération de la rotation"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Vitesse de la rotation"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Intervalle de la rotation"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom de la rotation"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilité du mouvement du pointeur"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Aligner la rotation du cube avec la face inférieure"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Aligner la rotation du cube avec la face supérieure"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Aligner avec la face inférieure"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Aligner avec la face supérieure"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Démarrer la rotation"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Délai avant la rotation du bureau"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Quantité d'opacité en pourcentage"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grand"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Cliquez sur le Bureau pour l'afficher"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Assombrir l'arrière-plan"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Assombrir l'arrière-plan lors de la Mise à l'Échelle des fenêtres"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblème"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Entrer en mode Affichage Du Bureau quand celui-ci est cliqué pendant la Mise "
+"à l'Échelle"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Temps de survol"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Lancer le sélecteur de fenêtre"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Lancer le sélecteur de fenêtre pour toutes les fenêtres"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Lancer le sélecteur de fenêtre pour un groupe de fenêtres"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+"Lancer le sélecteur de fenêtre pour les fenêtres sur la sortie actuelle"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Disposer et commencer à transformer toutes les fenêtres"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Disposer et commencer à transformer un groupe de fenêtres"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Disposer et commencer à transformer les fenêtres"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+"Disposer et commencer à transformer des fenêtres sur la sortie actuelle"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Sur tous les périphériques de sortie"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Sur le périphérique de sortie courant"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Superposer l'icône"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+"Superposer une icône sur les fenêtres lorsqu'elles ont été mises à l'échelle"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Échelle"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Mettre les fenêtres à l'échelle"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Vitesse de mise à l'échelle"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Intervalle de mise à l'échelle"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Mettre toutes les fenêtres à la même échelle"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Choisir où les fenêtres sont mises à l'échelle si plusieurs périphériques de "
+"sortie sont utilisés."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espace entre les fenêtres"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espacement"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Temps (en ms) avant que le mode Échelle soit terminé lors du survol au-"
+"dessus d'une fenêtre"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Types de fenêtres à mettre à l'échelle en mode Échelle"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Ouvrir automatiquement la capture d'écran dans cette application"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Répertoire"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Lancer une capture d'écran"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Lancer une Application"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Mettre les captures d'écran dans ce répertoire"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Capture d'écran"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Extension de capture d'écran"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Chargeur d'images Svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Quantité de luminosité en pourcentage"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Quantité de saturation en pourcentage"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Sélecteur d'Application"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Rotation automatique"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Placer au-dessus"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Placer la fenêtre sélectionnée au-dessus"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Le bureau à distance doit être en zoom arrière lors du passage d'une fenêtre "
+"à une autre"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icône"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimisé"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Panneau Suivant"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Fenêtre suivante"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Fenêtre suivante (toutes les fenêtres)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Fenêtre suivante (pas de sélecteur)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Afficher le sélecteur s'il n'est pas visible et sélectionner la fenêtre "
+"suivante"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Afficher le sélecteur s'il n'est pas visible et sélectionner la fenêtre "
+"suivante parmi toutes les fenêtres"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Afficher le sélecteur s'il n'est pas visible et sélectionner la fenêtre "
+"précédente"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Afficher le sélecteur s'il n'est pas visible et sélectionner la fenêtre "
+"précédente parmi toutes les fenêtres"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Panneau Précédent"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Fenêtre précédente"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Fenêtre précédente (toutes les fenêtres)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Fenêtre précédente (pas de sélecteur)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Tourner vers la fenêtre sélectionnée pendant la commutation"
+
+# Ca ne veut rien dire...
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Sélectionner la prochaine fenêtre de la police du panneau"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Sélectionner la fenêtre suivante sans montrer le sélecteur"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Sélectionner la précédente fenêtre de la police du panneau"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Sélectionner la fenêtre précédente sans montrer le sélecteur"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Afficher l'icône à côté de la miniature"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Afficher des fenêtres réduites"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Vitesse du sélecteur"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Intervalle du sélecteur"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Types de fenêtres du sélecteur"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Types de fenêtres à afficher dans le sélecteur"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Fournir le support de l'espace colorimétrique YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Lecture Vidéo"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Lecture vidéo"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Espace colorimétrique YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Ajouter une ligne"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Ajouter un point"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Ajoute des effets d'eau à différentes opérations du bureau"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Délai (en ms) entre chaque goutte de pluie"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Activer les effets d'eau du pointeur"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Ligne"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Échelle de décalage"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Point"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Délai de pluie"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Vague sur le titre"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Activer/désactiver la pluie"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Activer/désactiver l'effet de pluie"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Activer/désactiver l'essuie-glace"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Activer/désactiver l'effet d'essuie-glace"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Effet d'eau"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Échelle de décalage d'eau"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Effet de vague sur le titre de la fenêtre"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Effet de focus"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Effet de focus de la fenêtre"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Focus sur les Fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Friction"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Saisir les Fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Résolution de la grille"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Alignement inversé de la fenêtre"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Déformer la fenêtre"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Mapper l'effet"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Mapper l'effet de la fenêtre"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Mapper les types de fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Optimiser l'effet"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Taille de grille minimale"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Taille de grille de sommet minimale"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Déplacer les fenêtres"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Déformation"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Alignement inversé"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Aligner les fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Friction ressort"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Ressort K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constante de ressort"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Basculer l'alignement des fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+"Utiliser le modèle physique du ressort pour créer un effet de déformation "
+"des fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Résolution de la grille de sommets"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Types de fenêtres à déformer lorsque le focus est sur celles-ci"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Types de fenêtres à déformer lorsqu'elles sont saisies"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Types de fenêtres à déformer lorsqu'elles sont mappées"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Types de fenêtres à déformer lorsqu'elles sont déplacées"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+"Effet de déformation lors de la maximisation et de la démaximisation des "
+"fenêtres"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Déformer les Fenêtres"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtre linéaire"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Utiliser le filtre linéaire pour le zoom avant"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom du Bureau"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Zoom avant"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Zoom arrière"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Zoom Panoramique"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Vitesse du zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Intervalle du zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoom et panoramique du cube du bureau"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Facteur de zoom"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Zoom panoramique"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Ligne de commande 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Exécuter la commande 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Ligne de commande de capture d'écran"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Ligne de commande de capture d'écran"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Réduire l'opacité de la fenêtre"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Augmenter l'opacité de la fenêtre"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valeurs de l'opacité pour les fenêtres qui devraient être transparentes "
+#~ "par défaut"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Transparence des fenêtres"
+
+#~ msgid "Background Images"
+#~ msgstr "Images de Fond"
+
+#~ msgid "Background images"
+#~ msgstr "Images de fond"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Placer tous les bureaux sur un plan"
+
+#~ msgid "Plane Down"
+#~ msgstr "Planer vers le Bas"
+
+#~ msgid "Plane Left"
+#~ msgstr "Planer à Gauche"
+
+#~ msgid "Plane Right"
+#~ msgstr "Planer à Droite"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Planer vers la Face 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Planer vers la Face 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Planer vers la Face 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Planer vers la Face 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Planer vers la Face 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Planer vers la Face 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Planer vers la Face 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Planer vers la Face 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Planer vers la Face 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Planer vers la Face 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Planer vers la Face 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Planer vers la Face 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Planer vers le Haut"
+
+#~ msgid "Plane down"
+#~ msgstr "Faire glisser la vue vers le bureau inférieur"
+
+#~ msgid "Plane left"
+#~ msgstr "Faire glisser la vue vers le bureau de gauche"
+
+#~ msgid "Plane right"
+#~ msgstr "Faire glisser la vue vers le bureau de droite"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Faire glisser la vue vers la face 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Faire glisser la vue vers la face 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Faire glisser la vue vers la face 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Faire glisser la vue vers la face 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Faire glisser la vue vers la face 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Faire glisser la vue vers la face 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Faire glisser la vue vers la face 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Faire glisser la vue vers la face 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Faire glisser la vue vers la face 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Faire glisser la vue vers la face 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Faire glisser la vue vers la face 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Faire glisser la vue vers la face 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Faire glisser la vue vers le bureau supérieur"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Temps de fondu de l'opacité de la fenêtre du bureau"
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 0000000..d5fa305
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,3386 @@
+# translation of compiz.po to
+# traducción de gl-compiz.po to Galician
+# Compiz Core Galician Translation.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the Compiz package.
+# Fran Diéguez (GLUG) <fran dot dieguez at glug dot es>, 2007.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2009-02-01 17:23+0100\n"
+"Last-Translator: Fran Diéguez (GLUG) <fran.dieguez@glug.es>\n"
+"Language-Team: <gl@li.org> <trasno@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Escritorio"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Xestión de Fiestras"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ningún"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Sombra"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Maximizar Horizontalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Maximizar Verticalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Elevar"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Baixar"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menú da Fiestra"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Acción a levar a cabo cando se fai acciona a roda do rato na barra de título "
+"da fiestra."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tipo de desenfoque"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacidade da fiestra activa no tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Opacidade da sombra da fiestra activa no tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacidade do tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Opacidade da sombra do tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opacidade a empregar para fiestras activas con decoracións metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacidade a empregar para decoracións metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Escurecer decoración de fiestras activas con temas metacity de opaco cara "
+"transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Sombrear decoración de fiestras con temas metacity de opaco cara transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Acción da roda do rato na barra de título"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipo de desenfoque empregado para as decoracións"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Empregar tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Empregar tema metacity ao debuxar as decoracións das fiestras"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Pechar Fiestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Demaximizar Fiestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizar Fiestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizar Fiestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Sempre en Primeiro Plano"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Fixar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Descurecer"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Desfacer Sempre en Primeiro Plano"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Desfixar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "A fiestra \"%s\" non está respondendo."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Se forzar a saída desta aplicación causará a perda dos cambios non gardados."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forzar Saída"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anotación"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Cor de recheo das anotacións"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Cor do pincel das anotacións"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Complemento de Anotacións"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Limpar"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Debuxar"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Debuxar empregando a ferramenta"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Cor de recheo das anotacións"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Iniciar"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Iniciar debuxo das anotacións"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Iniciar goma de borrar das anotacións"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Iniciar goma de borrar"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Ancho da liña"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Ancho da liña para anotacións"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Cor do pincel para anotacións"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ancho do pincel"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ancho do pincel para as anotacións"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x Bilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Desenfoque Alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Desenfoque alfa das fiestras"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtro de desenfoque"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Oclusión ou desenfoque"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturación do desenfoque"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Velocidade de desenfoque"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Desenfocar fiestras"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Desenfocar na parte traseira das fiestras"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturación do desenfoque"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Desenfocar fiestras"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Desenfocar fiestras que non teñan foco"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Desactivar desenfoque de rexións de pantalla escurecidas por outras fiestras."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Método de filtrado empregado para desenfocar"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Desenfocar segundo o foco"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Desenfocar fiestras segundo o foco"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gausiano"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Radio gausiano"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Forza gausiana"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Radio gausiano"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Forza gausiana"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Recollida de textura independente"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mapa de Imaxe"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mapa de Imaxe LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Nivel de detalle do mapa de imaxe"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulso"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efecto pulso"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Empregar as unidades de textura dispoñibles para facer o maior número "
+"derecollidas de textura independentes posibles."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Velocidade de desenfoque das fiestras"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Fiestras afectadas polo desenfoque do foco"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Fiestras que deben empregar o-desenfoque alfa por omisión"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Saída Clonada"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Iniciar selección clonada"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Xestor de clonación de saída"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de "
+"consolaidentificado polo comando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un atallo de teclado que, cando é accionado, executa o comando de consola "
+"identificado polo comando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Atallos de teclado"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Liña de comando 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Liña de comando 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Liña de comando 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Liña de comando 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Liña de comando 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Liña de comando 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Liña de comando 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Liña de comando 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Liña de comando 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Liña de comando 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Liña de comando 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Liña de comando 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando0 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando1 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando10 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando11 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando2 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando3 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando4 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando5 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando6 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando7 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando8 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Liña de comando a ser executada na consola cando executar_comando9 sexa "
+"accionado"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Comandos"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Atallos de teclado"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Atallos de teclado"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Executar comando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Executar comando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Executar comando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Executar comando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Executar comando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Executar comando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Executar comando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Executar comando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Executar comando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Executar comando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Executar comando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Executar comando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Complementos Activos"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permitir que o renderizado das fiestras a pantalla completa non sexa "
+"redirixido a mapas de imaxe fora da pantalla"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Campá audible"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Campá de sistema audible"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Elevación Automática"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Atraso na Elevación Automática"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detección automática de dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detección automática da taxa de actualización"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Mellor"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Faga Clic para Enfocar"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Ao facer clic na fiestra transfírese o foco cara ela"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Pechar a fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Icona por defecto"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Imaxe da icona da fiestra por defecto"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Tamaño do Escritorio"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detectar Saídas"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detectar Taxa de Actualización"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Configuracións de Pantalla"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"O tempo que o punteiro debe estar no borde da pantalla antes de que acción "
+"do borde se leve a cabo."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Atraso do Disparador de Acción de Borde"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rápido"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Enfoque &amp; Xestión de Comportamento"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Nivel de Prevención de Enfoque"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Prevención do Enfoque nas Fiestras"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Prevención do enfoque nas fiestras"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forzar debuxado na saída independente"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opcións Xerais"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opcións xerais de compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bo"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ocultar Fiestras Ignorando a Barra de Tarefa"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Ocultar todas as fiestras e enfocar o escritorio"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Agochar as fiestras que non están na barra de tarefas ao entrar no modo "
+"amosar escritorio"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Alta"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Tamaño Virtual Horizontal"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Empregala compresión para as texturas convertidas dende imaxes"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorar os Consellos Cando Estea Maximizado"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignorar incremento de tamaño e aspecto dos consellos cando a fiestra está "
+"maximizada"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervalo antes da elevación das fiestras seleccionadas"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervalo entre mensaxes ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Atallos de teclado"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Nivel de prevención da perda de enfoque"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Iluminación"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista de engadidos activados"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista de cadeas que describen os dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Baixa"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Fiestra Máis Baixa"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Fiestra máis baixa por debaixo das outras fiestras"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximizar a Fiestra Horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximizar a Fiestra Verticalmente"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximiza a fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximiza horizontalmente a fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximiza verticalmente a fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimiza a fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Número de escritorios"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Número de escritorios virtuais"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Apagado"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Só actualizar a pantalla durante o período de limpeza vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Saídas"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Xestión de Saídas Superpostas"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Debuxar cada dispositivo de saída de forma independente, aínda que o "
+"dispositivo de saída se superpoña"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Atraso de ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferir saída máis grande"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferir saída máis pequena"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Elevar con un Clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Elevar Fiestra"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Elevar fiestras seleccionadas despois dun intervalo de tempo"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Elevar fiestra por enriba das restantes"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Elevar fiestras cando se faga clic nelas"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Taxa de Actualización"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicador do tamaño da pantalla para o tamaño virtual horizontal"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicador do tamaño da pantalla para o tamaño virtual vertical"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Amosar Escritorio"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animacións Lentas"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Modo intelixente"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizar a VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compresión de Texturas"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtro de Textura"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtro de Texturas"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Taxa de refresco da pantalla (veces/segundo) "
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Trocar Maximizado da Fiestra"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Trocar Maximizado Horizontal da Fiestra"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Trocar Maximizado Vertical da Fiestra"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Trocar Escurecemento da Fiestra"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Trocar Maximizado da Fiestra Actual"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Trocar Maximizado Horizontal da Fiestra Activa"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Trocar Maximizado Vertical da Fiestra Activa"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Trocar escurecemento da fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Trocar o uso de animacións lentas"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Desmaximizar fiestra activa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Desredirección das Fiestras en Pantalla Completa"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Empregar luz difusa cando se transforma a pantalla"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Tamaño Vertical Virtual"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Moi Alta"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Cal dos dispositivos que se superpoñen debería ser o preferido"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Botón de atallo para menú da fiestra"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tecla de atallo para menú da fiestra"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Aceleración"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Axustar Imaxe"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Axustar a cara superior á rotación"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avanzar á seguinte cara"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animar Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animar Skydome ao xirar o cubo"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Apariencia"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Comportamento"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Cor dos lados superior e inferior do cubo"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Cor a utilizar para a cor inferior do gradiente do skydome por omisión"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Cor a utilizar para cor superior do gradiente do skydome por omisión"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Tapas do Cubo"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Cor do Cubo"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cubo de escritorios"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Aceleración de dobrado"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocidade de dobrado"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Pasos de dobrado"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Xerar mapas cando sexa posíbel para dimensionado de mellor calidade"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Voltar á anterior cara"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Arquivos de imaxe"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imaxe a empregar como textura no skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Iniciar transparencia do cubo só se a rotación é iniciada polo rato."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Interior do Cubo"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Interior do cubo"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista de arquivos PNG e SVG que deben ser empregan na cara superior do cubo"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modo de saída múltiple"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Cubos múltiples"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Seguinte Cara"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Un cubo grande"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacidade Durante a Rotación"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacidade Mentres Non se Roda"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacidade da fiestra do escritorio ao rodar"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacidade do escritorio cando non está rotando"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Colocar fiestras no cubo"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Anterior Cara"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Renderizar skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Escalar imaxe"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Escalar imaxes para cubrir a cara superior do cubo"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Seleccione como se mostra o cubo se se empregan dispositivos de saída "
+"múltiples"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Cor Final do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Cor Inicial do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imaxe do Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocidade"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Saltos do tempo"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Activar Transparencia só ao rodar co rato"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Cubo Transparente"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Desdobrar"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Desdobrar cubo"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Backend de control do Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permitir a xeración de mapas de imaxe para as texturas da decoración"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Decoración das fiestras"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Liña de comando a executar se non se está a executar ningún decorador"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Desprazamento X da sombra"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Desprazamento Y da sombra"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacidade da sombra"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Radio da sombra"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Desprazamento X da Sombra"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Desprazamento Y da Sombra"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacidade da Sombra"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Radio da Sombra"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Fiestras con sombra"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decoración da Fiestra"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decoracións das fiestras"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Fiestras que se deben decorar"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Fiestras que deben ter sombra"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Brillo (en %) das fiestras bloqueadas"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Velocidade constante"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Constante de tempo"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Escurecer as Fiestras que non Responden"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Escurecer as fiestras que non están a responder ó que o xestor de fiestras "
+"require"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Modo de Desvanecemento"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Aparecer ao Minimizar/Abrir/Pechar"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocidade de Desvanecemento"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Tempo de desvanecemento"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+"Realizar Efecto de Desvanecemento cos eventos de minimizar/abrir/pechar "
+"fiestras"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efecto de desvanecemento ao soar a campá do sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Amosar as fiestras cando haxa mapeado e desvanecelas cando sexan desmapeadas"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Desvanecer fiestras"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Fiestras Desvanecidas"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Campá Visual a Pantalla Completa"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+"Efecto de desvanecemento da pantalla completa cando sona a campá do sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Saturación das fiestras bloqueadas (en %)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Brillo das Fiestras Bloqueadas"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Saturación das Fiestras Bloqueadas"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Campá Visual"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Modo de desvanecemento das fiestras"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+"Modo \"Velocidade Constante\" para a Velocidade de Desvanecemento das "
+"Fiestras"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Modo \"Tempo constante\" para a Duración do Desvanecemento de Fiestra"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Fiestras que se deben desvanecer"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Punto de Montaxe"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Punto de montaxe"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Sistema de Ficheiros en Espazo de Usuario"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Sistema de ficheiros en espazo de usuario"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Configurador de GNoME (GConf)"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Xestor de Configuracións GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Soporte ó bucle principal de GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Abrir unha terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Diálogo de Execución"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Executar comando de terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Capturar pantalla da liña de comando"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Amosar Menú Principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Amosar caixa de diálogo Executar Aplicativo"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Amosar o menú principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Facer unha capturar pantalla"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Facer captura de pantalla dunha fiestra"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Liña de comando do terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Liña de comando para captura de pantalla de fiestras"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Xestor de configuracións simples con ficheiros Ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Engadido de notificación de cambios en ficheiros"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Xestor de Configuracións Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efecto ó Minimizar"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimizar as Fiestras"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Velocidade de minimizado"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Atraso no minimizado"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistencia da Sombra"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistencia que opón a sombra ó minimizar a súa fiestra"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformar as fiestras cando son minimizadas e restauradas"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Fiestras se deben transformar cando sexan minimizadas"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Restrinxir Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Restrinxir a coordenada Y á area de traballo"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Non actualizar a posición das fiestras no servidor ata acabar o movemento"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Iniciar Movemento de Fiestras"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Posicionamento preguizoso"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mover Fiestra"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Atallos de teclado e rato para o movemento máis sinxelo das fiestras"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nivel de opacidade das fiestras en movemento"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Separar e restaurar as fiestras maximizaas cando se arrastren"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Separar as fiestras maximizadas"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Iniciar movemento da fiestra"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Brillo"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Brillo (en %) das fiestras bloqueadas"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Reducir Opacidade"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Aumentar Opacidade"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Etapa de mudanza de opacidade"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Etapa de mudanza de opacidade"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Etapa de Opacidade"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nivel de opacidade das fiestras en movemento"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacidade Durante a Rotación"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturación"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Saturación das fiestras bloqueadas (en %)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decoracións das fiestras"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Valores de opacidade da fiestra"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Colocar Fiestras"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Fiestras que se deben ser colocadas por omisión"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Fiestras que deben ser translúcidas por omisión"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Fiestras que se deben ser colocadas por omisión"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmo a empregar para posicionar as fiestras"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "En Cascada"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrado"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Colocación de Fiestras Fixadas"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Forzar o colocado das fiestras"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Posicións de áreas de traballo horizontais"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Manter na Área de Traballo"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Manter as fiestras colocadas na área de traballo, aínda que isto signifique "
+"que a posición poida diferir da posición especificada"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Colocación de Fiestras"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Colocar en tódalas saídas"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Coloca fiestras nas posicións axeitas cando sexan mapeadas"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Modo de Colocación"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Fiestras Colocadas"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aleatorio"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Selecciona como se debe comportar a colocación de fiestras cando se "
+"seleccionan saídas múltiples"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Intelixente"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Empregar o dispositivo de saída activo"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Empregar o dispositivo de saída da fiestra enfocada"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Empregar o dispositivo de saída co punteiro"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Posicións dos puntos de vista verticais"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Fiestras colocadas nas áreas de traballo"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Entornos de colocación de fiestra"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Fiestras que se deben ser colocadas por omisión"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Fiestras que deben ser colocadas en áreas de traballo específicos por omisión"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Fiestras que se deben colocar obrigatoriamente, aínda que se indique no "
+"xestor de fiestras que se deben evitar a súa colocación"
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Fiestras con posicións fixadas"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Fiestras con áreas de traballo fixado"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Entornos"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Posicións X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Posicións X da Área de traballo"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valores de posición X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Posicións Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Posicións Y da Área de Traballo"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valores de posición Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Cargador de imaxes Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Coincidencia Regex"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Coincidencia Regex das fiestras"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Atallos de teclado"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Cor do borde"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Cor do borde dos extremos e modos de dimesionado por rectángulos"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Modo de Dimensionado por Omisión"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Modo a empregar por omisión no dimensionado de fiestras"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Cor de recheo"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Cor de recheo empregada para o modo de dimensionado por rectángulo"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Iniciar o Dimensionado Normal de Fiestra"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Iniciar o Dimensionado de Fiestras co Borde"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Iniciar o Dimensionado de Fiestras co Rectángulo"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Iniciar Dimensionado Por Estirado de Fiestras"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Iniciar Dimensión de Fiestras"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Dimensionado Normal de Fiestras"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Contorno"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Dimensionado de Fiestras co Contorno"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rectángulo"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Dimensionado de Fiestras co Rectángulo"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Dimensionar Fiestra"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Dimensionar fiestra"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Iniciar dimensionado de fiestra"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Iniciar dimensionado de fiestras estirándoas"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Iniciar dimensionado normal da fiestra"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Iniciar dimensionado de fiestra empregando o contorno"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Iniciar dimensionado da fiestra empregando un rectángulo"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Estirado"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Dimensionar Fiestras Estirándoas"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Fiestras que deben empregar dimensionado normal"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Fiestras que deben empregar dimensionado co contorno"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Fiestras que deben empregar o dimensionado por rectángulo"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Fiestras que deben empregar dimensionamento por estiramento"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Cambiar cando se Arrastra cara o Borde"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Xirar con Movemento cara o Borde"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Xirar cando estea o Punteiro no Borde"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Duración do Xiro"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Xirar á area de traballo da esquerda e manter punteiro"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Xirar á área de traballo seguinte ao arrastrar un obxecto cara o borde da "
+"pantalla"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Xirar á área de traballo seguinte ao mover o punteiro cara o borde da fiestra"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Cambiar á área de traballo seguinte ao mover a fiestra cara o borde da "
+"fiestra"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Cambiar á área de traballo da dereita e manter punteiro"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverter eixo Y do movemento do punteiro"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Inverter o eixo Y do Punteiro"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilidade do Punteiro"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Elevar ao accionar a roda do rato"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Elevar fiestras ao accionar a roda do rato"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Xiros no Cubo"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Xirar á Esquerda"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Xirar á Dereita"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Xirar á Esquerda"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Xirar á Esquerda coa Fiestra"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Xirar á Dereita"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Xirar á Dereita arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Xirar a"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Xirar á Cara 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Xirar á Cara 1 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Xirar á Cara 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Xirar á Cara 10 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Xirar á Cara 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Xirar á Cara 11 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Xirar á Cara 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Xirar á Cara 12 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Xirar á Cara 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Xirar á Cara 2 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Xirar á Cara 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Xirar á Cara 3 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Xirar á Cara 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Xirar á Cara 4 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Xirar á Cara 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Xirar á Cara 5 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Xirar á Cara 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Xirar á Cara 6 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Xirar á Cara 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Xirar á Cara 7 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Xirar á Cara 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Xirar á Cara 8 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Xirar á Cara 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Xirar á Cara 9 arrastrando a Fiestra"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Xirar Cubo"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Xirar cubo do escritorio"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Xirar á esquerda"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Xirar á esquerda e arrastrar a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Xirar á dereita"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Xirar á dereita e arrastrar a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Xirar á cara do cubo"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Xirar á cara do cubo coa fiestra"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Xirar á cara 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Xirar á cara 1 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Xirar á cara 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Xirar á cara 10 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Xirar á cara 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Xirar á cara 11 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Xirar á cara 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Xirar á cara 12 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Xirar á cara 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Xirar á cara 2 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Xirar á cara 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Xirar á cara 3 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Xirar á cara 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Xirar á cara 4 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Xirar á cara 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Xirar á cara 5 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Xirar á cara 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Xirar á cara 6 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Xirar á cara 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Xirar á cara 7 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Xirar á cara 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Xirar á cara 8 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Xirar á cara 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Xirar á cara 9 e arrastrar tamén a fiestra activa"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Xirar á área de traballo"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Xirar fiestra"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Xirar coa fiestra"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Aceleración da Rotación"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocidade de Rotación"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Saltos de Tempo da Rotación"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom da rotación"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilidade do movemento do punteiro"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Xirar o Cubo á Cara Inferior"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Xirar o Cubo á Cara Superior"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Xirar á Cara Inferior"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Xirar á Cara Superior"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Iniciar Rotación"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tempo de espera antes de rodar a área de traballo"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Nivel de Opacidade en porcentaxe"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grande"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Atallos para Trocar o Modo Escala"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Atallos de teclado para trocar o modo escala no canto de activalos cando son "
+"pulsados e desactivados cando se solta."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Facer Clic no Escritorio para Amosalo"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Escurecer Fondo"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Escurecer fondo ao escalar fiestras"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblema"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Entrar no modo Amosar Escritorio cando se faga clic no Escritorio durante o "
+"Escalado"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Tempo durante o cal se deixa o rato enriba"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Iniciar Selector de Fiestras"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Iniciar selector de fiestras Para Tódalas Fiestras"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Iniciar Selector de Fiestras para Grupos de Fiestras"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Iniciar Selector de Fiestras para Tódalas Fiestras na Saída Actual"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Atallos de teclado para Trocar o Modo Escala"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Os atallos de teclado trocan o modo de escala no canto de activalo cando é "
+"pulsado e desactivado cando é soltado."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Dispor todas as fiestras e iniciar súa transformación"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Dispor o grupo de fiestras e iniciar súa transformación"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Dispor as fiestras e iniciar súa transformación"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Dispor as fiestras na saída actual e iniciar a súa transformación"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "En tódolos dispositivos de saída"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Só no dispositivo de saída actual"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Icona Superposta"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Superpor un icona nas fiestras cando sexan escaladas"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Escalado"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Escalado de Fiestras"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Velocidade de Escalado"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Saltos na Escala"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Escala de Fiestras"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Selecciona cando son escaladasa fiestras se se empregan múltiples "
+"dispositivos de saída."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espazo entre fiestras"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espaciado"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tempo (en ms) antes de que o modo de escalado se remate ao pasar sobre unha "
+"fiestra"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Fiestras que deben ser escaladas en modo escala"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Abrir automaticamente a captura de pantalla con esta aplicación"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Cartafol"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Iniciar Rectángulo de Captura de Pantalla "
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Lanzar Aplicación"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Colocar capturas de pantalla neste directorio"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Captura de pantalla"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Complemento para a Captura de Pantalla"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Complemento que activa o soporte para o cargado de imaxes SVG"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Cantidade de brillo en porcentaxe"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Cantidade de saturación en porcentaxe"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Trocador de Aplicación"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Xirar Automaticamente"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Traer ó Frente"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Coloca a fiestra seleccionada en primeiro plano"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Afastar o escritorio mentres se cambian as fiestras"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimizado"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Seguinte Panel"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Seguinte fiestra"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Seguinte Fiestra (Todas as fiestras)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Seguinte Fiestra (Sen fiestra sobresaínte)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Amosar trocador se non está visíbel e seleccionar seguinte fiestra"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Amosar trocador se non está visíbel e seleccionar a seguinte fiestra de "
+"tódalas fiestras"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Amosar trocador se non está visíbel e seleccionar a fiestra anterior"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Amosar trocador se non está visíbel e seleccionar a fiestra anterior de todas"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Ant. Panel"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Ant. fiestra"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Fiestra anterior (Todas as fiestras)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Fiestra anterior (Sen fiestra sobresaínte)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Xirar á fiestra seleccionada mentres se cambia"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Seleccionar seguinte fiestra de tipo panel."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Seleccionar seguinte fiestra sen amosar a fiestra sobresaínte"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Seleccionar anterior fiestra de tipo panel."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Seleccionar fiestra anterior sen amosar a fiestra sobresaínte."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Amosar icona ao lado da miniatura"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Amosar fiestras minimizadas"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocidade do Cambiador"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Salto do Cambiador"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Cambiador de fiestras"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Fiestras que deben ser amosadas no cambiador"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Se está activado proporciona soporte de espazo de cor YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Reproducción de Vídeo"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+"Aplica algúns cambios no Compiz para dar soporte á reproducción de vídeo sen "
+"problemas colaterais."
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Espazo de cor YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Engadir liña"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Engadir punto"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Engade efectos de auga a diferentes accións do escritorio"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Atraso (en ms) entre cada gota de chuvia"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Activar efectos de auga co punteiro"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Liña"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Desprazamento da Escala"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punto"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Atraso da chuvia"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Onda dende o título"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Trocar chuvia"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Trocar efecto de chuvia"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Trocar limpiaparabrisas"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Troca o efecto de limpiaparabrisas"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efecto de Auga"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Espaciado entre as ondas de auga"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efecto de onda dende o título da fiestra"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efecto de Enfoque"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efecto de Enfoque da Fiestra"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Enfocar Fiestras"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Fricción"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Atracción das fiestras"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Resolución da Grella"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Axuste de fiestras invertido"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Facer que as fiestras temblen"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efecto ó colocar"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efecto da Fiestra ó Colocala"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Colocar Fiestras"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efecto ó Maximizar"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Tamaño Mínimo da Grella"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Tamaño Mínimo da Grella Vertex"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Mover Fiestras"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Temblar"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Instantánea invertida"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Axustar fiestras"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fricción do muelle"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "K do muelle"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constante do muelle"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Trocar axuste de fiestras"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Empregar modelo de mola para o efecto tremente da fiestra"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Resolución da Grella Vertex"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Fiestras que deben tremer cando son enfocadas"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Fiestras que deben tremer cando son agarradas"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Fiestras que deben tremer cando son colocadas"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Fiestras que deben tremer cando son movidas"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Activar o efecto tremer cando se maximizan ou minimizan as fiestras"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Fiestras trementes"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtro lineal"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Empregar o filtro lineal cando se fai zoom"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom do escritorio"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Acercar"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Afastar"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Colocación do Zoom"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocidade de Zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Salto de tempo do Zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Afastar e mover cubo do escritorio"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Factor de zoom"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Colocación do Zoom"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Liña de comando 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Executar comando 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Comandos de Captura de pantalla"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Atallos de teclado para facer captura de pantalla"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Reducir opacidade da fiestra"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Aumentar opacidade da fiestra"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valores de opacidade para fiestras que deben ser translúcidas por omisión"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacidade de fiestras"
+
+#~ msgid "Background Images"
+#~ msgstr "Imaxes de fondo"
+
+#~ msgid "Background images"
+#~ msgstr "Imaxes de fondo"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Colocar fiestras nun plano"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plano Abaixo"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plano á esquerda"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plano á dereita"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plano á Cara 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plano á Cara 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plano á Cara 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plano á Cara 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plano á Cara 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plano á Cara 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plano á Cara 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plano á Cara 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plano á Cara 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plano á Cara 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plano á Cara 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plano á Cara 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plano acima"
+
+#~ msgid "Plane down"
+#~ msgstr "Plano abaixo"
+
+#~ msgid "Plane left"
+#~ msgstr "Plano á esquerda"
+
+#~ msgid "Plane right"
+#~ msgstr "Plano á dereita"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plano á cara 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plano á cara 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plano á cara 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plano á cara 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plano á cara 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plano á cara 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plano á cara 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plano á cara 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plano á cara 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plano á cara 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plano á cara 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plano á cara 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plano á cima"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Tempo de desvanecemento da opacidade do escritorio"
diff --git a/po/gu.po b/po/gu.po
new file mode 100644
index 0000000..e7b28b6
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,3356 @@
+# translation of compiz.po to Gujarati
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+# Krunaliben Patel <krunaliben.patel@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2007-12-17 12:25+0530\n"
+"Last-Translator: \n"
+"Language-Team: gist Gujarati team <info.gist@cdac.in>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "ડેસ્કટોપ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "વિન્ડો વ્યવસ્થાપન"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "કંઈ નહિં"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "માપદંડ"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "મહત્તમ કરો"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "વિન્ડોને આડી રીતે મહત્તમ બનાવો"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "વિન્ડોને ઊભી રીતે મહત્તમ બનાવો"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "ન્યૂનતમ કરેલ"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "આપોઆપ-વધારો"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "વિન્ડોનું મેનુ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "જ્યારે વિન્ડો શીર્ષક પટ્ટી પર માઉસ પૈડું સરકાવી રહ્યા હોય ત્યારે કરવાની ક્રિયા."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "ઝાંખાપણાનો પ્રકાર"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "મેટાસીટી થીમ સક્રિય વિન્ડો અપારદર્શકતા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "મેટાસીટી થીમ સક્રિય વિન્ડો અપારદર્શકતા છાયા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "મેટાસીટી થીમ અપારદર્શકતા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "મેટાસીટી થીમ અપારદર્શકતા છાયા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "મેટાસીટી થીમ શણગારો સાથે સક્રિય વિન્ડો માટે વાપરવાની અપારદર્શકતા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "મેટાસીટી થીમ શણગારો માટે વાપરવાની અપારદર્શકતા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"સક્રિય વિન્ડોને મેટાસીટી થીમ શણગારો વડે અપારદર્શકમાંથી દૃશ્યમાનમાં લાવવા માટે છાયાંકિત "
+"કરો"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"વિન્ડોને મેટાસીટી થીમ શણગારો વડે અપારદર્શકમાંથી દૃશ્યમાનમાં લાવવા માટે છાયાંકિત કરો"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "શીર્ષક પટ્ટી માઉસ પૈડું ક્રિયા"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "વિન્ડો શણગારો માટે વપરાતા ઝાંખાપણાનો પ્રકાર"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "મેટાસીટી થીમ વાપરો"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "જ્યારે વિન્ડો શણગારો દોરી રહ્યા હોય ત્યારે મેટાસીટી થીમ વાપરો"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "વિન્ડો બંધ કરો"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "વિન્ડોને મહત્તમ સ્થિતિમાંથી પાછી લાવો"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "વિન્ડોને મહત્તમ સ્થિતિમાં લાવો"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "વિન્ડોને ન્યૂનત્તમ સ્થિતિમાં લાવો"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "ભરવાના રંગની ટિપ્પણી"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "સ્ટ્રોક રંગની ટિપ્પણી"
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "સાફ કરો"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "દોરો"
+
+#: ../metadata/annotate.xml.in.h:7
+#, fuzzy
+msgid "Draw using tool"
+msgstr "બુટ દરમિયાન"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "ટિપ્પણીઓ માટે રંગ ભરો"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "લીટી પહોળાઈ"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "ટિપ્પણીઓ માટે લીટી પહોળાઈ"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "ટિપ્પણીઓ માટે સ્ટ્રોક રંગ"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "સ્ટ્રોક પહોળાઈ"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "ટિપ્પણીઓ માટે સ્ટ્રોક પહોળાઈ"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "૪xદ્વિરેખીય"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "આલ્ફા ઝાંખાપણું"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "આલ્ફા ઝાંખાપણું વિન્ડો"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "ઝાંખાપણું ગાળક"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "ઝાંખાપણાની ઝડપ"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "વિન્ડો ઝાંખી કરો"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "વિન્ડોના સ્પષ્ટ ભાગો પાછળ ઝાંખુ કરો"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "વિન્ડો ઝાંખી કરો કે જેમને ફોકસ નથી"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "અન્ય વિન્ડો દ્વારા ઢંકાઈ ગયેલ સ્ક્રીન વિસ્તારો ઝાંખા કરવાનું નિષ્ક્રિય કરો."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "ઝાંખુ કરવા માટે વપરાતી ગાળણ પદ્ધતિ"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "ઝાંખુ ફોકસ કરો"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "ગોસીયન"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "ગોસિયન ત્રિજ્યા"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "ગોસિયન મજબૂતાઈ"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "ગોસિયન ત્રિજ્યા"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "ગોસિયન મજબૂતાઈ"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "મીપમેપ"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "મીપમેપ LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "મીપમેપ વિગત-નું-સ્તર"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "ધબકાર"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "ધબકાર અસર"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "વિન્ડો ઝાંખાપણાની ઝડપ"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "વિન્ડો કે જેઓ ફોકસ ઝાંખાપણાથી અસર પામવા જોઈએ"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "વિન્ડો કે જેઓ મૂળભૂત રીતે આલ્ફા ઝાંખાપણાને વાપરતી હોવી જોઈએ"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "ક્લોન આઉટપુટ"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "કેટાલોગ પસંદગી"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "આઉટપુન ક્લોન નિયંત્રક"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command0 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command1 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command10 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command11 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command2 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command3 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command4 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command5 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command6 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command7 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command8 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command9 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command0 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command1 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command10 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command11 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command2 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command3 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command4 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command5 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command6 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command7 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command8 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command9 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command0 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command1 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command10 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command11 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command2 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command3 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command4 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command5 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command6 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command7 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command8 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "કીબાઈન્ડીં કે જે જ્યારે બોલાવવામાં આવી, તે command9 તરીકે ઓળખાતો શેલ આદેશ ચલાવશે"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command0 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command1 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command10 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command11 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command2 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command3 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command4 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command5 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command6 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command7 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command8 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "શેલમાં ચલાવવાનું આદેશ વાક્ય જ્યારે run_command9 બોલાવવામાં આવે"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "આદેશો :"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "સક્રિય પ્લગઈનો"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"પૂર્ણસ્ક્રીન વિન્ડોને દોરાવાની પરવાનગી આપવાનું ઓફસ્ક્રીન પિક્સમેપમાં પુનઃદિશામાન થયેલ નથી"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "સંભળાય તેવી ઘંટડી"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "સંભળાય તેવી સિસ્ટમ ઘંટડી"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "આપોઆપ-વધારો"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "આપોઆપ-વધારો વિલંબ"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "આઉટપુટ ઉપકરણોની આપોઆપ શોધ"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "પુનઃતાજું કરવાના દરની આપોઆપ શોધ"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "શ્રેષ્ઠ"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "ફોકસ કરવા માટે ક્લિક કરો"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "વિન્ડો પર ક્લિક કરવાનું ઈનપુટ ફોકસને તેના પર ખસેડે છે"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "સક્રિય વિન્ડો બંધ કરો"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "મૂળભૂત ચિહ્ન"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "મૂળભૂત વિન્ડો ચિહ્ન ચિત્ર"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ડેસ્કટોપ ઘન"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "આઉટપુટ શોધો"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "પુનઃતાજું કરવાનો દર શોધો"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "ઝડપી"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "બચાવ વિન્ડો પર ફોકસ કરો"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "બચાવ વિન્ડો પર ફોકસ કરો"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "સામાન્ય વિકલ્પો"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "સામાન્ય compiz વિકલ્પો"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "સરસ"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "ક્રિયાપટ્ટી વિન્ડો અવગણો છુપાવો"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "બધી વિન્ડોને સંતાડીને ડેસ્કટોપ પ્રકાશન કરો"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"જ્યારે ડેસ્કટોપ બતાવો સ્થિતિ દાખલ કરી રહ્યા હોય ત્યારે ક્રિયાપટ્ટીમાં નહિં હોય તેવી વિન્ડો "
+"છુપાવો"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "આડું વર્ચ્યુઅલ માપ"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "જ્યારે મહત્તમ થયેલ હોય ત્યારે ઈશારાઓ અવગણો"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "માપ વધારવાનું અને એસ્પેક્ટ ઈશારાઓ અવગણો જ્યારે વિન્ડો મહત્તમ થયેલ હોય"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "પસંદિત વિન્ડો વધારવા પહેલાંનો અંતરાલ"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "પીંગ સંદેશાઓ વચ્ચેનો અંતરાલ"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "પ્રકાશન"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "વર્તમાનમાં સક્રિય પ્લગઈનોની યાદી"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "આઉટપુટ ઉપકરણો વર્ણવતી શબ્દમાળાઓની યાદી"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "નીચી વિન્ડો"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "અન્ય વિન્ડો હેઠળ નીચી વિન્ડો"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "વિન્ડોને આડી રીતે મહત્તમ બનાવો"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "વિન્ડોને ઊભી રીતે મહત્તમ બનાવો"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "સક્રિય વિન્ડોને મહત્તમ સ્થિતિમાં લાવો"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "સક્રિય વિન્ડોને આડી રીતે મહત્તમ બનાવો"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "સક્રિય વિન્ડોને ઊભી રીતે મહત્તમ બનાવો"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "સક્રિય વિન્ડોને ન્યૂનત્તમ સ્થિતિમાં લાવો"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "સામાન્ય"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "ડેસ્કટોપની સંખ્યા"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "વર્ચ્યુઅલ ડેસ્કટોપની સંખ્યા"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "ઊભા કોરા સમયગાળા દરમ્યાન માત્ર સ્ક્રીન સુધારાઓ જ કરે છે"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "આઉટપુટ"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "પીંગ વિલંબ"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "ક્લિક કરવા પર વધારો"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "વિન્ડો વધારો"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "પસંદિત વિન્ડોને અંતરાલ પછી વધારો"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "વિન્ડોને બીજી બધી વિન્ડોની ઉપર લાવો"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "જ્યારે ક્લિક થાય ત્યારે વિન્ડો વધારો"
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&રીફેશ"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "આડા વર્ચ્યુઅલ માપ માટે સ્ક્રીન માપ ગુણક"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "ઊભા વર્ચ્યુઅલ માપ માટે સ્ક્રીન માપ ગુણક"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "ડેસ્કટોપ બતાવો"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "ધીમ એનીમેશનો"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "ચપળ"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank માં સુમેળ કરો"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "લખાણ ગાળણ"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "લખાણ ગાળક"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "લખાણ ગાળણ"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "દર કે જેનાથી સ્ક્રીન પુનઃદોરાય છે (સમય/સેકન્ડો)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "વિન્ડોને મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "વિન્ડો આડી રીતે મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "વિન્ડો ઊભી રીતે મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "વિન્ડો પડછાયાવાળી બદલો"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "સક્રિય વિન્ડો મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "સક્રિય વિન્ડો આડી રીતે મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "સક્રિય વિન્ડો ઊભી રીતે મહત્તમ કરેલ સ્થિતિમાં બદલો"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "સક્રિય વિન્ડો પડછાયાવાળી બદલો"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "ધીમા એનીમેશનોનો વપરાશ બદલો"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "સક્રિય વિન્ડોને મહત્તમ સ્થિતિમાંથી પાછી લાવો"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "પૂર્ણસ્ક્રીન વિન્ડોનું પુનઃદિશામાન દૂર કરો"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "જ્યારે સ્ક્રીન પરિવહન થઈ રહી હોય ત્યારે આછો પ્રકાશ વાપરો"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "ઊભું વર્ચ્યુઅલ માપ"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "વિન્ડો મેનુ બટન બાઈન્ડીંગ"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "વિન્ડો મેનુ કી બાઈન્ડીંગ"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "પ્રવેગ"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "ચિત્ર સંતુલિત કરો"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "ટોચની બાજુનું ચિત્ર ફેરવવા માટે સંતુલિત કરો"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "આગળની સ્લાઈડ પર અદ્યતન"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Skydome એનીમેટ કરો"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "જ્યારે ઘન ફેરવી રહ્યા હોય ત્યારે skydome ને એનીમેટ કરો"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "ઘનની ટોચ અને તળિયેની બાજુના રંગ"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "skydome-fallback ઢાળના રંગ-અટકણ તળિયા માટે વાપરવાનો રંગ"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "skydome-fallback ઢાળના રંગ-અટકણ ટોચ માટે વાપરવાનો રંગ"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ઘન રંગ"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "ઘન રંગ"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "ડેસ્કટોપ ઘન"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "ફોલ્ડ પ્રવેગ"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "ફોલ્ડ ઝડપ"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "ફોલ્ડ સમયપગલું"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "મીપમેપ બનાવો જ્યારે ઊંચી ગુણવત્તા ખેંચવા માટે શક્ય હોય"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "પહેલાંની સ્લાઈડ પર પાછા જાવ"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "ચિત્ર ફાઈલો"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "skydome માટે લખાણ તરીકે વાપરવાનું ચિત્ર"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "જો ફેરવવાનું માઉસથી કરવાનું હોય તો જ ઘન પારદર્શકતાનો આરંભ કરે છે."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "ઘનની અંદર"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "ઘનની અંદર"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "PNG અને SVG ફાઈલોની યાદી કે જે ઘનની ટોચે રેન્ડર થવી જોઈએ"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "વિવિધ આઉટપુટ સ્થિતિ"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "વિવિધ ઘન"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "આગળની સ્લાઈડ"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "મોટા ઘન પર"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "ફેરવવા દરમ્યાન અપારદર્શકતા"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "જ્યારે ફેરવી રહ્યા નહિં હોય ત્યારની અપારદર્શકતા"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "ફેરવવા દરમ્યાન ડેસ્કટોપ વિન્ડોની અપારદર્શકતા."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "જ્યારે ફેરવી રહ્યા નહિં હોય ત્યારે ડેસ્કટોપ વિન્ડોની અપારદર્શકતા."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "વિન્ડોને ઘન પર મૂકો"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "પહેલાંની સ્લાઈડ"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "skydome રેન્ડર કરો"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "ચિત્ર ખેંચો"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "ઘનની ટોચની બાજુ આવરવા માટે ચિત્રો ખેંચો"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"જો ઘણાબધા આઉટપુટ ઉપકરણો વપરાતા હોય તો ઘન કેવી રીતે દર્શાવવામાં આવે છે તે પસંદ કરે છે."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Skydome ઢાળ અંત રંગ"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Skydome ઢાળ શરૂઆત રંગ"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Skydome ચિત્ર"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "ઝડપ"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "સમયપગલું"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "માત્ર માઉસ ફેરવવા પર જ પારદર્શકતા"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "ફોલ્ડ કરશો નહિં"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "ઘન ફોલ્ડ કરશો નહિં"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus નિયંત્રણ પાશ્વભાગ"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "શણગાર લખાણો માટે મીપમેપને બનાવવા માટે પરવાનગી આપો"
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "આદેશો :"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"શણગારનાર આદેશ વાક્ય કે જે ચલાવવામાં આવે છે જો કોઈ શણગારનાર પહેલાથી ચાલી રહ્યો નહિં હોય"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "પડછાયા X ઓફસેટ મૂકો"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "પડછાયા Y ઓફસેટ મૂકો"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "પડછાયા રંગ મૂકો"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "પડછાયા અપારદર્શકતા મૂકો"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "પડછાયા ત્રિજ્યા મૂકો"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "પડછાયા રંગ"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "પડછાયા ઓફસેટ X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "પડછાયા ઓફસેટ Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "પડછાયા અપાદર્શકતા"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "પડછાયા ત્રિજ્યા"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "વિન્ડો શણગાર"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "વિન્ડો શણગારો"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "વિન્ડો કે જેને શણગાર થવો જોઈએ"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "વિન્ડો કે જેને પડછાયો હોવો જોઈએ"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "ચલ Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "આછાપણાનો સમય"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "નાનું કરવા પર/ખોલવા પર/બંધ કરવા પર આછું કરો"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "આછાપણાની ઝડપ"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "આછાપણાનો સમય"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "વિન્ડો નાનું કરો/ખોલો/બંધ કરો ઘટનાઓ પર આછાપણાની અસર"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "સિસ્ટમ બીપ પર આછાપણાની અસર"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "વિન્ડો આછી કરો જ્યારે જોડાયેલ હોય અને જ્યારે જોડાયેલ નહિં હોય ત્યારે ઘાટી કરો"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "સંપૂર્ણસ્ક્રીન દેખીતી ઘંટડી"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "સિસ્ટમ બીપ પર સંપૂર્ણસ્ક્રીન સ્ક્રીન આછાપણાની અસર"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "દૃશ્યમાન ઘંટડી"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "વિન્ડો આછાપણાની ઝડપ"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "વિન્ડો કે જે ખેંચાણ સ્થિતિમાં ખેંચાવી જોઈએ"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "વિન્ડો કે જેઓ આછી થવી જોઈએ"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "માઉન્ટ બિંદુ"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "માઉન્ટ બિંદુ"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "વપરાશકર્તાજગ્યા ફાઈલ સિસ્ટમ"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "વપરાશકર્તાજગ્યા ફાઈલ સિસ્ટમ"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf નિયંત્રણ બેકેન્ડ"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib મુખ્ય લુપ આધાર"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "ટર્મિનલ ખોલો"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "સંવાદ ચલાવો"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "સ્ક્રીનશોટ આદેશ વાક્ય"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "મુખ્ય મેનુ બતાવો"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "કાર્યક્રમ ચલાવો સંવાદ બતાવો"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "મુખ્ય મેનુ બતાવો"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "ફોટો લો"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "વિન્ડોનો ફોટો લો"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "આદેશ '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "વિન્ડો સ્ક્રીનશોટ આદેશ વાક્ય"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini સપાટ ફાઈલ બેકેન્ડ"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ફાઈલ બદલી સૂચન પ્લગઈન"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig નિયંત્રણ બેકેન્ડ"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "ન્યૂનતમ અસર"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "વિન્ડો ન્યૂનતમ કરો"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "ન્યૂનતમ કરવાની ઝડપ"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "સમયનોંધ ન્યૂનતમ કરો"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "પડછાયા વિરોધી"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "પડછાયા વિરોધી"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "જ્યારે વિન્ડો નાની થાય અને નાનામાંથી પાછી આવે ત્યારે પરિવહન કરવાની વિન્ડો"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "જ્યારે ન્યૂનતમ કરવાની હોય કે જેનું પરિવહન થવું જોઈએ તે વિન્ડો"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "ચલ Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "કાર્યસ્થળ વિસ્તારમાં ચલ Y યામાક્ષ"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "વિન્ડોનું સર્વર-બાજુ સ્થાન સુધારશો નહિં જ્યાં સુધી ખસેડવાનું સમાપ્ત નહિં થાય"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "વિન્ડો ખસેડવાનું આરંભ કરો"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "આળસુ સ્થાનીકરણ"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "વિન્ડો ખસેડો"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "વિન્ડોને ખસાડો"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "અપારદર્શકતા"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "ખસી રહેલ વિન્ડોની અપારદર્શકતાનું સ્તર"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "મહત્તમ થયેલ વિન્ડોને ખેંચતી વખતે સ્નેપઓફ કરો અને આપોઆપ મહત્તમ સ્થિતિમાંથી પાછી લાવો"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "મહત્તમ થયેલ વિન્ડો સ્નેપઓફ કરો"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "વિન્ડોને ખસેડવાનું શરૂ કરો"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "તેજસ્વીતા"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "તેજસ્વીતા"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "તેજસ્વીતા"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "તેજસ્વીતા"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "અપારદર્શકતા ઘટાડો"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "અપારદર્શકતા વધારો"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "અપારદર્શકતા બદલો પગલું"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "અપારદર્શકતા બદલો પગલું"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "અપારદર્શકતા પગલું"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "ખસી રહેલ વિન્ડોની અપારદર્શકતાનું સ્તર"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "ફેરવવા દરમ્યાન અપારદર્શકતા"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "વિન્ડો શણગારો"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "અપારદર્શક વિન્ડો કિંમતો"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "નકશા વિન્ડો"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "વિન્ડો કે જેઓ મૂળભૂત રીતે ગોઠવાયેલ હોવી જોઈએ"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "વિન્ડો કે જે મૂળભૂત રીતે અર્ધપારદર્શક હોવી જોઈએ"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "વિન્ડો કે જેઓ મૂળભૂત રીતે ગોઠવાયેલ હોવી જોઈએ"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "વિન્ડો ગોઠવણી માટે વાપરવાનો અલગોરિધમ"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "ધોધવાળું"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "કેન્દ્રિત થયેલ"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "વિન્ડો વ્યવસ્થાપન"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "બચાવ વિન્ડો પર ફોકસ કરો"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "આડા દૃશ્યપોર્ટ સ્થાનો"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "વિન્ડો મૂકો"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "વિન્ડોને જ્યારે જોડાય ત્યારે યોગ્ય સ્થાને મૂકો"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "ગોઠવણી સ્થિતિ"
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "રેન્ડમ"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "જો વિવિધ આઉટપુટ ઉપકરણો વપરાય તો વિન્ડો ક્યાં ખેંચાય તે પસંદ કરે છે."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "ચપળ"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "બધા આઉટપુટ ઉપકરણો પર"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "ઊભા દૃશ્યપોર્ટ સ્થાનો"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "વિન્ડો જગ્યા ઉકેલો"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "વિન્ડો કે જેઓ મૂળભૂત રીતે ગોઠવાયેલ હોવી જોઈએ"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "વિન્ડો કે જે ચોક્કસ દૃશ્યપોર્ટમાં મૂળભૂત રીતે ગોઠવાયેલ હોવા જોઈએ"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "વિન્ડો શણગારો"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "ઉકેલો"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X સ્થાનો"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X દૃશ્યપોર્ટ સ્થાનો"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X સ્થાન કિંમતો"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y સ્થાનો"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y દૃશ્યપોર્ટ સ્થાનો"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y સ્થાન કિંમતો"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png ચિત્ર લાવનાર"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regex જોડણી"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex વિન્ડો જોડણી"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "કિનારી રંગ"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "બાહ્ય કિનારી અને લંબચોરસ માપ સ્થિતિઓ માટે વપરાતો કિનારી રંગ"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "મૂળભૂત માપ બદલવાની સ્થિતિ"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "વિન્ડોનું માપ બદલવા માટે વપરાતી મૂળભૂત સ્થિતિ"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "રંગ ભરો"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "લંબચોરસ માપ બદલો સ્થિતિ માટે વપરાતો ભરવાનો રંગ"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "બાહ્ય કિનારી"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "બાહ્ય કિનારી માપ બદલો વિન્ડો"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "લંબચોરસ"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "લંબચોરસ માપ બદલો વિન્ડો"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "વિન્ડોનું માપ બદલો"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "વિન્ડોનુ માપ બદલો"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "વિન્ડોનું માપ બદલવાનું શરૂ કરો"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "વિન્ડોને ખેંચીને તેનું માપ બદલવાનું શરૂ કરો"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "વિન્ડોનું સામાન્ય રીતે માપ બદલવાનું શરૂ કરો"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "બાહ્ય કિનારી સાથે વિન્ડોનું માપ બદલવાનું શરૂ કરો"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "લંબચોરસ સાથે વિન્ડોનું માપ બદલવાનું શરૂ કરો"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "ખેંચો"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "વિન્ડોનું માપ બદલવા ખેંચો"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "વિન્ડો કે જેના માટે સામાન્ય માપ બદલવાનું વપરાવું જોઈએ"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "વિન્ડો કે બાહ્ય કિનારીનું માપ બદલવા માટે વાપરવામાં આવવી જોઈએ"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "વિન્ડો કે લંબચોરસનું માપ બદલવા માટે વાપરવામાં આવવી જોઈએ"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "વિન્ડો કે ખેંચવાનું માપ બદલવા માટે વાપરવામાં આવવી જોઈએ"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "બાજુ પલટાવ DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "બાજુ પલટાવ ખસેડો"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "બાજુ પલટાવ નિર્દેશક"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "પલટાવ સમય"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "ડાબા દૃશ્યમાં પલટાવો અને નિર્દેશક લપેટો"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "આગળના દૃશ્ય આગળ પલટાવ જ્યારે ઓબ્જેક્ટને સ્ક્રીનની બાજુ પર ખેંચી રહ્યા હોય"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "આગળના દૃશ્યમાં પલટાવો જ્યારે નિર્દેશકને સ્ક્રીનની બાજુ પર ખસેડી રહ્યા હોય"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "આગળના દૃશ્ય પર પલટાવો જ્યારે વિન્ડો સ્ક્રીનની બાજુ પર ખસેડી રહ્યા હોય"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "જમણા દૃશ્યમાં પલટાવો અને નિર્દેશક લપેટો"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "નિર્દેશક ચાલ માટે ઉલટો Y અક્ષ"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "નિર્દેશક ઉલટો Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "નિર્દેશક સંવેદનશીલતા"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "ફેરવવા પર વધારો"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "જ્યારે ફેરવી રહ્યા હોય ત્યારે વિન્ડો વધારો"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "ઘન ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "ડાબે પલટાવો ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "પલટાવો જમણે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "ડાબે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "વિન્ડો સાથે ડાબે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "જમણે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "વિન્ડો સાથે જમણે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "ચહેરા ૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "ચહેરા ૧૦ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૧૦ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "ચહેરા ૧૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૧૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "ચહેરા ૧૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૧૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "ચહેરા ૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "ચહેરા ૩ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૩ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "ચહેરા ૪ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૪ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "ચહેરા ૫ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૫ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "ચહેરા ૬ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૬ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "ચહેરા ૭ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૭ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "ચહેરા ૮ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૮ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "ચહેરા ૯ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "વિન્ડો સાથે ચહેરા ૯ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "ઘન ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "ડેસ્કટોપ ઘન ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "ડાબે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "વિન્ડો સાથે ડાબે ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "જમણે ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "વિન્ડો સાથે જમણે ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "ચહેરા ૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "વિન્ડો સાથે ચહેરા ૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "ચહેરા ૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૧ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "ચહેરા ૧૦ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૧૦ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "ચહેરા ૧૧ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૧૧ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "ચહેરા ૧૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૧૨ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "ચહેરા ૨ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૨ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "ચહેરા ૩ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૩ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "ચહેરા ૪ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૪ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "ચહેરા ૫ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૫ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "ચહેરા ૬ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૬ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "ચહેરા ૭ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૭ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "ચહેરા ૮ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૮ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "ચહેરા ૯ તરફ ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "વિન્ડો સાથે ચહેરા ૯ તરફ ફેરવો અને સક્રિય લાવો"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "દૃશ્યમાં ફેરવો"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "નિર્દેશક ચાલની સંવેદનશીલતા"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ટોચના ચહેરા ઉપર સ્નેપ ઘન ફેરવવાનું"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ટોચના ચહેરા ઉપર સ્નેપ ઘન ફેરવવાનું"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ટોચના ચહેરા ઉપર સ્નેપ"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ટોચના ચહેરા ઉપર સ્નેપ"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "શોધી કાઢવાનું ફ&રીશરૂ થઇ રહ્યું છે"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "દૃશ્ય પલટાવવા પહેલાંનો સમયસમાપ્તિ ગાળો"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "નાનું-મોટુ કરો"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "અપારદર્શકતાનો જથ્થો ટકામાં"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "મોટું"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "ડેસ્કટોપ બતાવવા માટે ડેસ્કટોપ ક્લિક કરો"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "ઘાટું પાશ્વભાગ"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "જ્યારે વિન્ડો ખેંચી રહ્યા હોય ત્યારે ઘાટું પાશ્વભાગ"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "સંજ્ઞા"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "જ્યારે ખેંચવા દરમ્યાન ડેસ્કટોપ પર ક્લિક થાય ત્યારે ડેસ્કટોપ બતાવો સ્થિતિ દાખલ કરો"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "રક્ષણ સમય"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "બધી વિન્ડો માટે વિન્ડો લેનારનો આરંભ કરો"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "વિન્ડો જૂથ માટે વિન્ડો લેનારનો આરંભ કરો"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "વર્તમાન આઉટપુટ પર વિન્ડો માટે વિન્ડો લેનારનો આરંભ કરો"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "બધી વિન્ડોનું રૂપાંતરણ અને લેઆઉટ શરૂ કરો"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "વિન્ડો જૂથનું રૂપાંતરણ અને લેઆઉટ શરૂ કરો"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "દેખાવ અને વિન્ડોનું રૂપાંતરણ શરૂ કરો"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "વર્તમાન આઉટપુટ પર વિન્ડોનું રૂપાંતરણ અને લેઆઉટ શરૂ કરો"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "બધા આઉટપુટ ઉપકરણો પર"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "વર્તમાન આઉટપુટ ઉપકરણ પર"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "ઓવરલે ચિહ્ન"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "વિન્ડો પર ચિહ્ન ઓવરલે કરો જ્યારે તેઓ ખેંચાય"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "માપદંડ"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "વિન્ડો ખેંચો"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "ખેંચાવાની ઝડપ"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "ખેંચાવાનું સમયપગલું"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "જો વિવિધ આઉટપુટ ઉપકરણો વપરાય તો વિન્ડો ક્યાં ખેંચાય તે પસંદ કરે છે."
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "છોડેલી જગ્યા"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"જ્યારે વિન્ડો ઉપર ફરી રહ્યા હોય ત્યારે ખેંચાણ સ્થિતિ બંધ થાય તે પહેલાંનો સમય (મિલિસેકન્ડમાં)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "વિન્ડો કે જે ખેંચાણ સ્થિતિમાં ખેંચાવી જોઈએ"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "સ્ક્રીનશોટ આપોઆપ આ કાર્યક્રમમાં ખોલો"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "&સ્થાનિક ડિરેક્ટરી"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "કેટાલોગ પસંદગી"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "કાર્યક્રમ લાવો"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "આ ડિરેક્ટરીમાં સ્ક્રીનશોટ ચિત્રો મૂકો"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "સ્ક્રીનશોટ"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "સ્ક્રીનશોટ પ્લગઈન"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg ચિત્ર લાવનાર"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "તેજસ્વીતાનો જથ્થો ટકામાં"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "સંતુલનનો જથ્થો ટકામાં"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "કાર્યક્રમ બદલનાર"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "પ્રારંભ કરાઈ રહયું છે."
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "બુટ દરમિયાન"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "પસંદિત વિન્ડોને આગળ લાવો"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "વિન્ડો બદલતી વખતે ડેસ્કટોપ નાની કરતી વખતનું અતર"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "ચિહ્ન"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "ન્યૂનતમ કરેલ"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ડેસ્કટોપ પ્લેન"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "પોપઅપ બદલનાર જો દેખીતું ના હોય અને આગળની વિન્ડો પસંદ કરો"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "પોપઅપ બદલનાર જો દેખીતું ના હોય અને બધી વિન્ડોમાંથી આગળની વિન્ડો પસંદ કરો"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "પોપઅપ બદલનાર જો દેખીતું ના હોય અને પહેલાંની વિન્ડો પસંદ કરો"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "પોપઅપ બદલનાર જો દેખીતું ના હોય અને બધી વિન્ડોમાંથી પહેલાંની વિન્ડો પસંદ કરો"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "પહેલાંની સ્લાઈડ"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "પહેલાંની વિન્ડો"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "પહેલાંની વિન્ડો (બધી વિન્ડો)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "પહેલાંની વિન્ડો (કોઈ પોપઅપ નથી)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "જ્યારે બદલી રહ્યા હોય ત્યારે પસંદિત વિન્ડો સુધી ફેરવો"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "પોપઅપ વિન્ડો બતાવ્યા વિના આગળની વિન્ડો પસંદ કરો."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "પોપઅપ વિન્ડો બતાવ્યા વિના પહેલાંની વિન્ડો પસંદ કરો."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "થમ્બનેઈલ આગળ ચિહ્ન બતાવો"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "ન્યૂનતમ કરેલ વિન્ડો બતાવો"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "બદલનારની ઝડપ"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "બદલનાર સમયપગલું"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "બદલનાર વિન્ડો"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "વિન્ડો કે જે બદલનારમાં બતાવવી જોઈએ"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 રંગજગ્યા આધાર પૂરો પાડો"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "વીડિયો પ્લેબેક"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "વીડિયો પ્લેબેક"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 રંગજગ્યા"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "લીટી ઉમેરો"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "બંદુ ઉમેરો"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "અલગ ડેસ્કટોપ ક્રિયાઓમાં પાણી અસરો ઉમેરે છે"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "દરેક વરસાદ-પડવા વચ્ચેનો વિલંબ (ms માં)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "નિર્દેશક પાણી અસરો સક્રિય કરો"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "લીટી"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "ઓફસેટ માપ"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "બિંદુ"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "વરસાદ વિલંબ"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "શીર્ષક તરંગ"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "વરસાદ બદલો"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "વરસાદ અસર બદલો"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "વાઈપર બદલો"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "વાઈપર અસર બદલો"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "પાણી અસર"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "પાણી ઓફસેટ માપ"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "વિન્ડો શીર્ષકમાંથી તરંગ અસર"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "ફોકસ અસર"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "વિન્ડો ફોકસ અસર"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "ઘર્ષણ"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "જાળી રીઝોલ્યુશન"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "ઊલટાવાયેલ વિન્ડો સ્નેપીંગ"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "વિન્ડોને ધ્રુજતી બનાવો"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "નકશા અસર"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "નકશા વિન્ડો અસર"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "નકશા વિન્ડો"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "મહત્તમ કરો અસર"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "ન્યૂનતમ જાળી માપ"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "ન્યૂનતમ Vertex જાળી માપ"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "વિન્ડો ખસેડો"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "ધ્રુજારી"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "સ્નેપ ઊલટાવાયેલ"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "એકપણ પસંદ ન કરો"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "બુટ દરમિયાન"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "સ્પ્રીંગ K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "સ્પ્રીંગ અચળ"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "વિન્ડો સ્નેપીંગ બદલો"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "વિન્ડો વમળ અસર માટે સ્પ્રીંગ મોડેલ વાપરો"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Vertex જાળી રીઝોલ્યુશન"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "વિન્ડો કે જે ફોકસ થાય ત્યારે વમળ થવી જોઈએ"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "વિન્ડો કે જે મેળવાય ત્યારે વમળ થવી જોઈએ"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "વિન્ડો જ્યારે નકશાવાળી થાય ત્યારે વમળ થવી જોઈએ"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "વિન્ડો કે જે ખસેચવામાં આવે ત્યારે વમળ થવી જોઈએ"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+"વિન્ડો જ્યારે મહત્તમ કરી રહ્યા હોય અને મહત્તમમાંથી પાછા લાવી રહ્યા હોય ત્યારે વમળ અસર"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "વિન્ડો વમળ કરો"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "ગાળક રેખીય"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "જ્યારે મોટું થાય ત્યારે રેખીય ગાળણ વાપરો"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "ડેસ્કટોપ નાનીમોટી કરો"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "મોટુ કરો"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "નાનુ કરો"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "પેન નાનુંમોટું કરો"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "સ્થાપન પૂરું થયું"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "નાનામોટાપણાનું સમયપગલું"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ડેસ્કટોપ ઘન નાનુંમોટું કરો અને વિસ્તારો"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "નાનામોટાપણાનો અવયવ"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "સ્થાપન પૂરું થયું"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "આદેશ '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "આદેશ '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "સ્ક્રીનશોટ આદેશ વાક્ય"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "સ્ક્રીનશોટ આદેશ વાક્ય"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "વિન્ડો અપારદર્શકતા ઘટાડો"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "વિન્ડો અપારદર્શકતા વધારો"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "વિન્ડો માટેની અપારદર્શકતા કિંમતો કે જેઓ મૂળભૂત રીતે અર્ધપારદર્શક હોવી જોઈએ"
+
+#~ msgid "Opacity windows"
+#~ msgstr "અપારદર્શક વિન્ડો"
+
+#~ msgid "Background Images"
+#~ msgstr "પાશ્વભાગ ચિત્રો"
+
+#~ msgid "Background images"
+#~ msgstr "પાશ્વભાગ ચિત્રો"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "વિન્ડોને પ્લેન પર મૂકો"
+
+#~ msgid "Plane Down"
+#~ msgstr "પ્લેન નીચે"
+
+#~ msgid "Plane Left"
+#~ msgstr "પ્લેન ડાબે"
+
+#~ msgid "Plane Right"
+#~ msgstr "પ્લેન જમણે"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "ચહેરા ૧ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "ચહેરા ૧૦ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "ચહેરા ૧૧ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "ચહેરા ૧૨ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "ચહેરા ૨ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "ચહેરા ૩ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "ચહેરા ૪ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "ચહેરા ૫ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "ચહેરા ૬ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "ચહેરા ૭ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "ચહેરા ૮ આગળ પ્લેન"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "ચહેરા ૯ આગળ પ્લેન"
+
+#~ msgid "Plane Up"
+#~ msgstr "પ્લેન ઉપર"
+
+#~ msgid "Plane down"
+#~ msgstr "પ્લેન નીચે"
+
+#~ msgid "Plane left"
+#~ msgstr "પ્લેન ડાબે"
+
+#~ msgid "Plane right"
+#~ msgstr "પ્લેન જમણે"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "ચહેરા ૧ આગળ પ્લેન"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "ચહેરા ૧૦ આગળ પ્લેન"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "ચહેરા ૧૧ આગળ પ્લેન"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "ચહેરા ૧૨ આગળ પ્લેન"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "ચહેરા ૨ આગળ પ્લેન"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "ચહેરા ૩ આગળ પ્લેન"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "ચહેરા ૪ આગળ પ્લેન"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "ચહેરા ૫ આગળ પ્લેન"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "ચહેરા ૬ આગળ પ્લેન"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "ચહેરા ૭ આગળ પ્લેન"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "ચહેરા ૮ આગળ પ્લેન"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "ચહેરા ૯ આગળ પ્લેન"
+
+#~ msgid "Plane up"
+#~ msgstr "પ્લેન ઉપર"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "ડેસ્કટોપ વિન્ડો અપાદર્શકતા આછાપણા સમય."
+
+#~ msgid "Unknown"
+#~ msgstr "અજાણી"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "કન્ફિગ્યુરેશન સાચવો"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "સ્થાપન પૂરું થયું"
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..bbc87e3
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,3600 @@
+# Hebrew message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2004 SuSE Linux AG.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2009-02-04 18:15+0100\n"
+"Last-Translator: Yotam Benshalom <benshalom@gmail.com>\n"
+"Language-Team: Hebrew <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=0;\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "שולחן עבודה"
+
+# Label text
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "ניהול חלונות"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "קומפיז"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "ללא"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "גלול"
+
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "הגדל למקסימום"
+
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "הרחב למקסימום"
+
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "הגבה למקסימום"
+
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "מזער"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "העלה"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "תחתון"
+
+# Label text
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "תפריט חלון"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "פעולה לביצוע בעת גלילת גלגלת העכבר על שורת הכותרת."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "סוג טשטוש"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "אטימות חלון פעיל על פי ערכת הנושא של Metacity"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "הצללת אטימות חלון פעיל על פי ערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "אטימות ערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "הצללת אטימות ערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "אטימות עבור חלונות פעילים עם מסגרות של ערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "אטימות עבור מסגרות של ערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "הצללת חלונות פעילים עם מסגרות של ערכת הנושא של Metacity מאטום לשקוף"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "הצללת חלונות עם מסגרות של ערכת הנושא של Metacity מאטום לשקוף"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "פעולת גלגלת העכבר מעל פס הכותרת"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "סוג טשטוש עבור מסגרות חלון"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "השתמש בערכת הנושא של Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "השתמש בערכת הנושא של Metacity בעת ציור מסגרות חלון"
+
+# button text
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "סגור חלון"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "שחזר גודל חלון"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "הגדל חלון למקסימום"
+
+# button text
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "מזער חלון"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "העבר למעלה"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "נעל במקום"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "פרוס גלילה"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "בטל העברה למעלה"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "בטל נעילה במקום"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "החלון \"%s\" אינו מגיב."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "סגירה כפויה של היישום תביא לאובדן שינויים שלא נשמרו."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_סגור יישום"
+
+# IN
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "ציור הערות"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "צבע מילוי עבור הערות"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "צבע מכחול עבור הערות"
+
+# IN
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "התקן ציור הערות"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "נקה"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "צייר"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "צייר בעזרת כלי"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "צבע מילוי עבור הערות"
+
+# IN
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "התחל"
+
+# IN
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "התחל לצייר הערות"
+
+# IN
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "התחל למחוק הערות"
+
+# IN
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "התחל מחיקה"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "עובי קו"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "עובי קו עבור הערות"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "צבע מכחול עבור הערות"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "עובי מכחול"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "עובי מכחול עבור הערות"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4 x ביליניארי"
+
+# button text
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "טשטוש אלפא"
+
+# button text
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "טשטוש אלפא לחלונות"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "מסנן טשטוש"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "אטימה בטשטוש"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "רווית טשטוש"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "מהירות טשטוש"
+
+# button text
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "טשטוש חלונות"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "טשטוש מאחורי חלקי חלון שקופים"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "רווית טשטוש"
+
+# button text
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "טשטוש חלונות"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "טשטוש חלונות לא ממוקדים"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "אל תטשטש חלקי מסך המוסתרים על ידי חלונות אחרים."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "שיטת סינון עבור טשטוש"
+
+# button text
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "טשטוש מיקוד"
+
+# אני לא בטוח למה הכוונה
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "טשטש מיקוד חלונות"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "גאוס"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "רדיוס גאוס"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "עוצמת גאוס"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "רדיוס גאוס"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "עוצמת גאוס"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "ייבוא עצמאי של טקסטורות"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "הפעלת Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "רמת פירוט Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "רמת הירידה לפרטים של Mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "הבהוב"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "אפקט הבהוב"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"השתמש ביחידות טקסטורה זמינות על מנת לבצע ייבוא עצמאי של טקסטורות רבות ככל "
+"האפשר."
+
+# label text, %1 is replaced by a unit value ("MB")
+# Labels for input fields. "%1" will be replaced with the current unit (MB).
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "מהירות טשטוש חלון"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "חלונות עליהם יש להחיל טשטוש מיקוד"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "חלונות עליהם יש להחיל טשטוש אלפא כברירת מחדל"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "שיבוט פלט"
+
+# IN
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "התחל בחירת שיבוט"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "הליך טיפול בפלט משובט"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המזוהה על ידי פקודה0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המזוהה על ידי פקודה0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המזוהה על ידי פקודה0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "צירוף מקשים להפעלת פקודת המעטפת המוגדרת על ידי פקודה9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "צירופים"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "שורת פקודה 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "שורת פקודה 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "שורת פקודה 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "שורת פקודה 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "שורת פקודה 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "שורת פקודה 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "שורת פקודה 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "שורת פקודה 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "שורת פקודה 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "שורת פקודה 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "שורת פקודה 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "שורת פקודה 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "שורת הפקודה שתופעל בעת הרצת פקודה9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "פקודות"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "צירופים"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "צירופי מקשים"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "הרץ פקודה 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "הרץ פקודה 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "הרץ פקודה 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "הרץ פקודה 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "הרץ פקודה 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "הרץ פקודה 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "הרץ פקודה 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "הרץ פקודה 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "הרץ פקודה 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "הרץ פקודה 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "הרץ פקודה 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "הרץ פקודה 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "התקנים מופעלים"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "אל תנתב חלונות במסך מלא למפות-פיקסלים שמחוץ למסך"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "צלצול ניתן לשמיעה"
+
+# label text
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "צפצוף מערכת ניתן לשמיעה"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "העלאה אוטומטית"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "השהייה לפני העלאה אוטומטית"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "זיהוי אוומטי של התקני פלט"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "זיהוי אוטומטי של קצב רענון"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "מיטבי"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "הקלקה למיקוד"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "הקלקה על חלון תעביר אליו את מוקד הקלט"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "סגירת חלון פעיל"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "צלמית ברירת מחדל"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "תמונת צלמית ברירת המחדל של חלון"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "גודל שולחן עבודה"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "זהה סוגי פלט"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "זהה קצב עדכון"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "הגדרות תצוגה"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr "משך הזמן שבו מצביע העכבר ישהה בקצה המסך לפני הפעלת פעולת קצה מסך."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "השהיית הפעלת קצה מסך"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "מהיר"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "אופן עליה וקבלת מוקד"
+
+# heading text
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "רמת מניעת מיקוד"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "חלונות מניעת מיקוד"
+
+# heading text
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "חלונות מניעת מיקוד"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "כפה צביעת פלט עצמאית."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "אפשרויות כלליות"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "אפשרויות כלליות של קומפיז"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "טוב"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "הסתרת חלונות הנעדרים משורת המשימות"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "הסתר את כל החלונות וגלה את שולחן העבודה"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"הסתרת החלונות שאינם מופיעים בשורת המשימות בעת כניסה למצב גילוי שולחן עבודה"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "גבוהה"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "גודל אופקי וירטואלי"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "אם ניתן, השתמש בדחיסה עבור טקסטורות שהומרו מתמונות"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "התעלם מרמזים כאשר החלון מוגדל למקסימום"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "התעלם מרמזים הנוגעים לגודל שגוי ולאספקט כאשר החלון מוגדל למקסימום"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "פסק זמן לפני העלאת החלונות שנבחרו"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "פסק זמן בין מסרי פינג"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "צירופי מקשים"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "רמת מניעת גניבת מיקוד"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "תאורה"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "רשימת ההתקנים הפעילים"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "רשימת המחרוזות המתארות התקני פלט"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "נמוכה"
+
+# label text
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "הורד חלון"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "הורד חלון אל מתחת לחלונות אחרים"
+
+# button text
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "הרחב את החלון למקסימום"
+
+# button text
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "הגבה את החלון למקסימום"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "הגדל חלון פעיל למקסימום"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "הרחב חלון פעיל למקסימום"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "הגבה חלון פעיל למקסימום"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "מזער חלון פעיל"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "רגיל"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "מספר שולחנות עבודה"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "מספר שולחנות עבודה וירטואליים"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "כבויה"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "בצע עדכוני מסך רק במשך המחיקות האנכיות"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "פלטים"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "טיפול בחפיפת פלט"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr "צבע כל פלט כשלעצמו, אפילו אם התקני הפלט חופפים"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "השהיית פינג"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "העדף פלט גדול יותר"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "העדף פלט קטן יותר"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "העלה בעת קליק"
+
+# heading text
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "העלה חלון"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "העלה את החלונות שנבחרו לאחר פסק זמן"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "העלה חלון מעל ליתר החלונות"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "העלה חלונות כאשר מקליקים עליהם"
+
+# label text
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "קצב רענון"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "מכפיל גודל מסך עבור גודל וירטואלי אופקי"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "מכפיל גודל מסך עבור גודל וירטואלי אנכי"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "גלה שולחן עבודה"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "אנימציה איטית"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "מצב חכם"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "סינכרון עם VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "דחיסת טקסטורות"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "מסנן טקסטורות"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "סינון טקסטורות"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "הקצב שבו מתעדכן המסך (פעמים\\שניה)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "הפעלת\\ניטרול גודל חלון מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "הפעלת\\ניטרול רוחב חלון מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "הפעלת\\ניטרול גובה חלון מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "הפעלת\\ניטרול גלילת חלון"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "הפעלת\\ניטרול גודל חלון פעיל מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "הפעלת\\ניטרול רוחב חלון פעיל מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "הפעלת\\ניטרול גובה חלון פעיל מקסימלי"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "הפעלת\\ניטרול חלון פעיל גלול"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "הפעלת\\ניטרול שימוש באנימציה איטית"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "שחזר גודל חלון פעיל"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "אל תעביר חלונות במסך מלא"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "השתמש בפיזור אור בעת שינוי צורת מסך"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "גודל אנכי וירטואלי"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "גבוהה מאוד"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "איזה התקן פלט להעדיף מבין ההתקנים החופפים"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "צירוף כפתורים עבור תפריט חלון"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "צירוף מקשים עבור תפריט חלון"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "האצה"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "התאם תמונה"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "התאם את תמונת הפאה העליונה לזווית הסיבוב"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "התקדם לשקופית הבאה"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "כיפת-רקיע מונפשת"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "הנפש את כיפת הרקיע בעת סיבוב הקוביה"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "מראה"
+
+# IN
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "אוטומטי"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "אופן"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "צבע הפאה העליונה והפאה התחתונה של הקוביה"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "צבע הקצה התחתון של כיפת-הרקיע - רקע הדרגתי כברירת מחדל"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "צבע הקצה העליון של כיפת-הרקיע - רקע הדרגתי כברירת מחדל"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "מכסי הקוביה"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "צבע הקוביה"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "שולחן קוביה"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "האצת קיפול"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "מהירות קיפול"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "יחידת זמן קיפול"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "במידת האפשר צור mipmap עבור שינוי קנה מידה באיכות גבוהה"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "חזור לשקופית הקודמת"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "קבצי תמונה"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "תמונה שתשמש כטקסטורה עבור כיפת-הרקיע"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "השתמש בשקיפות הקוביה רק אם הסיבוב בוצע בעזרת העכבר."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "מבט מתוך הקוביה"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "מבט מתוך הקוביה"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "רשימת קבצי SVG ו-PNG שיוצגו על פאת הקוביה העליונה"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "מצב פלט מרובה"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "קוביות מרובות"
+
+# button text
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "השקופית הבאה"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "קוביה גדולה אחת"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "אטימות בעת סיבוב"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "אטימות בעת מנוחה"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "אטימות שולחן העבודה בעת סיבוב."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "אטימות שולחן העבודה בעת מנוחה."
+
+# button text
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "מקם את החלונות על הקוביה"
+
+# label text
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "השקופית הקודמת"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "צייר כיפת-רקיע"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "התאם את מידות התמונה"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "התאם את מידות התמונות כדי שתכסינה את פאת הקוביה העליונה"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "בחר את אופן הצגת הקוביה בעת שימוש ביותר מהתקן פלט אחד."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "כיפת-רקיע"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "צבע הדרגתי סופי של כיפת-הרקיע"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "צבע הדרגתי התחלי של כיפת-הרקיע"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "תמונת כיפת-הרקיע"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "מהירות"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "יחידת זמן"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "שקיפות רק בעת סיבוב עכבר"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "קוביה שקופה"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "פרוש קיפול"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "פרוש את הקוביה"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus "
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "תשתית בקרת Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "אפשר ייצור mipmap עבור טקסטורות מסגרת"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "פקודה"
+
+# button text
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "חלונות מסגרת"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"שורת פקודה עבור צייר מסגרות שאותה יש להריץ אם שום צייר מסגרות אינו פעיל"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "הסטת X של צל חלון"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "הסטת Y של צל חלון"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "צבע צל חלון"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "שקיפות צל חלון"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "רדיוס צל חלון"
+
+# button text
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "צבע הצל"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "הסטת X של הצל"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "הסטת Y של הצל"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "אטימות צל"
+
+# button text
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "רדיוס צל"
+
+# button text
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "חלונות צל"
+
+# Label text
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "מסגור חלונות"
+
+# Label text
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "מסגרות לחלונות"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "חלונות עבורם יש לצייר מסגרת"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "חלונות האמורים להטיל צל"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "בהירות חלונות שאינם מגיבים (באחוזים)"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "מהירות קבועה"
+
+# header text
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "משך קבוע"
+
+# heading text
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "עמעם חלונות שאינם מגיבים"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "עמעם חלונות שאינם מגיבים להודעות מנהל החלונות"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "מצב עמעום"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "עמעום בעת מזעור\\פתיחה\\סגירה"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "מהירות עמעום"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "משך עמעום"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "אפקט עמעום בעת ארועי מזעור, פתיחה וסגירה של חלון"
+
+# label text
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "אפקט עמעום בעת צפצוף מערכת"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "עמעום פנימה לחלונות בעת מיפוי ועמעום החוצה לחלונות בעת מחיקה"
+
+# button text
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "עמעום חלונות"
+
+# button text
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "עמעום חלונות"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "פעמון חזותי במסך מלא"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "אפקט עמעום במסך מלא בעת צפצוף מערכת"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "רווית חלונות שאינם מגיבים (באחוזים)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "בהירות חלונות שאינם מגיבים"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "רווית חלונות שאינם מגיבים"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "פעמון חזותי"
+
+# label text, %1 is replaced by a unit value ("MB")
+# Labels for input fields. "%1" will be replaced with the current unit (MB).
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "מצב עמעום חלון"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "מהירות עמעום חלון במצב \"מהירות קבועה\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "משך עמעום חלון במצב \"משך קבוע\" (במילישניות)"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "חלונות האמורים לעבור עמעום"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "נקודת עיגון"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "נקודת עיגון"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "מערכת קבצים במרחב המשתמש"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "מערכת קבצים במרחב המשתמש"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf "
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "תשתית בקרה של Gconf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib "
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "תמיכה בלולאה ראשית של GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "פתח מסוף"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "דיאלוג הרץ"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "הרץ פקודת מסוף"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "שורת פקודה לצילום מסך"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "הצג תפריט ראשי"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "הצג דיאלוג הרץ יישום"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "הצג את התפריט הראשי"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "צור צילום מסך"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "צור צילום מסך של חלון"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "שורת פקודה עבור מסוף"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "שורת פקודה לצילום מסך של חלון"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini "
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "תשתית קובץ Ini שטוח"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "התקן הודעות על שינוי בקובץ"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "הודעות"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig "
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "תשתית בקרה של Kconfig"
+
+# button text
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "אפקט מזעור"
+
+# button text
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "מזעור חלונות"
+
+# button text
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "מהירות מזעור"
+
+# button text
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "יחידת זמן למזעור"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "התנגדות הצללה"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "התנגדות הצללה"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "שנה את צורת החלונות בעת מזעור ושחזור"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "חלונות שיש לשנות את צורתם בעת מזעור"
+
+# header text
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "מגבלת Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "קואורדינטת Y להגבלת משטח העבודה"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "אל תעדכן את מיקום החלונות בצד השרת עד שסיימו לזוז"
+
+# button text
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "התחל להזיז חלון"
+
+# heading text
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "מיקום \"עצל\""
+
+# button text
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "הזזת חלון"
+
+# button text
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "הזזת חלון"
+
+# button text
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "אטימות"
+
+# button text
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "רמת אטימות של חלונות בתזוזה"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "שחזר אוטומטית את גודלם של חלונות שהוגדלו למקסימום בעת גרירה"
+
+# button text
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "שחזר חלונות שהוגדלו למקסימום"
+
+# heading text
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "התחל להזיז חלון"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "בהירות"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "בהירות"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "בהירות"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "בהירות"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "בהירות חלונות שאינם מגיבים (באחוזים)"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "הפחתת אטימות"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "הגבר אטימות"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "הדרגה שבה משתנה האטימות"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "הדרגה שבה משתנה האטימות"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "דרגת שינוי אטימות"
+
+# button text
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "רמת אטימות של חלונות בתזוזה"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "אטימות בעת סיבוב"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "רווייה"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "רווייה"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "רווייה"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "רווייה"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "רווית חלונות שאינם מגיבים (באחוזים)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+# Label text
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "מסגרות לחלונות"
+
+# label text
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "חלונות"
+
+# label text
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "מיפוי חלונות"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "חלונות שיש למקמם כברירת מחדל"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "חלונות האמורים להיות שקופים כברירת מחדל"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "חלונות שיש למקמם כברירת מחדל"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "אלגוריתם לקביעת מיקום החלון"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "דירוג"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "ממורכז"
+
+# Label text
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "הצבת חלונות במיקום קבוע"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "כפה מיקום על חלונות"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "מיקומי משטח אופקיים"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "שמור בתוך משטח העבודה"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"שמור את החלונות בתוך משטח העבודה לאחר מיקום, גם אם יש להציבם לשם כך במיקום "
+"שונה מזה המבוקש"
+
+# button text
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "מקם חלונות"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "מקם לרוחב כל התקני הפלט"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "מקם חלונות במקום המתאים בעת מיפוי"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "מצב קביעת מיקום"
+
+# heading text
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "חלונות ממוקמים"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "אקראי"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "קובע כיצד יש למקם חלונות אם נבחר יותר מהתקן פלט אחד"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "חכם"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "השתמש בהתקן פלט פעיל"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "השתמש בהתקן הפלט של החלון הפעיל"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "השתמש בהתקן הפלט עם הסמן"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "מיקומי משטח אנכיים"
+
+# heading text
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "חלונות הממוקמים על משטח"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "פתרונות מעקף למיקום"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "חלונות שיש למקמם כברירת מחדל"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "חלונות שיש למקמם במשטח ספציפי כברירת מחדל"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr "חלונות שיש למקמם בכפייה, גם אם הם מבקשים ממנהל החלונות שלא לעשות זאת."
+
+# Label text
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "חלונות בעלי מיקום קבוע"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "חלונות בעלי משטח עבודה קבוע"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "מעקפים"
+
+# heading text
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "מיקום ב-X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "מיקומי משטח ב-X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "ערכי מיקום ב-X"
+
+# heading text
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "מיקום ב-Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "מיקומי משטח ב-Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "ערכי מיקום ב-Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "טוען תמונות Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "התאמה לביטוי רגולרי"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "התאמת חלונות לביטוי רגולרי"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "צירופים"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "צבע גבול"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "צבע המסגרת עבור מצבי שינוי הגודל \"קו מתאר\" ו-\"מרובע\""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "מצב שינוי גודל"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "ברירת מחדל למצב שינוי גודל חלון"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "צבע מילוי"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "צבע מילוי עבור מצב שינוי גודל \"מרובע\""
+
+# IN
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "התחל לשנות גודל חלון במצב רגיל"
+
+# IN
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "התחל לשנות גודל חלון במצב קו מתאר"
+
+# IN
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "התחל לשנות גודל חלון במצב מרובע"
+
+# IN
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "התחל לשנות גודל חלון במצב מתיחה"
+
+# IN
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "התחל לשנות גודל חלון"
+
+# heading text
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "שינוי גודל חלונות במצב רגיל"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "קו מתאר"
+
+# heading text
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "שינוי גודל חלונות במצב קו מתאר"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "מרובע"
+
+# heading text
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "שינוי גודל חלונות במצב מרובע"
+
+# heading text
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "שינוי גודל חלון"
+
+# heading text
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "שינוי גודל חלון"
+
+# heading text
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "התחל לשנות את גודל החלון"
+
+# heading text
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "התחל לשנות את גודל החלון על ידי מתיחתו"
+
+# heading text
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "התחל לשנות את גודל החלון באופן רגיל"
+
+# heading text
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "התחל לשנות את גודל החלון בעזרת קו מתאר"
+
+# heading text
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "התחל לשנות את גודל החלון בעזרת מרובע"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "מתיחה"
+
+# heading text
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "שינוי גודל חלונות במתיחה"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "חלונות עבורם יש להשתמש בשינוי גודל רגיל"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "חלונות עבורם יש להשתמש בשינוי גודל בעזרת קו מתאר"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "חלונות עבורם יש להשתמש בשינוי גודל בעזרת מרובע"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "חלונות עבורם יש להשתמש בשינוי גודל בעזרת מתיחה"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "עלעול בגרירה לקצה מסך"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "עלעול בהזזה לקצה מסך"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "עלעול בהבאת סמן לקצה מסך"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "משך עלעול"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "עלעל למשטח השמאלי והקפץ את הסמן"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "עלעל למשטח הבא בעת גרירת עצם לקצה המסך"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "עלעל למשטח הבא בעת הזזת הסמן לקצה המסך"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "עלעל למשטח הבא בעת הזזת חלון לקצה המסך"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "עלעל למשטח הימני והקפץ את הסמן"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "הפוך את ציר Y לצורך הזזת הסמן"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Y הפוך עבור סמן"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "רגישות סמן"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "העלה בעת סיבוב"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "העלה את החלון בעת סיבוב"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "סיבוב קוביה"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "עלעל בסיבוב שמאלה"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "עלעל בסיבוב ימינה"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "סובב שמאלה"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "סובב שמאלה עם החלון"
+
+# button text
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "סובב ימינה"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "סובב ימינה עם החלון"
+
+# button text
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "סובב אל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "סובב אל פאה 1"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "סובב אל פאה 1 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "סובב אל פאה 10"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "סובב אל פאה 10 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "סובב אל פאה 11"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "סובב אל פאה 11 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "סובב אל פאה 12"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "סובב אל פאה 12 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "סובב אל פאה 2"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "סובב אל פאה 2 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "סובב אל פאה 3"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "סובב אל פאה 3 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "סובב אל פאה 4"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "סובב אל פאה 4 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "סובב אל פאה 5"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "סובב אל פאה 5 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "סובב אל פאה 6"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "סובב אל פאה 6 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "סובב אל פאה 7"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "סובב אל פאה 7 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "סובב אל פאה 8"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "סובב אל פאה 8 עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "סובב אל פאה 9"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "סובב אל פאה 9 עם החלון"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "סיבוב קוביה"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "סובב את קובית שולחן העבודה"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "סובב שמאלה"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "סובב שמאלה וקח את את החלון הפעיל"
+
+# button text
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "סובב ימינה"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "סובב ימינה וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "סובב לפאת הקוביה"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "סובב לפאת הקוביה עם החלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "סובב לפאה 1"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "סובב לפאה 1 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "סובב לפאה 10"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "סובב לפאה 10 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "סובב לפאה 11 "
+
+# heading text
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "סובב לפאה 11 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "סובב לפאה 12"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "סובב לפאה 12 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "סובב לפאה 2"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "סובב לפאה 2 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "סובב לפאה 3"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "סובב לפאה 3 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "סובב לפאה 4"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "סובב לפאה 4 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "סובב לפאה 5"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "סובב לפאה 5 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "סובב לפאה 6"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "סובב לפאה 6 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "סובב לפאה 7"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "סובב לפאה 7 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "סובב לפאה 8"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "סובב לפאה 8 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "סובב לפאה 9"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "סובב לפאה 9 וקח את החלון הפעיל"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "סובב למשטח"
+
+# button text
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "סובב חלון"
+
+# heading text
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "סובב עם החלון"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "תאוצת סיבוב"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "מהירות סיבוב"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "יחידת זמן סיבוב"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "זום סיבוב"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "רגישות תנועת הסמן"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "אפשר הנחת הקוביה על הפאה התחתונה"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "אפשר הנחת הקוביה על הפאה העליונה"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "מנוחה על פאה תחתונה"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "מנוחה על פאה עליונה"
+
+# label text
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "התחל סיבוב"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "פסק זמן לפני עלעול למשטח"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "תקריב"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "אחוז האטימות"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "גדול"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "צירוף הקלקות לשינוי מצב מבט על"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"צירוף ההקלקות משנה את מצב מבט העל במקום להפעילו בעת הלחיצה ולנטרלו בעת "
+"השחרור."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "הקלק על שולחן העבודה כדי להציגו"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "החשך רקע"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "החשך רקע בעת הפעלת מבט על"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "סמלון"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "היכנס למצב הצגת שולחן עבודה כאשר מקליקים עליו בעת מבט על"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "משך ריחוף"
+
+# button text
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "הפעל בוחר חלונות"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "הפעל בוחר חלונות עבור כל החלונות"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "הפעל בוחר חלונות עבור קבוצת חלונות"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "הפעל בוחר חלונות עבור חלונות בהתקן הפלט הנוכחי"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "שנה מצב מבט על בעזרת צירוף המקשים"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"צירוף המקשים ישנה את מצב מבט העל במקום להפעילו בעת הלחיצה ולנטרלו בעת השחרור."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "סדר את כל החלונות והתחל לשנות את גודלם"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "סדר את החלונות שבקבוצה והתחל לשנות את גודלם"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "סדר את החלונות והתחל לשנות את גודלם"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "סדר את החלונות בהתקן הפלט הנוכחי והתחל לשנות את גודלם"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "בכל התקני הפלט"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "בהתקן הפלט הנוכחי"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "צלמית מודבקת"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "הדבק צלמית על חלונות במבט על"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "מבט על"
+
+# button text
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "הצג חלונות במבט על"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "מהירות הפעלת מבט על"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "יחידת זמן של הפעלת מבט על"
+
+# button text
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "הצג חלונות במבט על"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "קובע היכן יש להציג חלונות במבט על אם יש יותר מהתקן פלט אחד."
+
+# button text
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "רווח בין חלונות"
+
+# ES
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "ריווח"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "זמן (מילי-שניות) ליציאה ממבט על כשהסמן מרחף על חלון"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "חלונות שיש להציגם במבט על"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "פתח אוטומטית צילומי מסך ביישום זה"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "ספריה"
+
+# IN
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "הפעל צילום מסך של מרובע"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "שגר יישום"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "שמור צילומי מסך בספריה זו"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "צילום מסך"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "התקן צילום מסך"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg "
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "טוען תמונות Svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "אחוזי בהירות"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "אחוזי רווייה"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "מעביר יישומים"
+
+# IN
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "סיבוב אוטומטי"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "הבא לחזית"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "הבא את החלון הנבחר לחזית"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "מרחק הזום של שולחן העבודה בעת העברת חלונות"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "צלמית"
+
+# button text
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "ממוזערים"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "הפאנל הבא"
+
+# button text
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "החלון הבא"
+
+# button text
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "החלון הבא (כל החלונות)"
+
+# button text
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "החלון הבא (ללא חלונות קופצים)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "הקפץ את המעביר אם הוא מוסתר ובחר את החלון הבא"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "הקפץ את המעביר אם הוא מוסתר ובחר את החלון הבא מבין כל החלונות"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "הקפץ את המעביר אם הוא מוסתר ובחר את החלון הקודם"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "הקפץ את המעביר אם הוא מוסתר ובחר את החלון הקודם מבין כל החלונות"
+
+# label text
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "הפאנל הקודם"
+
+# label text
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "חלון קודם"
+
+# label text
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "חלון קודם (כל החלונות)"
+
+# label text
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "חלון קודם (ללא קופצים)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "סובב אל החלון הנבחר בעת העברה"
+
+# button text
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "בחר את חלון הפאנל הבא."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "בחר את החלון הבא בלי להראות את החלון הקופץ."
+
+# heading text
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "בחר את חלון הפאנל הקודם."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "בחר את החלון הקודם בלי להראות את החלון הקופץ."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "הראה צלמית לצד תמונה מוקטנת"
+
+# button text
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "הראה חלונות ממוזערים"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "מהירות המעביר"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "יחידת זמן של המעביר"
+
+# button text
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "חלונות המעביר"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "חלונות שיש להציג במעביר"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "תמוך בחלל-צבעים YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "ניגון וידאו"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "ניגון וידאו"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "חלל-צבעים YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "הוסף שורה"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "הוסף נקודה"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "מוסיף אפקטי מים לפעולות שונות בשולחן העבודה"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "השהייה (במילי-שניות) לפני כל טיפת גשם"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "אפשר אפקטי מים לסמן"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "קו"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "השפעה על הרקע"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "נקודה"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "השהיית טפטוף"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "גל כותרת"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "הורד\\עצור גשם"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "הפעל\\הפסק אפקט גשם"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "הפעל\\הפסק מגב"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "הפעל\\הפסק אפקט מגב"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "אפקט מים"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "השפעת המים על הרקע מאחוריהם"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "אפקט גל הבוקע ממסגרת החלון"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "אפקט מיקוד"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "אפקט מיקוד חלון"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "מיקוד חלונות"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "חיכוך"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "תפוס חלונות"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "אבחנת רשת"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "מגנוט הפוך"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "הרעד את החלון"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "אפקט מיפוי"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "אפקט בעת מיפוי החלון"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "מיפוי חלונות"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "אפקט הגדלה למקסימום"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "גודל רשת מזערי"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "גודל מזערי של רשת קודקודים"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "הזזת חלונות"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "רעידה"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "מיגנוט הפוך"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "מיגנוט חלונות"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "חיכוך קפיץ"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "קבוע קפיץ"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "קבוע הקפיץ"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "הפעל\\הפסק מיגנוט חלון"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "השתמש במודל קפיצים עבור אפקט חלון מתנדנד"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "אבחנת רשת קודקודים"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "חלונות האמורים להתנדנד בעת מיקוד"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "חלונות האמורים להתנדנד בעת תפיסתם"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "חלונות האמורים להתנדנד בעת מיפוים"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "חלונות האמורים להתנדנד בעת הזזתם"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "אפקט נדנוד בעת הגדלה למקסימום ומזעור חלונות"
+
+# label text
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "חלונות מתנדנדים"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "פילטר לינארי"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "השתמש בפילטר לינארי בזמן תקריב הגדלה"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "תקריב"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "תקריב הגדלה"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "תקריב הקטנה"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "הטיית תקריב"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "מהירות תקריב"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "יחידת זמן לתקריב"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "תקריב והטיה אל קובית שולחן העבודה"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "מקדם תקריב"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "הטיית תקריב"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "שורת פקודה 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "הרץ פקודה 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "פקודות לצילום מסך"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "צירופי מקשים לצילום מסך"
+
+# Radio button for using an entire (Windows) partition for Linux
+#~ msgid "Decrease window opacity"
+#~ msgstr "הפחתת אטימות החלון"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "הגבר אטימות חלון"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "ערכי אטימות לחלונות השקופים כברירת מחדל"
+
+#~ msgid "Opacity window values"
+#~ msgstr "ערכי אטימות חלון"
+
+# button text
+#~ msgid "Opacity windows"
+#~ msgstr "חלונות אטימות"
+
+#~ msgid "Background Images"
+#~ msgstr "תמונות רקע"
+
+#~ msgid "Background images"
+#~ msgstr "תמונות רקע"
+
+# button text
+#~ msgid "Place windows on a plane"
+#~ msgstr "הצב חלונות על מישור"
+
+# button text
+#~ msgid "Plane Down"
+#~ msgstr "מישור למטה"
+
+# button text
+#~ msgid "Plane Left"
+#~ msgstr "מישור שמאלה"
+
+# button text
+#~ msgid "Plane Right"
+#~ msgstr "מישור ימינה"
+
+# heading text
+#~ msgid "Plane To Face 1"
+#~ msgstr "מישור לפאה 1"
+
+# heading text
+#~ msgid "Plane To Face 10"
+#~ msgstr "מישור לפאה 10"
+
+# heading text
+#~ msgid "Plane To Face 11"
+#~ msgstr "מישור לפאה 11"
+
+# heading text
+#~ msgid "Plane To Face 12"
+#~ msgstr "מישור לפאה 12"
+
+# heading text
+#~ msgid "Plane To Face 2"
+#~ msgstr "מישור לפאה 2"
+
+# heading text
+#~ msgid "Plane To Face 3"
+#~ msgstr "מישור לפאה 3"
+
+# heading text
+#~ msgid "Plane To Face 4"
+#~ msgstr "מישור לפאה 4"
+
+# heading text
+#~ msgid "Plane To Face 5"
+#~ msgstr "מישור לפאה 5"
+
+# heading text
+#~ msgid "Plane To Face 6"
+#~ msgstr "מישור לפאה 6"
+
+# heading text
+#~ msgid "Plane To Face 7"
+#~ msgstr "מישור לפאה 7"
+
+# heading text
+#~ msgid "Plane To Face 8"
+#~ msgstr "מישור לפאה 8"
+
+# heading text
+#~ msgid "Plane To Face 9"
+#~ msgstr "מישור לפאה 9"
+
+# button text
+#~ msgid "Plane Up"
+#~ msgstr "מישור למעלה"
+
+# button text
+#~ msgid "Plane down"
+#~ msgstr "מישור למטה"
+
+# button text
+#~ msgid "Plane left"
+#~ msgstr "מישור שמאלה"
+
+# button text
+#~ msgid "Plane right"
+#~ msgstr "מישור ימינה"
+
+# heading text
+#~ msgid "Plane to face 1"
+#~ msgstr "מישור לפאה 1"
+
+# heading text
+#~ msgid "Plane to face 10"
+#~ msgstr "מישור לפאה 10"
+
+# heading text
+#~ msgid "Plane to face 11"
+#~ msgstr "מישור לפאה 11"
+
+# heading text
+#~ msgid "Plane to face 12"
+#~ msgstr "מישור לפאה 12"
+
+# heading text
+#~ msgid "Plane to face 2"
+#~ msgstr "מישור לפאה 2"
+
+# heading text
+#~ msgid "Plane to face 3"
+#~ msgstr "מישור לפאה 3"
+
+# heading text
+#~ msgid "Plane to face 4"
+#~ msgstr "מישור לפאה 4"
+
+# heading text
+#~ msgid "Plane to face 5"
+#~ msgstr "מישור לפאה 5"
+
+# heading text
+#~ msgid "Plane to face 6"
+#~ msgstr "מישור לפאה 6"
+
+# heading text
+#~ msgid "Plane to face 7"
+#~ msgstr "מישור לפאה 7"
+
+# heading text
+#~ msgid "Plane to face 8"
+#~ msgstr "מישור לפאה 8"
+
+# heading text
+#~ msgid "Plane to face 9"
+#~ msgstr "מישור לפאה 9"
+
+# button text
+#~ msgid "Plane up"
+#~ msgstr "מישור למעלה"
+
+# Label text
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "חלונות השתמשה"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "פעולה"
+
+#~ msgid "Unknown"
+#~ msgstr "לא ידוע"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "אורך"
+
+# Radio button for using an entire (Windows) partition for Linux
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&מחק את חלונות לגמרי"
+
+# heading text
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "שינוי גודל נכשל."
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "פעולה"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "איות"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&בחינה"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "רוסית"
+
+# label text
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "חלונות"
+
+# button text
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&כווץ את חלונות"
+
+# button text
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&כווץ את חלונות"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "פעולה"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&בחינה"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "זמן מקומי"
+
+# label text, Clock setting: local time (not UTC)
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "זמן מקומי"
+
+# button text
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&מחק את חלונות"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "פעולה"
+
+# ES
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ספרד"
+
+# label text, %1 is replaced by a unit value ("MB")
+# Labels for input fields. "%1" will be replaced with the current unit (MB).
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "חלונות פנוי (%1)"
+
+# label text, %1 is replaced by a unit value ("MB")
+# Labels for input fields. "%1" will be replaced with the current unit (MB).
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "חלונות פנוי (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "איות"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&בחינה"
+
+# heading text
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "שינוי גודל נכשל."
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "פקודה:"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "פקודה:"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "ממירים"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "טרמינלים"
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 0000000..449d79b
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,3810 @@
+# translation of compiz.po to
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2007-12-16 17:03+0530\n"
+"Last-Translator: Sangeeta Kumari\n"
+"Language-Team: <en@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "डेसक्टाप"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "विन्डो मैनेजर"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "कुछ नहीं"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "स्कैनर"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "विंडो क्षैतिज रूप से अधिकतम करें"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "विंडो लंबवत रूप से अधिकतम करें"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "स्वचालित"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "विन्डो मैनेजर"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "विंडो शीर्षक बार में माउस स्क्रॉल के दौरान ली जाने वाली क्रिया"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "छोडं दिया \n"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "मेटासिटी थीम सक्रिय विंडो अपारदर्शिता"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "मेटासिटी थीम सक्रिय विंडो अपारदर्शिता छाया"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "मेटासिटी थीम अपारदर्शिता"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "मेटासिटी थीम अपारदर्शिता छाया"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "मेटासिटी थीम सजावट के साथ सक्रिय विंडो के लिए प्रयोग करने के लिए अपारदर्शिता"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "मेटासिटी थीम सजावट के लिए प्रयोग के लिए अपारदर्शिता"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "अपारदर्शी से पारभासी में मेटासिटी थीम सजावट के साथ छाया सक्रिय विंडो"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "अपारदर्शी से पारभासी में मेटासिटी थीम सजावट के साथ छाया विंडो"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "शीर्षक बार माउस ह्वील क्रिया"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "विंडो सजावट के लिए प्रयुक्त ब्लर का प्रकार"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "मेटासिटी थीम का उपयोग करें"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "विंडो सजवाट खींचने के दौरान मेटासिटी थीम का उपयोग करें"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "windows"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "विंडो अधिकतम खत्म करें"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "विंडो अधिकतम करें"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "विंडो न्यूनतम करें"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "भारत"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "रंग"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "स्ट्रोक रंग की व्याख्या करें"
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "सक्रिय"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "साफ करें"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "खीचें"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "औजार के प्रयोग से खीचें"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "व्याख्या के लिए रंग भरें"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "भारत"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "भारत"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "भारत"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "भारत"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "रेखा चौड़ाई"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "व्याख्या के लिए रेखा चौड़ाई"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "व्याख्या के लिए स्ट्रोक रंग"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "स्ट्रोक चौड़ाई"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "व्याख्या के लिए स्ट्रोक चौड़ाई"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "फिल्टर:"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "फिल्टर सैट करें"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "अवधि"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "अवधि"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "छोडं दिया \n"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "विंडो के पारदर्शी हिस्से को ब्लर करें"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "अवधि"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "विंडोज को धुंधला करें जो फोकस नहीं रखता है"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "दूसरे विंडो के द्वारा धुंधला बनाये गये स्क्रीन क्षेत्र के धुंधलेपन को निष्क्रिय करें."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "धुंधलेपन के लिए प्रयुक्त फिल्टर विधि"
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "गॉसियन"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "गॉसियन त्रिज्या"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "गॉसियन शक्ति"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "गॉसियन त्रिज्या"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "गॉसियन शक्ति"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "लीमा"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "लीमा"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "विस्तार का मिपमैप स्तर"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "पल्स"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "पल्स प्रभाव"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "windows"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "विंडोज़ को फोसक ब्लर के द्वारा प्रभावित किया जाना चाहिए"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से अल्फा धुंधला का प्रयोग करना चाहिए"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "क्लोन आउटपुट"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "भारत"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "आउटपुट क्लोन नियंत्रक"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand0 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand1 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand10 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand11 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand2 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand3 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand4 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand5 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand6 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand7 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand8 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand9 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand0 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand1 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand10 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand11 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand2 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand3 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand4 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand5 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand6 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand7 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand8 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand9 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand0 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand1 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand10 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand11 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand2 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand3 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand4 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand5 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand6 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand7 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand8 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"एक कीबाइंडिंग को जब बुलाया जाता है शेल कमांड को चलायेगा जो पहचाना जाता हैcommand9 के "
+"द्वारा"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command0 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command1 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command10 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command11 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command2 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command3 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command4 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command5 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command6 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command7 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command8 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "कमांड लाइन जिसे शेल में चलाया जाना है जब run_command9 को बुलाया जाता है"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "कमान्ड '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "कमान्ड '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "कमान्ड '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "कमान्ड '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "कमांड:"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "कमांड:"
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "सक्रिय"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"ऑफस्क्रीन पिक्समैप में फिर नहीं निर्देशित किए जाने के लिए पूर्णस्क्रीण विंडो के आरेख को स्वीकृति "
+"दें"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "सुनने योग्य घंटी"
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "फाइल सिस्टम"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "स्वचालित"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "स्वचालित उठान विलंब"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "आउटपुट डिवायस की स्वचालित जांच"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "ताज़ा दर की स्वचालित जांच"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "सर्वोत्तम"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "फोकस में क्लिक करें"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "विंडो पर क्लिक करना इनपुट फोकस को इसपर खिसकाता है"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "सक्रिय विंडो बन्द करें"
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "अकरण डोमैन"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "अकरण डोमैन"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "डेसक्टाप"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "आउटपुट जांचें"
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "अपडेट के लिए चुनें"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "तेज"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "फोकस बचाव विंडोज़"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "फोकस बचाव विंडोज़"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "सामान्य विकल्प"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "सामान्य कोंपिज विकल्प"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "अच्छा"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "स्किप टास्कबार विंडोज़ छिपायें"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "सभी विंडो छुपाएँ और डेस्कटॉप पर फ़ोकस करें"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "जब दाखिल होने पर डेस्कटॉप मोड दिखाता है टास्कबार में विंडो छिपाएं"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "अधिकतम करने पर संकेत नजरअंदाज करें"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "विंडो के अधिकतम किए जाने पर आकार बढ़त और पहलू संकेत नजरअंदाज करें"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "चयनित विंडो को बढ़ाने के पहले अंतराल"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "पिंग संदेश के बीच का अंतराल"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "लोगिगं"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "सिर्फ मिटाए गए प्रिंटर क्यू सूचीबद्ध करेंद्ध करें"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "आउटपुट डिवायस को वर्णन करते स्ट्रिंग की सूची"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "लोवर सोर्बियन"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "अन्य विंडो के नीचे निचला विंडो"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "विंडो क्षैतिज रूप से अधिकतम करें"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "विंडो लंबवत रूप से अधिकतम करें"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "सक्रिय विंडो अधिकतम करें"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "सक्रिय विंडो क्षैतिज रूप से अधिकतम करें"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "सक्रिय विंडो लंबवत रूप से अधिकतम करें"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "सक्रिय विंडो न्यूनतम करें"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "सामान्य"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "डेसक्टाप"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "डेसक्टाप"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "लंबवत रिक्ति अवधि के दौरान सिर्फ स्क्रीन अद्यतन निष्पादित करें"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "आउटपुट"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "डिले"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "रेडियो क्लोक (&R)"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "windows"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "चयनित विंडो अंतराल के बाद उठाएं"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "विंडो को अन्य विंडो के ऊपर रखें"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "क्लिक किये जाने पर विंडो उठाएं"
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "ताजा करो"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "क्षैतिज वर्चुअल आकार के लिए स्क्रीन आकार गुणक"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "लंबवत वर्चुअल आकार के लिए स्क्रीन आकार गुणक"
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "डेसक्टाप"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "सिमुलेशन"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "स्मार्ट"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank में तुल्यकालित करें"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "फिल्टर सैट करें"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "फिल्टर सैट करें"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "फिल्टर सैट करें"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "दर जिसपर स्क्रीन फिर खीचा जाता है (समय/सेकेंड)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "विंडो अधिकतम पर टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "विंडो अधिकतम पर क्षैतिज रूप से टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "विंडो अधिकतम पर लंबवत रूप से टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "विंडो छायांकित रूप में टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "सक्रिय विंडो अधिकतम रूप में टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "सक्रिय विंडो अधिकतम रूप में क्षैतिज प्रकार से टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "सक्रिय विंडो अधिकतम रूप में लंवबत प्रकार से टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "सक्रिय विंडो छायांकित रूप में टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "धीमा संजीवन के प्रयोग को टॉगल करें"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "सक्रिय विंडो अधिकतम खत्म करें"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "पूर्ण स्क्रीन विंडोज़ को पुनर्निर्देशित मत करें"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "स्क्रीन के बदले जाने पर विसरित प्रकाश का प्रयोग करें"
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "विंडो मेनू बटन बाइंडिंग"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "विंडो मेनू की बाइंडिंग"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D "
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "चित्र समायोजित करें"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "शीर्ष फेस चित्र को घुमाने के लिए समायोजित करें"
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "एडवांस विकल्प"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "स्काइडोम एनिमेट करें"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "स्काइडोम एनीमेट करें जब घन को घुमाया जा रहा है"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "स्वचालित"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "घन के ऊपर और नीचे के हिस्से का रंग"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "स्काइडोम फालबैक ढ़ाल के तलवर्ती रंग स्टॉप के लिए प्रयोग का रंग"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "स्काइडोम फालबैक ढ़ाल के शीर्ष रंग स्टॉप के लिए प्रयोग का रंग"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "रंग"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "रंग"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "डेसक्टाप"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D "
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "छोडं दिया \n"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "टाइम"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "उच्चतर गुणवत्ता के स्केलिंग के लिए मिपमैप बनाएं जब संभव हो"
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "पीछे का"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "डिस्क इमेज फाइल"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "स्काइडोम के लिए एक बनावट के रूप में प्रयोग के लिए चित्र"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "घन पारदर्शिता आरंभ करता है सिर्फ तभी जब घुमाव माउस परिचालित है."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "भीतरी घन"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "भीतरी घन"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "PNG और SVG फाइलों की सूची जिसे घन के शीर्ष फेस में रेंडर किया होना चाहिए"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "मल्टी आउटपुट प्रकार"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "बहुमुखी घन"
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "अगला अप्डेट "
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "बड़े घन पर शुरू"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "घुमाव के दौरान अपारदर्शिता"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "नहीं घुमाव के दौरान अपारदर्शिता"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "घुमाव के दौरान डेस्कटॉप विंडो की अपारदर्शिता"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "नहीं घुमाव के दौरान डेस्कटॉप विंडो की अपारदर्शिता"
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "windows"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "पीछे का"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "स्काइडोम रेंडर करें"
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "लोकल टाइम"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "घन के कवर शीर्ष फेस में चित्रों को मापें"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "चुनता है कि कैसे घन प्रदर्शित होता है यदि बहुल आउटपुट डिवायस प्रयुक्त होता है."
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "डिस्क इमेज"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "झुकाव ढाल अंत रंग"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "स्काइडोम ढाल प्रारंभ रंग"
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "डिस्क इमेज"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "छोडं दिया \n"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "टाइम"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "पारदर्शिता सिर्फ माउस घुमाव पर"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "खोलें"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "घन खोलें"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus नियंत्रण बैकेंड"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "सजावटी बनावट के लिए उत्पन्न करने के लिए मिपमैप स्वीकारें"
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "कमांड:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "सजावटी कमांड लाइन जो चलाया जाता है यदि कोई सजावटकर्ता पहले से नहीं चल रहा है"
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "windows"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "छाया ऑफसेट X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "छाया ऑफसेट Y"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "त्रिज्या"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "समनुरूपण"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind विकल्प"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "विंडोज़ जिसे सजाया जाना चाहिए"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "विंडोज़ जिसे एक छाया रखना चाहिए"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "टाइम"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "रखता है"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "windows"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "असली समय "
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "न्यूनतम/ खोलें/ बन्द करें पर फीका कीजिये"
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "छोडं दिया \n"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "असली समय "
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "विंडो घटना न्यूनतम/ खोलें /बंद करें पर फीका प्रभाव"
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "फाइल सिस्टम"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "मैप रहने पर फेड इन विंडोज और मैप नहीं रहने पर फीका बाहर विंडोज"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "windows"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "पूर्ण स्क्रीन दृश्य बेल"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "सिस्टम बीप पर पूर्ण स्क्रीन फेड प्रभाव"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "दृश्य बेल"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "windows"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "विंडो जिसे स्केल मोड में स्केल किया जाना चाहिए"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "विंडोज़ जिसे फेड करना चाहिए"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "आरोह बिंदु"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "आरोह बिंदु"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "यूजरस्पेस फाइल सिस्टम"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "यूजरस्पेस फाइल सिस्टम"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf नियंत्रण बैकेंड"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib मुख्य लूप समर्थन"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "टर्मिनल खोलें"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "टोण डायलिन्क (&T)"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "दिखाएँ मुख्य मेनू"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "रन अनुप्रयोग संवाद दिखाएँ"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "मुख्य मेनू दिखाएँ"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "स्क्रीनशॉट का चित्र लें"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "विंडो का स्क्रीनशॉट लें"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "विंडो स्क्रीनशॉट कमांड लाइन"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "किसी को लोग न करें"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini समतल फाइल बैकेंड"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "फाइल बदलाव अधिसूचना प्लगिन"
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "किसी को लोग न करें"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig नियंत्रण बैकेंड"
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "छाया प्रतिरोध"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "छाया प्रतिरोध"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "विंडो बदलें जब वे न्यूनतम और अधिकतम किए जाते हैं"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "विंडोज़ जो न्यूनतम करने पर रूपांतरित किए जाने चाहिए"
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "रखता है"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y कोआर्डिनेट को कार्यस्थान क्षेत्र में सीमित करें"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "विंडो के सर्वर साइड स्थिति को अद्यतन मत करें जबतक कि खिसकाना समाप्त न हो"
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "खीचने पर स्नैपऑफ और स्वतः गैर अधिकतम अधिकतम विंडो"
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "ब्रिज"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "ब्रिज"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "ब्रिज"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "ब्रिज"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "अपारदर्शिता घटायें"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "अपारदर्शिता बढायें"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "अपारदर्शिता बदलाव चरण"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "अपारदर्शिता बदलाव चरण"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "अपारदर्शिता चरण"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "घुमाव के दौरान अपारदर्शिता"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "अवधि"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "अवधि"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "अवधि"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "अवधि"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind विकल्प"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "windows"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से स्थिति पर रखा जाना चाहिए"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से पारभासी होना चाहिए"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से स्थिति पर रखा जाना चाहिए"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "विंडो स्थापन के लिए प्रयोग के लिए अलगोरिथम"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "प्रपाती"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "केंद्रित"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "विन्डो मैनेजर"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "फोकस बचाव विंडोज़"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "मैप किए जाने पर उचित स्थिति पर विंडो रखें"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "नियोजन प्रकार"
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "windows"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "क्रमहीन"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"चुनें कि कहां विंडो को स्केल किया जाता है यदि बहुल आउटपुट डिवायस प्रयोग किया जाता है."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "स्मार्ट"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "सभी आउटपुट डिवायस पर"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "windows"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind विकल्प"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से स्थिति पर रखा जाना चाहिए"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "विंडोज़ जिसे मूलभूत रूप से विशेष व्यूपोर्ट में रखा जाना चाहिए"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind विकल्प"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "वर्कग्रुप "
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "windows"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X स्थिति मान"
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "windows"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "विरचयुल उपकरण"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y स्थिति मान"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png चित्र लोडर"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "रिजेक्स मिलान"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "रिजेक्स विंडो मिलान"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "रंग"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "खाके व आयताकार पुनः आकार मोड के लिए किनारा रंग"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "मूलभूत आकार बदलाव प्रकार"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "विंडो पुनः आकार के लिए प्रयुक्त मूलभूत विधि"
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "रंग"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "आयताकार पुनः आकार मोड के लिए प्रयुक्त रंग"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "भारत"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "भारत"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "भारत"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "भारत"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "भारत"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "रंग"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "आयत"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "विस्तार"
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "windows"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "विंडोज़ जो सामान्य आकार बदलाव के लिए प्रयोग किया जाना चाहिए"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "विंडोज़ जो खाका आकार बदलाव के लिए प्रयोग किया जाना चाहिए"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "विंडोज़ जो आयत आकार बदलाव के लिए प्रयोग किया जाना चाहिए"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "विंडोज़ जो विस्तार आकार बदलाव के लिए प्रयोग किया जाना चाहिए"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "किनारा झटका DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "किनारा झटका हटाएं"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "किनारा झटका सूचक"
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "असली समय "
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "बायें व्यूपोर्ट में जाएं और संकेतक लपेटें"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "अगला व्यूपोर्ट में झटकें जब स्क्रीन किनारा में वस्तु खींच रहा है"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "अगला व्यूपोर्ट में झटकें जब संकेतक को स्क्रीन किनारा में खिसका रहा है"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "अगला व्यूपोर्ट में झटकें जब स्क्रीन किनारा में विंडो खिसका रहा है"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "दायाँ व्यूपोर्ट में झटकें और संकेतक लपेटें"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "संकेतक गति के लिए Y अक्ष उलटें"
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "प्रिंटर का विवरण"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "प्रिंटर विवरण"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "घुमाव पर उठाएं"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "विंडो को घुमाने के दौरान उठाएं"
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "झटका बायाँ घुमाएँ"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "घुमाएँ झटकें दाहिना"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "रिमोट सबनेट:"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "windows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D "
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "टाइम"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "टाइम"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "टाइम"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "संकेतक गति की संवेदनशीलता"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ऊपरी मुखरे में घन घुमाव स्नैप करें"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ऊपरी मुखरे में घन घुमाव स्नैप करें"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ऊपरी मुखरे में स्नैप लें"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ऊपरी मुखरे में स्नैप लें"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "इंसटालेशन शुरु करें"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "व्यूपोर्ट झटकने के पहले समय समाप्ति"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "ज़ूम"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "प्रतिशत में अपारदर्शिता की मात्रा"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "बड़ा"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "डेस्कटॉप दिखाने के लिए डेस्कटॉप क्लिक करें"
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "पृष्ठभूमि"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "विंडो मापन के दौरान पृष्ठभूमि गहरा करें"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "प्रतीक"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "डेस्कटॉप प्रदर्शन मोड दाखिल करें जब डेस्कटॉप मापक के दौरान क्लिक किया जाता है"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "समय आगे पीछे करें"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "windows"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "सभी विंडोज़ के लिए विंडो चयनक आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "विंडो समूह के लिए विंडो चयनक आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "मौज़ूदा आउटपुट पर विंडो के लिए विंडो चयनक आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "अभिन्यास और सभी विंडोज को बदलना आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "अभिन्यास और विंडो समूह को रूपांतरित करना आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "अभिन्यास और विंडोज को बदलना आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "अभिन्यास और मौजूदा आउटपुट पर विंडोज बदलना आरंभ करें"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "सभी आउटपुट डिवायस पर"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "मौजूदा आउटपुट डिवायस पर"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "प्रतीक ढ़कें"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "विंडो पर प्रतीक को ढ़कें जब वे स्केल किये जाते हैं"
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "स्कैनर"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "लोकल टाइम"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "लोकल टाइम"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"चुनें कि कहां विंडो को स्केल किया जाता है यदि बहुल आउटपुट डिवायस प्रयोग किया जाता है."
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "स्पेन"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "विंडो पर आच्छादित होने पर स्केल मोड के खत्म होने के पहले समय (ms में)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "विंडो जिसे स्केल मोड में स्केल किया जाना चाहिए"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "इस अनुप्रयोग में स्वतः स्क्रीनशॉट खोलें"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "निर्देशिका"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "भारत"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "अनुप्रयोग लांच करें"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "इस निर्देशिका में स्क्रीनशॉट चित्र रखें"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg चित्र लोडर"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "प्रतिशत में चमकीलापन की मात्रा"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "प्रतिशत में संतृप्ति की मात्रा"
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "कम्प्यूटर प्रोग्राम आडिट रिपोर्ट"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "स्वचालित"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "बूट के दौरान"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "चयनित विंडो को सामने लायें"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "दूरी डेस्कटॉप को जूम आउट किया जाना चाहिए जब विंडो में स्विच कर रहे हों"
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "आइकंश्श"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "डेसक्टाप"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "पॉप अप स्विचर यदि दृष्टिगोच़र नहीं है और अगला विंडो चुनें"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "पॉप अप स्विचर यदि दृष्टिगोच़र नहीं है और अगला विंडो सभी विंडो में से चुनें"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "पॉप अप स्विचर यदि दृष्टिगोच़र नहीं है और पिछला विंडो चुनें"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "पॉप अप स्विचर यदि दृष्टिगोच़र नहीं है और पिछला विंडो सभी विंडो में से चुनें"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "पीछे का"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "स्विचिंग के दौरान चयनित विंडो में घुमाएं"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "पॉपअप विंडो को बिना दिखाए अगले विंडो को चुनें."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "पॉपअप विंडो को बिना दिखाए पिछले विंडो को चुनें."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "थंबनेल के बगल के प्रतीक को दिखाएं"
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "लोकल टाइम"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "लोकल टाइम"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "विंडोज जिसे स्विचर में दिखाया जाना चाहिए"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 रंगस्पेस समर्थन दें"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "वीडियो प्लेबैक"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "वीडियो प्लेबैक"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 रंगस्पेस"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "पंक्ति जोड़ें"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "बिंदु जोड़ें"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "विभिन्न डेस्कटॉप क्रिया में जल प्रभाव जोड़ें"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "हर वर्षा बूंद के बीच विलंब (ms में)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "संकेतक जल चिह्न सक्रिय करें"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "रेखा"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "ऑफसेट मापक"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "बिन्दु"
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "डिले"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "शीर्षक तरंग"
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "टोकन रिंग"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "टोकन रिंग"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "टोकन रिंग"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "टोकन रिंग"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "जल प्रभाव"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "जल ऑफसेट स्केल"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "विंडो शीर्षक से लहर प्रभाव"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "प्रभाव फोकस करें"
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "क्रिया"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "रिजोल्यूशन"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "उलट विंडो स्नैपिंग"
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "निम्नतम &GID"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "निम्नतम &GID"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "भुरभुरा"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "स्नैप उलटें"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "क्रिया"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "स्टेपिगं"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "स्टेपिगं"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "windows"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "वूबली विंडो प्रभाव के लिए स्प्रिंग मॉडल का प्रयोग करें"
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "सेर्वर सार"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "विंडोज़ जिसे बूबल करना चाहिए जब फोकस हो"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "विंडोज़ जिसे बूबल करना चाहिए जब पकड़ा जाए"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "विंडोज़ जिसे मैप करने वक्त बूबल करना चाहिए"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "विंडोज़ जिसे खिसकाने वक्त बूबल करना चाहिए"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "विंडो को अधिकतम व न्यूनतम करने के दौरान बूबल प्रभाव"
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "windows"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "फिल्टर:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "जूम इन करने के दौरान रैखिक फिल्टर का प्रयोग करें"
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "डेसक्टाप"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "ज़ूम इन"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "डेसक्टाप"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "डेसक्टाप"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "छोडं दिया \n"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "टाइम"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ज़ूम और पैन डेस्कटॉप घन"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "डेसक्टाप"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "छोडं दिया \n"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "कमांड:"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "कमान्ड '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "कमाडं लैन पार्स करने पर्ड खराबी आ गया।"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "विंडो अपारदर्शिता घटायें"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "विंडो अपारदर्शिता बढायें"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "विंडो के अपारदर्शिता मानजो कि मूलभूत रूप से पारभासी होना चाहिए"
+
+#~ msgid "Opacity window values"
+#~ msgstr "अपारदर्शिता विंडो मान"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "windows"
+
+#~ msgid "Background Images"
+#~ msgstr "पृष्ठभूमि चित्र"
+
+#~ msgid "Background images"
+#~ msgstr "पृष्ठभूमि चित्र"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "रिमोट सबनेट:"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "रिमोट सबनेट:"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "रिमोट सबनेट:"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "रिमोट सबनेट:"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "windows"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "डेस्कटॉप विंडो अपारदर्शिता धुंधला समय."
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "टोण डायलिन्क (&T)"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "विन्डो मैनेजर"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "क्रिया"
+
+#~ msgid "Unknown"
+#~ msgstr "अनंजान"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "अवधि"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "किसी को लोग न करें"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "त्रिज्या"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "निम्नतम &GID"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "डेसक्टाप"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "लोकल टाइम"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "लोकल टाइम"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "क्रिया"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "स्टेपिगं"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "फिल्टर सैट करें"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "सेर्वर सार"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "छोडं दिया \n"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "डेसक्टाप"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "कमांड:"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "कमांड:"
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "संभरक"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "कोर्निश"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "फ्लोपी डिस्क"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "टर्मिनल"
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..e041dc8
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,3686 @@
+# Croatian message file for YaST2 (@memory@)
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2001 SuSE GmbH.
+# Vlatko Kosturjak <kost@iname.com>, 2001
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2007-12-22 13:42+0100\n"
+"Last-Translator: Matija Folnovic <matijafolnovic@gmail.com>\n"
+"Language-Team: Croatian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n != 1);\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Radna površina"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Upravitelj Prozora"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ništa"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Skener"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "&Smanji Windowse"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maksimiziraj prozor horizontalno"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maksimiziraj prozor vertikalno"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "&Smanji Windowse"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatsko prikazivanje"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Upravitelji Prozorima"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Akcija koja ce se napraviti kada se scroll-a misem preko naslovne trake"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Brzina:"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Transparentnost Metacity teme prozora"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "&Obriši Windows kompletno"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "Zatvori prozor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maksimiziraj prozor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimiziraj prozor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Postavke arhiva"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Izbrisi"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Nacrtaj"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Crtaj koristeci alat"
+
+#: ../metadata/annotate.xml.in.h:8
+#, fuzzy
+msgid "Fill color for annotations"
+msgstr "Naučite više iz dokumenatcije"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Aktiviraj"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Indija"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Debljina linije"
+
+#: ../metadata/annotate.xml.in.h:14
+#, fuzzy
+msgid "Line width for annotations"
+msgstr "Naučite više iz dokumenatcije"
+
+#: ../metadata/annotate.xml.in.h:15
+#, fuzzy
+msgid "Stroke color for annotations"
+msgstr "Naučite više iz dokumenatcije"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+#, fuzzy
+msgid "Stroke width for annotations"
+msgstr "Naučite više iz dokumenatcije"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alpha mutnost"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Brzina:"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Trajanje"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Trajanje"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Trajanje mutnosti"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Trajanje"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Ruski"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows slobodno (%1)"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Sažmi izlaz"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Indija"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Naredba 0"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Naredba 1 "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Naredba 10 "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Naredba 11 "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Naredba 2 "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Naredba 3 "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Naredba 4 "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Naredba 5"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Naredba 6"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Naredba 7 "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Naredba 8 "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Naredba 9 "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Naredba '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Naredba '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Naredba '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Naredba '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Naredba: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Naredba: "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Aktivni dodaci"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "Automatsko prikazivanje"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatska detekcija output uredaja"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatska detekcija osvjezavanja"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Najbolji"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klikni za fokusiranje"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Zatvori aktivni prozor"
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Osnovna ikona"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Postavke okružja"
+
+#: ../metadata/core.xml.in.in.h:17
+#, fuzzy
+msgid "Detect Outputs"
+msgstr "Detektiraj izlaz"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detektiraj osvjezavanje"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Brzina"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Omogući ZEN particiju"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Generalne opcije"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Generalne compiz opcije"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Dobro"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Sakrij sve prozore i fokusiraj radnu povrsinu"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Velicina virtualne horizontale"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Vrijeme prije pojavljivanja selektiranog prozora"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "Omogući ZEN particiju"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista trenutno aktivnih prozora"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Spusti prozor"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maksimiziraj prozor horizontalno"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maksimiziraj prozor vertikalno"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maksimiziraj aktivni prozor"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maksimiziraj aktivni prozor horizontalno"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maksimiziraj prozor vertikalno"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimiziraj aktivni prozor"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Broj radnih povrsina"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Radne površine"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Odgoda"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "Ob&oviti"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Radne površine"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Konfiguracije"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Postavi filter"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Postavi filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Virtualni Diskovi"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "Akcija"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sydnej"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Automatski"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Postavke okružja"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "Akcija"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Brzina:"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Instaliram presliku datoteke"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sydnej"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sydnej"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Brzina:"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Naredba: "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "&Obriši Windows kompletno"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "&Obriši Windows kompletno"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Prikaži &detalje"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "&Obriši Windows kompletno"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "Prikaži &detalje"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "&Obriši Windows kompletno"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Prikaži &detalje"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Nema opisa"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind opcije"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Mountain"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Brzina:"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "&Testiraj"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Datotečni Sustav"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows slobodno (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Dodaj točku provjere"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Dodaj točku provjere"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "Pokreni u terminalu"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Naredba: "
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Naredba: "
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Mountain"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Pokrećem servis."
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Smanji transparentnost"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Povecaj transparentnost"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Step mijenjanja transparentnosti"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Step mijenjanja transparentnosti"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Broj virtualnih radnih povrsina"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Pokrećem servis."
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind opcije"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows iskorišteno:"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Upravitelj Prozora"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Virtualni Diskovi"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Virtualni Diskovi"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Virtualni Diskovi"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Virtualni Diskovi"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Indija"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Pokrećem servis."
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Pokrećem servis."
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Pokrećem servis."
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Pokrećem servis."
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Pokazivač na %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Pokazivač na %1"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Postavke okružja"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Postavke okružja"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Pokrećem servis."
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Akcija"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "&Testiraj"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Pokrenuti servis"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Skener"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Tražim..."
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+#, fuzzy
+msgid "Automatically open screenshot in this application"
+msgstr "Automatski pokreni program prilikom prijave"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Direktorij\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Indija"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Aplikacija za zamjenu:"
+
+#: ../metadata/screenshot.xml.in.h:6
+#, fuzzy
+msgid "Put screenshot images in this directory"
+msgstr "Rekurzija u direktorij"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Postavke arhiva"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatski"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Akcija"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Akcija"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Postavke okružja"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Pokrećem servis."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "lokalno vrijeme"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Dodaj servis"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Dodaj točku provjere"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Odgoda"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "&Promijeni status"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "&Promijeni status"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "&Promijeni status"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "&Promijeni status"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Akcija"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Rezolucija"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Minimalni &GUID"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimalni &GUID"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "&Obriši Windowse"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Pogonski program"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Akcija"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Preskačem %1"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Preskačem %1"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Rezolucija"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Ime datoteke"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Radne površine"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Brzina:"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Brzina:"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Brzina:"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Brzina:"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "&Testiraj"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Postavke okružja"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Brzina:"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Brzina:"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Naredba 1 "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Naredba '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Postavke arhiva"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Postavke arhiva"
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "Smanji transparentnost prozora"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Povecaj transparentnost prozora"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "Katalog"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Upravitelji Prozorima"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Akcija"
+
+#~ msgid "Unknown"
+#~ msgstr "Nepoznato"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Trajanje"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&Obriši Windows kompletno"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Prikaži &detalje"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Brzina:"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Ruski"
+
+#, fuzzy
+#~ msgid "Line width for annotations (0.0-100.0)"
+#~ msgstr "Naučite više iz dokumenatcije"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Smanji Windowse"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Smanji Windowse"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Minimalni &GUID"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Radne površine"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "lokalno vrijeme"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "lokalno vrijeme"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Preskačem %1"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Postavi filter"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rezolucija"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows slobodno (%1)"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows slobodno (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Brzina:"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&Testiraj"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Naredba: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Naredba: "
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Pisači"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Floppy disk"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Pokrećem servis."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Pisač"
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..a7405ed
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,3277 @@
+# translation of compiz.po to Hungarian
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Kalman Kemenczy <kkemenczy@novell.com>, 2006, 2007.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2007.
+# KAMI911 <kami911@gmail.com>, 2007-2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: po_compiz-hu\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2009-01-02 10:42+0100\n"
+"Last-Translator: KAMI <kamihir@freemail.hu>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+"X-Launchpad-Export-Date: 2007-12-04 10:00+0000\n"
+"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,490,-1\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Munkaasztal"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Ablakkezelés"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Egyik sem"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Felgördítés"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximalizálás"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Ablak maximalizálása vízszintesen"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Ablak maximalizálása függőlegesen"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Kis méret"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Növelés"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Alacsony"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Ablak menü"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Az ablak címsorán történő egérgörgő-használat hatása."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Elmosás típusa"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Aktív ablak átlátszatlansága"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Felgördített aktív ablak átlátszatlansága"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Ablak átlátszatlansága"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Felgördített ablak átlátszatlansága"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Az aktív ablak átlátszatlansága a díszítő elemekhez"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Az ablak átlátszatlansága a díszítő elemekhez"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "Felgördített aktív ablak átlátszatlansága a díszítő elemeknél"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "Felgördített ablak átlátszatlansága a díszítő elemeknél"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Egérgörgő esemény a címsoron"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Az elmosás típusa a díszítő elemekhez"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Metacity téma alkalmazása"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Metacity téma alkalmazása az ablakdíszítések rajzolásakor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Ablak bezárása"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Ablak visszaállítása"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Ablak maximalizálása"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Ablak minimalizálása"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Előrehozás"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Rögzítés"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Legördítés"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Hátraküldés"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Rögzítés feloldása"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "A(z) „%s” ablak nem válaszol."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"A kilépés kényszerítésének hatására minden el nem mentett adat el fog veszni."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Kilépés kényszerítése"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Feljegyzés"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Feljegyzés kitöltő színe"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Feljegyzés körvonalszíne"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Feljegyzés bővítmény"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Törlés"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Rajzolás"
+
+# 58721 AttribValues/label
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Rajzolás eszközzel"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Feljegyzések kitöltő színe"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Indítás"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Feljegyzésrajzolás indítása"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Feljegyzéstörlés indítása"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Törlés indítása"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Vonalvastagság"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Feljegyzések vonalvastagsága"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Feljegyzések körvonalának színe"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Körvonal vastagsága"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Feljegyzések körvonal-vastagsága"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x bilineáris"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alfa elmosás"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Ablakok elmosása"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Elmosásszűrő"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Elmosás levágás"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Elmosás telítettség"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Elmosás sebessége"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Ablak elmosása"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Elmosás az ablakok áttetsző részei mögött"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Elmosás telítettség"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Ablakok elmosása"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Fókusszal nem rendelkező ablakok elmosása"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Elmosás kikapcsolása a képernyő más ablakok által kitakart részein."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Az elmosáshoz használt szűrőmódszer"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fókuszelmosás"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Ablakok elmosása"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gauss"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gauss-sugár"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gauss erőssége"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gauss-sugár"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gauss erőssége"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Független textúra lekérés"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "MIP térkép"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "MIP térkép részletesség"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "MIP térkép részletesség szintje"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Impulzus"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Impulzus effektus"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Független textúra lekérések számának növelése az éppen nem használt "
+"textúrázó egységek használatával."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Ablak elmosásának sebessége"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Fókuszelmosással elmosandó ablaktípusok"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Alfaelmosással elmosandó ablaktípusok"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Kimenet klónozása"
+
+# /tmp/xapi:301
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Klónkiválasztás indítása"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Kimenet klónkezelője"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "A command0 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "A command1 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "A command10 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "A command11 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "A command2 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "A command3 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "A command4 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "A command5 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "A command6 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "A command7 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "A command8 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "A command9 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "A command0 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "A command1 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "A command10 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "A command11 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "A command2 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "A command3 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "A command4 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "A command5 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "A command6 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "A command7 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "A command8 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "A command9 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "A command0 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "A command1 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "A command10 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "A command11 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "A command2 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "A command3 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "A command4 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "A command5 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "A command6 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "A command7 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "A command8 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "A command9 parancs futtatására használt billentyűzetkombináció"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Gyorsbillentyűk"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "0. parancssor"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "1. parancssor"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "10. parancssor"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "11. parancssor"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "2. parancssor"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "3. parancssor"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "4. parancssor"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "5. parancssor"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "6. parancssor"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "7. parancssor"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "8. parancssor"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "9. parancssor"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "A run_command0 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "A run_command1 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "A run_command10 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "A run_command11 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "A run_command2 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "A run_command3 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "A run_command4 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "A run_command5 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "A run_command6 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "A run_command7 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "A run_command8 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "A run_command9 által elindított parancs"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Parancs"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Gyorsbillentyűk"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Gyorsbillentyűk"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "0. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "1. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "10. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "11. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "2. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "3. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "4. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "5. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "6. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "7. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "8. parancs futtatása"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "9. parancs futtatása"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktív bővítmények"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"A teljes méretű ablakok nem irányíthatók át képen kívüli pixeltérképekre"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Hallható csengő"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Hallható rendszercsengő"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatikus megnyitás"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Automatikus megnyitás késleltetése"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Kimeneti eszközök automatikus érzékelése"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Frissítési frekvencia automatikus érzékelése"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Legjobb"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Kattintson a fókuszáláshoz"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Az ablakra kattintással az ablakra irányítja a fókuszt"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Aktív ablak bezárása"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Alapértelmezett ikon"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Alapértelmezett ikon képe"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Munkaasztal mérete"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Kimenetek észlelése"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Frissítési frekvencia felismerése"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Kijelző beállítások"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Az az időtartam, ameddig az egérmutatónak a képernyőn szélén kell állnia "
+"ahhoz, hogy a képernyő széléhez társított művelet elinduljon."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Képernyő szélével indított műveletek indításának késleltetése"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Gyors"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Fókusz és növelés viselkedése"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Fókuszmegelőzés szintje"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Fókuszmegelőzés"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Fókuszmegelőzés"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Független kimenethasználat erőltetése"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Általános beállítások"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "A Compiz általános beállításai"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Jó"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Kihagyott tálcaablakok elrejtése"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Összes ablak elrejtése és fókuszálás a munkaasztalra"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Az asztal megjelenítése módba kapcsoláskor a tálcán nem lévő ablakok "
+"elrejtése"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Magas"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Vízszintes virtuális méret"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Képekből konvertált textúrák tömörítése, amennyiben az lehetséges"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Maximális méretben tanácsok figyelmen kívül hagyása"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Méretnövelési és méretezési tanácsok figyelmen kívül hagyása ha az ablak "
+"maximális méretű"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "A kiválasztott ablakok megnyitását megelőző intervallum"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Ping üzenetek közti időköz"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Gyorsbillentyűk"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Fókuszmegelőzés szintje"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Világosítás"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Az aktuális bővítmények listája"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Kimeneti eszközöket leíró karakterláncok listája"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Alacsony"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Alacsonyabb ablak"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Alacsonyabb ablak egy másik ablak alatt"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Ablak maximalizálása vízszintesen"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Ablak maximalizálása függőlegesen"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Aktív ablak maximalizálása"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Aktív ablak maximalizálása vízszintesen"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Aktív ablak maximalizálása függőlegesen"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Aktív ablak minimalizálása"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Szokványos"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Munkaasztalok száma"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Virtuális munkaasztalok száma"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Kikapcsolva"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"A képernyő-frissítések végrehajtása csak a függőleges törlési periódusban"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Kimenetek"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Átfedő kimenetek kezelése"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Összes kimenet független használata, még akkor is, ha a kimenetek átfedik "
+"egymást"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping késleltetése"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Nagyméretű kimenet használata"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Kisméretű kimenet használata"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Kattintás esetén megnyitás"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Ablak előtérbe hozása"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "A kijelölt ablak megnyitása ennyi idő után"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Ablak másik ablakok fölé hozása"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Ablakok megnyitása kattintás esetén"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Frissítési frekvencia"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Képernyőméret-szorzó a vízszintes virtuális mérethez"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Képernyőméret-szorzó a virtuális mérethez"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Munkaasztal megjelenítése"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Lassú animációk"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Intelligens üzemmód"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Szinkronizálás VBlank jelre"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Textúratömörítés"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Textúraszűrő"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Textúraszűrés"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "A képernyő-újrarajzolás gyakorisága (alkalom/másodperc)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Ablak maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Ablak vízszintes maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Ablak függőleges maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Ablak felgördítése"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Aktív ablak maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Aktív ablak vízszintes maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Aktív ablak függőleges maximális méret átkapcsolása"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Aktív ablak felgördítése"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "„Lassú animációk” effektus kapcsoló"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Aktív ablak visszaállítása"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Teljes méretű ablakok visszairányítása"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Szórt fény használata képernyő-transzformációnál"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Függőleges virtuális méret"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Nagyon magas"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+"Adja meg, hogy melyik átfedő kimeneti eszköz legyen előnyben részesítve."
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Window menü billentyűzetkombinációi"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Window menü billentyűzetkombinációi"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Gyorsítás"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Kép igazítása"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Kép igazítása forgatáshoz"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Továbblépés a következő diára"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Kupola animálása"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Kupola animálása a kocka forgatásánál"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatikus"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Viselkedés"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "A kocka alsó és felső oldalának színe"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "A kupola tartalék színátmenet alsó színállomásához használandó szín"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "A kupola tartalék színátmenet felső színállomásához használandó szín"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Kocka fedőlapok"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kocka színe"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Munkaasztal kocka"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Hajtás gyorsulása"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Hajtás sebessége"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Hajtás időköz"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"MIP térképek készítése, hacsak lehetséges, a jobb minőségű átméretezés "
+"érdekében"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Visszatérés az előző diára"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Képfájlok"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "A kupola textúrájaként használt kép"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "A kocka csak egérrel történő forgatáskor válik átlátszóvá."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "A kocka belseje"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "A kocka belseje"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "A kocka tetejére kerülő PNG és SVG fájlok listája"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Többkimenetes üzemmód"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Több kocka"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Következő dia"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Egy nagy kocka"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Átlátszatlanság forgatás közben"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Átlátszatlanság alapállapotban"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Ablakok átlátszatlansága forgatás közben"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Ablakok átlátszatlansága alapállapotban"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Ablakok elhelyezése a kockán"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Előző dia"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Kupola leképzése"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Kép méretezése"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Kép méretezése a kocka tetejének lefedésére"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "A kocka megjelenítésének módja több kimeneti eszköz használata esetén."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Kupola"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Kupola színátmenetének záró színe"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Kupola színátmenetének induló színe"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Kupola képe"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Sebesség"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Időköz"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Átlátszóság csak egérrel forgatáskor"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Áttetsző kocka"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Kibontás"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Kocka kibontása"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus vezérlés kiszolgálója"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "MIP térképek létrehozása a díszítő textúrákhoz"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Parancs"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Ablakok díszítése"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Díszítő parancs, amely akkor kerül végrehajtásra, ha még nem fut díszítő"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Árnyék X eltolása"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Árnyék Y eltolása"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Árnyék színe"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Árnyék átlátszatlansága"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Árnyék átmérője"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Árnyék színe"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Árnyék X eltolása"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Árnyék Y eltolása"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Árnyék átlátszatlansága"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Árnyék átmérője"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Ablakok árnyékolása"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Ablakdíszítés"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Ablakdíszítések"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Díszítendő ablakok"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Árnyékolandó ablakok"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Nem válaszoló ablak fényerőssége (százalékban megadva)"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Állandó sebesség"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Állandó útidő"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Nem válaszoló ablak elhalványítása"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Azon ablakok elhalványítása, amelyek nem válaszolnak az ablakkezelő kéréseire"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Elhalványítási üzemmód"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Ablakelhalványítás minimalizáláskor, megnyitáskor és bezáráskor"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Elhalványulás sebessége"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Elhalványítási idő"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+"Ablakelhalványítási effektus alkalmazása minimalizáláskor, megnyitáskor és "
+"bezáráskor"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Elhalványulás effektus rendszerhang esetén"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Leképezés esetén az ablak erősítése, lecsatolás esetén elhalványítása"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Ablak elhalványítása"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Ablakok elhalványítása"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Teljes képernyő vizuális csengő"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Teljes képernyő halványuló effektus rendszercsengő esetén"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Nem válaszoló ablak telítettsége (százalékban megadva)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Nem válaszoló ablak fényerőssége"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Nem válaszoló ablak telítettsége"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Vizuális csengő"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Ablak elhalványulásának üzemmódja"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Ablak elhalványulásának sebessége „Állandó sebesség” módban"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Ablak elhalványulásának sebessége „Állandó útidő” módban"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Ablaktípusok, amelyek elhalványulhatnak"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Csatolási pont"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Csatolási pont"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Felhasználói módú fájlrendszer"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Felhasználói módú fájlrendszer"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf vezérlés kiszolgálója"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "Glib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Glib főciklus támogatása"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Terminál megnyitása"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Párbeszéd futtatása"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Parancs futtatása terminálban"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Képernyőkép parancssor"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Főmenü megjelenítése"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "„Alkalmazás futtatása” párbeszédablak megjelenítése"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Főmenü megjelenítése"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Képernyőkép készítése"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Képernyőkép készítése az ablakról"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Terminál parancssor"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Ablak képernyőkép parancssor"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "INI"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "INI szövegfájl"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Fájlváltozásról értesítő bővítmény"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig vezérlés kiszolgálója"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimalizálás effektus"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Ablak minimalizálása"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimalizálás sebessége"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimalizálási időköz"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Felgördítés ellenállása"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Felgördítés ellenállása"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Ablakok átalakítása minimalizáláskor és visszaállításkor"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Minimalizált állapotban átalakítandó ablaktípusok"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Y megszorítás"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y koordináta-megszorítás a munkafelületre"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Csak az ablakáthelyezés befejeztével frissítse az ablakpozíciót a kiszolgálón"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Ablakáthelyezés indítása"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Lusta elhelyezés"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Ablak áthelyezése"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Ablak áthelyezése"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Átlátszatlanság"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Ablakáthelyezés átlátszatlanságának szintje"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Áthelyezéskor az ablakok azonnali, automatikus visszaállítása"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Maximalizált ablakok azonnali visszaállítása"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Ablakáthelyezés megkezdése"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Fényerő"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Fényerő"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Fényerő"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Fényerő"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Nem válaszoló ablak fényerőssége (százalékban megadva)"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Átlátszatlanság csökkentése"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Átlátszatlanság növelése"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Átlátszatlanság változásának léptéke"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Átlátszatlanság változásának léptéke"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Átlátszatlanság mértéke"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Ablakáthelyezés átlátszatlanságának szintje"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Átlátszatlanság forgatás közben"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Telítettség"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Telítettség"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Telítettség"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Telítettség"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Nem válaszoló ablak telítettsége (százalékban megadva)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Ablakdíszítések"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Ablakok átlátszatlanság értékek"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Ablaktérkép-típusok"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Alapértelmezés szerint pozicionálandó ablakok"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Alapértelmezés szerint átlátszó ablakok"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Alapértelmezés szerint pozicionálandó ablakok"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Az ablakok elhelyezésére használt algoritmus"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Lépcsőzetes"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Középre"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Fix ablakelhelyezések"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Ablakelhelyezés erőltetése"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Vízszintes munkalap pozíció"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Munkaasztalon tartás"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Ablakelhelyezés erőltetésének felülbírálása úgy, hogy az ablak minden "
+"esetben a munkaasztalon maradjon"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Ablakok elhelyezése"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Összes kimenet használata"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Térképezés esetén az ablakok elhelyezése a megfelelő pozícióba"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Elhelyezés módja"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Pozicionált ablakok"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Véletlen"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Megadja, hogy több kimeneti eszköz esetén, az ablakelhelyezés viselkedését"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Intelligens"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Aktív kimeneti eszköz használata"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Fókuszált ablakot megjelenítő eszköz használata"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Egérmutatót megjelenítő eszköz használata"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Függőleges munkalap pozíció"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Munkaterületen elhelyezett ablakok"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Kerülőmegoldások az ablak elhelyezésére"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Alapértelmezés szerint pozicionálandó ablakok"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Alapértelmezés szerint megadott munkalapra pozicionálandó ablakok"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Ablakok, amelyek elhelyezését szabályozni kell, még akkor is, ha az "
+"ablakkezelő úgy jelzi, hogy az adott ablakok elhelyezését nem szabad "
+"szabályozni."
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Ablakok rögzített pozicióval"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Ablakok rögzített nézőponttal"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Kerülő megoldások"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Vízszintes pozíció"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Vízszintes munkalap pozíció"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Vízszintes pozíció"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Függőleges pozíció"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Függőleges munkalap pozíció"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Függőleges pozíció"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "PNG képbetöltő"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Reguláris kifejezés egyeztetés"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Reguláris kifejezéssel ablakegyeztetés"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Gyorsbillentyűk"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Kocka színe"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Az átméretezéshez használt körvonal és téglalap színe "
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Alapértelmezett átméretezési mód"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Alapértelmezett ablakátméretezési mód"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Kitöltőszín"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Téglalap átméretezés kitöltő színe"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Hagyományos ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Körvonalas ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Téglalap ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Nyújtásos ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Hagyományos ablakátméretezés"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Körvonal"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Átméretezés az ablak körvonalával"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Téglalap"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Téglalap ablakátméretezés"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Ablak átméretezése"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Ablak átméretezése"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Ablak átméretezésének indítása"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Nyújtásos ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Hagyományos ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Körvonalas ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Téglalap ablakátméretezés indítása"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Nyújtás"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Átméretezés az ablak nyújtásával"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Hagyományos ablakátméretezést használó ablakok"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Körvonalas ablakátméretezést használó ablakok"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Téglalap ablakátméretezést használó ablakok"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Nyújtásos ablakátméretezést használó ablakok"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Élforgatás egérművelet"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Élforgatás áthelyezés"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Élforgatás mutató"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Forgatási idő"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Forgatás a bal oldali nézőpontig és mutató léptetése"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Objektum kép szélére húzása esetén forgatás a következő nézőpontig"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "Mutató kép szélére húzása esetén forgatás a következő nézőpontig"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Egy ablak kép szélére húzása esetén forgatás a következő nézőpontig"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Forgatás a jobb oldali nézőpontig és mutató léptetése"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Y tengely átalakítása a mutató mozgásához"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Y mutató invertálása"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Mutató érzékenysége"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Kiemelés forgatáskor"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Ablakok megnyitása kattintás esetén"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Kocka forgatása"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Forgatás balra"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Forgatás jobbra"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Forgatás balra"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Forgatás balra az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Forgatás jobbra"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Forgatás jobbra az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Forgatás"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Forgatás az 1. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Forgatás az 1. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Forgatás a 10. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Forgatás a 10. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Forgatás a 11. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Forgatás a 11. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Forgatás a 12. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Forgatás a 12. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Forgatás a 2. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Forgatás a 2. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Forgatás a 3. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Forgatás a 3. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Forgatás a 4. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Forgatás a 4. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Forgatás az 5. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Forgatás az 5. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Forgatás a 6. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Forgatás a 6. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Forgatás a 7. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Forgatás a 7. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Forgatás a 8. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Forgatás a 8. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Forgatás a 9. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Forgatás a 9. előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Kocka forgatása"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "A munkaasztalkocka forgatása"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Balra forgatás"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Balra forgatás az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Jobbra forgatás"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Jobbra forgatás az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Forgatás a kocka előlap felé"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Forgatás a kocka előlap felé az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Forgatás az 1. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Forgatás az 1. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Forgatás a 10. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Forgatás a 10. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Forgatás a 11. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Forgatás a 11. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Forgatás a 12. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Forgatás a 12. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Forgatás a 2. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Forgatás a 2. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Forgatás a 3. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Forgatás a 3. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Forgatás a 4. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Forgatás a 4. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Forgatás az 5. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Forgatás az 5. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Forgatás a 6. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Forgatás a 6. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Forgatás a 7. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Forgatás a 7. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Forgatás a 8. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Forgatás a 8. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Forgatás a 9. előlap felé"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Forgatás a 9. előlap felé az aktív ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Forgatás munkalapra"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Ablak forgatása"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Forgatás az ablakkal együtt"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Forgatás gyorsulása"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Forgatás sebessége"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Forgatás időköze"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Forgatási nagyítás"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Mutatómozgatás érzékenysége"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Hirtelen kockaforgatás a also oldalra"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Hirtelen kockaforgatás a felső oldalra"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Alsó oldalhoz ugrás"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Felső oldalhoz ugrás"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Forgatás indítása"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "A nézőpont váltása előtti időkorlát"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Nagyítás"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Átlátszatlanság (0-100%)"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Nagy"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Áttekintő üzemmódban marad"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Átváltás áttekintő üzemmódba ahelyett, hogy a gomb megnyomásakor átváltana, "
+"majd elengedésekor vissza."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Asztalra kattintva az asztal megjelenítése"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Sötétülő háttér"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Sötétülő háttér az ablakok átméretezésekor"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Embléma"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Asztalra kattintás esetén az asztal megjelenítése áttekintő nézetben"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Mutatás ideje"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Ablakválasztó indítása"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Ablakválasztó indítása minden ablakhoz"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Ablakválasztó indítása ablakcsoporthoz"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Ablakválasztó indítása a jelenlegi kimenet ablakain"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Áttekintő üzemmódban marad"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Átváltás áttekintő üzemmódba ahelyett, hogy a gomb megnyomásakor átváltana, "
+"majd elengedésekor vissza."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Elrendezés és ablaktranszformáció indítása"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Elrendezés és ablakcsoport-transzformáció indítása"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Ablaktranszformáció és elrendezés indítása"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Elrendezés és a jelenlegi kimenet ablakai transzformációjának indítása"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Az összes kimeneti eszközön"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "A jelenlegi kimeneti eszközön"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Átfedő ikon"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Ikon átfedése az ablakon átméretezéskor"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Áttekintő nézet"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Ablakok áttekintő nézete"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Áttekintés sebessége"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Áttekintés időköze"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Ablakok áttekintése"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Megadja, hogy több kimeneti eszköz esetén melyik eszköz jelenítse meg az "
+"ablakok áttekintő nézetét."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Ablakok közti távolság"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Távolság"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Az áttekintő nézetből való kilépés előtt eltöltött idő (ezredmásodpercben) "
+"az ablakra mutatáskor"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Ablaktípusok, amelyek áttekintő nézetben megjelennek"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "A automatikus indítása bejelentkezéskor"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Könyvtár"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Téglalap képernyőkép készítése"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Alkalmazás indítása"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Képernyőképek elhelyezése ebbe a könyvtárba"
+
+# /tmp/intro:67 /tmp/xapi:379
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Képernyőkép"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Képernyőkép bővítmény"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "SVG képbetöltő"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Fényerősség (0-100%)"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Telítettség (0-100%)"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Alkalmazásváltó"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automatikus forgatás"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Előrehozás"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "A kijelölt ablak az előtérbe hozása"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "A munkaasztal kinagyításának mértéke ablakváltás során"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimalizálva"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Következő panel"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Következő ablak"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Következő ablak (minden ablak)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Következő ablak (nincs előugró ablak)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Ablakváltó megjelenítése ha nem látható és a következő ablak kiválasztása"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Ablakváltó megjelenítése ha nem látható és az összes ablak közül a következő "
+"kiválasztása"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Ablakváltó megjelenítése ha nem látható és az előző ablak kiválasztása"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Ablakváltó megjelenítése ha nem látható és az összes ablak közül az előző "
+"kiválasztása"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Előző panel"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Előző ablak"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Előző ablak (minden ablak)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Előző ablak (nincs előugró ablak)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Forgatás a kiválasztott ablakra váltás közben"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Válassza ki a következő paneltípus-ablakot."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Következő ablak kiválasztása a felbukkanó ablak nélkül."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Válassza ki az előző paneltípus-ablakot."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Előző ablak kiválasztása a felbukkanó ablak nélkül."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Ikon megjelenítése a miniatűr mellett"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Ikonizált ablakok megjelenítése"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Váltás sebessége"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Váltás időköz"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Ablakváltó ablak"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Az ablakválasztóban megjelenítendő ablaktípusok"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 színtértámogatás biztosítása"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Videólejátszás"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Videólejátszás"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 színtér"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Vonal hozzáadása"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Pont hozzáadása"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Víz effektus hozzáadása a különböző munkaasztal-műveletekhez"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Esőcseppek közötti késleltetés (ms)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Mutató víz effektus bekapcsolása"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Vonal"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Eltolás skálája"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Pont"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Eső késleltetése"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Címhullám"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "„Eső” kapcsoló"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "„Eső” effektus kapcsoló"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "„Ablaktörlő” kapcsoló"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "„Ablaktörlő” effektus kapcsoló"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Víz effektus"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Víz eltolás mértéke"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Hullám effektus az ablakcímből"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Fókusz effektus"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Ablakfókusz-effektus"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Ablakfókusz-típusok"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Súrlódás"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Ablaktípusok érzékelése"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Rács felbontása"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Ablakok illesztése fordítva"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Ablak összetörése"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Térkép effektus"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Ablaktérkép-effektus"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Ablaktérkép-típusok"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maximalizálás effektus"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Rács minimális mérete"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimum csúcs-rácspont mérete"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Ablak áthelyezése"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Összetörés"
+
+# 52895 AttribValues/label
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Illesztés fordítva"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Ablakok illesztése"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Rugó súrlódása"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Rugóállandó (K)"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Rugóállandó (K)"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "„Ablakok illesztése” effektus kapcsoló"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Rugómodell használata az imbolygó ablakeffektusnál"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Csúcspontrács felbontása"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Ablaktípusok, amelyek imbolyoghatnak fókuszáláskor"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Ablaktípusok, amelyek imbolyoghatnak megfogáskor"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Ablaktípusok, amelyek imbolyoghatnak, amikor térképezettek"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Ablaktípusok, amelyek imbolyoghatnak áthelyezéskor"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Imbolygás ablakok maximalizálásakor és visszaállításakor"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Imbolygó ablakok"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Lineáris szűrő"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Lineáris szűrő használata nagyításnál"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Munkaasztal nagyítása"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Nagyítás"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Kicsinyítés"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Nagyítás"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Nagyítás sebessége"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Nagyítás időköz"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "A munkaasztalkocka nagyítása és pásztázása"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Nagyítási arány"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Nagyítás"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "1. parancssor"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "1. parancs futtatása"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Képernyőkép parancsok"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Képernyőkép gyorsbillentyű"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Ablak átlátszatlanságának csökkentése"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Ablak átlátszatlanság növelése"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "Átlátszatlansági értékek az alapértelmezésként átlátszó ablakokhoz"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Ablakok átlátszatlansága"
+
+#~ msgid "Background Images"
+#~ msgstr "Háttérképek"
+
+#~ msgid "Background images"
+#~ msgstr "Háttérképek"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Ablakok elhelyezése a síkon"
+
+#~ msgid "Plane Down"
+#~ msgstr "Gördítés le"
+
+#~ msgid "Plane Left"
+#~ msgstr "Gördítés balra"
+
+#~ msgid "Plane Right"
+#~ msgstr "Gördítés jobbra"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Gördítés az 1. előlap felé"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Gördítés a 10. előlap felé"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Gördítés a 11. előlap felé"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Gördítés a 12. előlap felé"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Gördítés a 2. előlap felé"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Gördítés a 3. előlap felé"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Gördítés a 4. előlap felé"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Gördítés az 5. előlap felé"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Gördítés a 6. előlap felé"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Gördítés a 7. előlap felé"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Gördítés a 8. előlap felé"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Gördítés a 9. előlap felé"
+
+#~ msgid "Plane Up"
+#~ msgstr "Gördítés fel"
+
+#~ msgid "Plane down"
+#~ msgstr "Gördítés le"
+
+#~ msgid "Plane left"
+#~ msgstr "Gördítés balra"
+
+#~ msgid "Plane right"
+#~ msgstr "Gördítés jobbra"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Gördítés az 1. előlap felé"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Gördítés a 10. előlap felé"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Gördítés a 11. előlap felé"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Gördítés a 12. előlap felé"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Gördítés a 2. előlap felé"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Gördítés a 3. előlap felé"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Gördítés a 4. előlap felé"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Gördítés az 5. előlap felé"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Gördítés a 6. előlap felé"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Gördítés a 7. előlap felé"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Gördítés a 8. előlap felé"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Gördítés a 9. előlap felé"
+
+#~ msgid "Plane up"
+#~ msgstr "Gördítés fel"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Munkaasztal ablakelhalványítási ideje"
+
+#~ msgid "Open window menu"
+#~ msgstr "Ablak menü megnyitása"
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..efe2648
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,3214 @@
+# Indonesian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999-2001 SuSE GmbH.
+# I Made Wiryana <made@nakula.rvs.uni-bielefeld.de>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:08+0100\n"
+"PO-Revision-Date: 2002-10-08 13:38+0200\n"
+"Last-Translator: I Made Wiryana <made@nakula.rvs.uni-bielefeld.de>\n"
+"Language-Team: Indonesian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Desktop"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Kecepatan:"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "India"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "India"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "India"
+
+# IN
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "India"
+
+# IN
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "India"
+
+# IN
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "India"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Kecepatan:"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Rusia"
+
+# RU
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Rusia"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Rusia"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Rusia"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Rusia"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+# IN
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "India"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+# SH
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Santa Helena"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Desktop"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Set filter"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Set filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+# RU
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "Rusia"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# IN
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "India"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Desktop"
+
+# RU
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "Rusia"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Kecepatan:"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+# RU
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Rusia"
+
+# RU
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "Rusia"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Kecepatan:"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Kecepatan:"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "Jalankan dalam terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Kecepatan:"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+# RU
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Rusia"
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Rusia"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "Rusia"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+# RU
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Rusia"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+# IN
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "India"
+
+# IN
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "India"
+
+# IN
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "India"
+
+# IN
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "India"
+
+# IN
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+# IN
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "India"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+# IN
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "India"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+# RU
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Rusia"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Kecepatan:"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+# IN
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "India"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+# ES
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Spanyol"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Direktori\n"
+
+# IN
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "India"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Pindah aplikasi:"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+# IN
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "India"
+
+# ES
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Spanyol"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Desktop"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Adakan Partisi ZEN"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+# SH
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Santa Helena"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Adakan Partisi ZEN"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Spanyol"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Driver"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+# ES
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Spanyol"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Spanyol"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Spanyol"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Desktop"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Kecepatan:"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Kecepatan:"
+
+#, fuzzy
+#~ msgid "Unknown"
+#~ msgstr "tidak dikenal"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Adakan Partisi ZEN"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Kecepatan:"
+
+# RU
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Rusia"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Rusia"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Desktop"
+
+# RU
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Rusia"
+
+# ES
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Spanyol"
+
+# ES
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Spanyol"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Set filter"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Kecepatan:"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..de2fba9
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,3479 @@
+# Compiz Italian Translation
+# Copyright (C) 2007 compiz's COPYRIGHT HOLDER
+# This file is distributed under the same license as the Compiz package.
+# Milo Casagrande <milo@ubuntu.com>, 2007-2008
+#
+# **** Glossario ****
+#
+#
+# enable -> usato sempre come 'abilitare'
+# viewport -> area di lavoro (fino a quando non sia effettivamente una
+# concezione diversa)
+# bevel, to -> smussare
+# workaround -> alternativa
+# sticky -> adesivo
+# jagged edges -> bordi dentellati (traduzione corretta)
+# sidekick -> vortice
+# skewer -> distorsione
+# glide -> planata
+# skydome -> volta del cielo (lo so... lo so... a molti non piacerà! :) )
+# fold -> ripiegatura (nelle sue varianti curva, orizzontale...)
+# clamp -> blocca, bloccare
+# shade -> sfumata, sfumare
+# fade -> dissolvi, dissolvenza
+# padding -> spaziatura
+# pad -> spazio
+# blur -> sfocato
+# hotkey -> tasto di scelta rapida
+# flip -> scorrere
+# Scale -> Scala finestre (nome del plug-in), scala o scalare, ridimensionare
+# per immagini
+# glow -> bagliore
+# Opacify -> Opacizza (anche nome del plug-in); opacizzare
+# opacity -> opacità (non è la trasparenza!)
+# tilt -> inclinato/a, usato per la visualizzazione delle aree di lavoro
+# sloppy -> lento (trovato solo una volta... ma potrebbe venir usato ancora)
+# Inside Cube -> Dentro il cubo (la modalità)
+# keybinding -> associazione di tasti
+# outline -> sagoma (nella modalità di ridimensionamento delle finestre)
+# blend -> trasformazione/trasformare (ne ho parlato con un Flame Artist)
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz_0.7.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-12-30 22:18+0100\n"
+"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.0.2\n"
+
+# (ndt) qui non capisco se si riferisca al desktop intero
+# (comprese la barra superiore e inferiore) o solo alla 'scrivania'
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Desktop"
+
+# (ndt) messo al plurale, alla fine non è relativo a una sola finestra
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Gestione finestre"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Niente"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Sfuma"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Massimizzato"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Massimizza orizzontalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Massimizza verticalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Minimizza"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Solleva"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Abbassa"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menù della finestra"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Azione da eseguire quando viene utilizzata la rotellina del mouse sulla "
+"barra del titolo."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tipo di sfocatura"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacità finestra attiva tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Sfumatura opacità finestra attiva tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacità tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Sfumatura opacità tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opacità da usare per le finestre attive con il tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacità da usare per le decorazioni del tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "Sfuma le finestre attive con il tema Metacity da opache a traslucide"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "Sfuma le finestre con il tema Metacity da opache a traslucide"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Azione della rotellina del mouse sulla barra del titolo"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipo di sfocatura da usare con le decorazioni delle finestre"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Usa il tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Usa il tema Metacity per le decorazioni delle finestre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Chiude la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Demassimizza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Massimizza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizza la finestra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Porta sopra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Blocca"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "De-sfuma"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Porta sotto"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Sblocca"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "La finestra «%s» non risponde."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forzare la chiusura dell'applicazione comporta la perdita delle modifiche "
+"non salvate."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forza uscita"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Annotazioni"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Colore riempimento"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Colore tratto"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Plug-in per prendere annotazioni"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Pulisci"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Disegna"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Disegna usando lo strumento"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Colore riempimento per le annotazioni"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Avvia"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Avvia il disegno delle annotazioni"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Avvia la cancellazione delle annotazioni"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Avvia cancellazione"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Larghezza linea"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Larghezza linea per le annotazioni"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Colore tratto per le annotazioni"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Larghezza tratto"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Larghezza tratto per le annotazioni"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4× bilineare"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Sfocatura alpha"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Finestre in sfocatura"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtro sfocatura"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Sfocare le occlusioni"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturazione sfocatura"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Velocità sfocatura"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Finestre sfocate"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Sfocatura dietro la parte traslucida delle finestre"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturazione sfocatura"
+
+# (ndt) descrizione del plug-in
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Sfoca le finestre"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Sfoca le finestre che non hanno il focus"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Disabilita la sfocatura delle regioni dello schermo oscurate da altre "
+"finestre."
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Filtro usato per la sfocatura"
+
+# (ndt) opzione
+# anche se non mi convince come traduzione
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Sfocare al focus"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Finestre da sfocare"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussiano"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Raggio gaussiano"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Resistenza gaussiana"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Il raggio gaussiano"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "La resistenza gaussiana"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Recupero texture indipendente"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+# (ndt) preferisco mettere così... altrimenti
+# non si capisce subito
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Livello dettaglio"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Livello dettaglio mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulsazione"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Effetto pulsazione"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Utilizza le unità texture disponibili per effettuare tutti i possibili "
+"recuperi texture indipendenti."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Velocità sfocatura finestra"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Tipi di finestre a cui applicare la sfocatura al focus"
+
+# (ndt) suggerimento
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+"Tipi di finestre a cui applicare la sfocatura alpha in modo predefinito"
+
+# (ndt) devo ancora capirne l'utilità...
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Clona output"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Avvia selezione clone"
+
+# (ndt) descrizione plug-in
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Gestore output clonato"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Un'associazione di tasti che, quando invocata, esegue il comando della shell "
+"identificato da command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Associazioni"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Riga di comando 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Riga di comando 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Riga di comando 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Riga di comando 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Riga di comando 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Riga di comando 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Riga di comando 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Riga di comando 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Riga di comando 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Riga di comando 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Riga di comando 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Riga di comando 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_comman11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Riga di comando da eseguire nella shell quando viene invocato run_command9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Comandi"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Associazioni"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Associazioni di tasti"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Esegui comando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Esegui comando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Esegui comando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Esegui comando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Esegui comando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Esegui comando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Esegui comando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Esegui comando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Esegui comando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Esegui comando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Esegui comando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Esegui comando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Plug-in attivi"
+
+# (ndt) io non la capisco come frase...
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Consenti il disegno finestre a schermo intero di non essere reindirizzato a "
+"pixmap fuori schermo"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Segnale acustico udibile"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Suono di sistema udibile"
+
+# (ndt) non serve fare clic sulla finestra per sollevarla
+# non per darle il focus, solo per sollevarla
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Sollevare automaticamente"
+
+# (ndt) non mi piace molto... ma andrebbe trovato anche di meglio
+# per quella sopra
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Ritardo solleva automaticamente"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Rilevamento automatico dispositivi di output"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Rilevamento automatico della frequenza di aggiornamento"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Ottimo"
+
+# (ndt) opzione
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Fare clic per il focus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Fare clic sulla finestra per spostare il focus su di essa"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Chiude finestra attiva"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Icona predefinita"
+
+# (ndt) suggerimento
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Icona finestra predefinita"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Dimensione desktop"
+
+# (ndt) opzione
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Rilevare output"
+
+# (ndt) opzione
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Rilevare frequenza aggiornamento"
+
+# (ndt) è il nome di una scheda
+# meglio stare sul corto
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Impostazioni visualizzazione"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Tempo che il puntatore deve restare su un bordo dello schermo prima che "
+"venga eseguita un'azione."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Ritardo azione bordo"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Veloce"
+
+# (ndt) pure questa è il nome di una scheda...
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Focus e comportamento sollevamento"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Livello di prevenzione del focus"
+
+# (ndt) non è molto chiara...
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Finestre che prevengono il focus"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Tipi di finestre che prevengono il focus"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forza la colorazione indipendente dell'output."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opzioni generali"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opzioni generali di Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Buono"
+
+# (ndt) originale poco chiara...
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Nascondi finestre della barra delle applicazioni di tralasciamento"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Nasconde tutte le finestre e dà il focus alla scrivania"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Nasconde le finestre non nella barra delle applicazioni durante "
+"l'attivazione della modalità di visualizzazione della scrivania"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Alto"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Dimensioni virtuali orizzontali"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Se disponibile, usa la compressione per le texture convertite dalle immagini"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorare suggerimenti quando massimizzata"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignora i suggerimenti su aspetto e incremento dimensioni quando la finestra "
+"è massimizzata"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervallo di tempo prima di sollevare le finestre selezionate"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervallo tra i messaggi di ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Associazioni di tasti"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Livello di prevenzione del focus"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Illuminazione"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Elenco dei plug-in attualmente attivi"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Elenco di stringhe che descrivono i dispositivi di output"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Basso"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Abbassa finestra"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Abbassa la finestra sotto le altre"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Massimizza finestra in orizzontale"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Massimizza finestra in verticale"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Massimizza la finestra attiva"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Massimizza la finestra attiva in orizzontale"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Massimizza la finestra attiva in verticale"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimizza la finestra attiva"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normale"
+
+# (ndt) qui non scrivania perché si possono avere più scrivanie
+# intese come aree di lavoro su diversi desktop. Questo indica proprio
+# il numero di desktop virtuali
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Numero di desktop"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Numero di desktop virtuali"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Spento"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Esegue aggiornamenti dello schermo solo durante periodo di cancellazione "
+"verticale"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Output"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Gestione output sovrapposto"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Colora ogni dispositivo di ouptut indipendentemente, anche se i dispositivi "
+"si sovrappongono"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ritardo ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferire output più grande"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferire output più piccolo"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Sollevare al clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Solleva finestra"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Porta la finestra selezionata in primo piano dopo un intervallo"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Solleva la finestra al di sopra delle altre finestre"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Solleva le finestre al clic"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Frequenza di aggiornamento"
+
+# (ndt) questo non è altro che un numero per indicare
+# quante aree di lavoro in orizzontale usare
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Moltiplicatore dimensione schermo per dimensioni virtuali orizzontali"
+
+# (ndt) questo invece indica quante aree di lavoro in verticale
+# usare: se il valore di prima è 4 e questo 2, si hanno in totale 8 aree di lavoro
+# su due file
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Moltiplicatore dimensione schermo per dimensioni virtuali verticali"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Mostra scrivania"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animazioni lente"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Modalità intelligente"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizza con VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compressione texture"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtro texture"
+
+# (ndt) suggerimento della voce precedente
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Modalità di filtro texture"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "La velocità di aggiornamento della schermata (volte/secondo)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Commuta finestra massimizzata"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Commuta finestra massimizzata in orizzontale"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Commuta finestra massimizzata in verticale"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Commuta finestra sfumata"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Commuta finestra attiva massimizzata"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Commuta finestra attiva massimizzata in orizzontale"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Commuta finestra attiva massimizzata in verticale"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Commuta finestra attiva sfumata"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Commuta l'uso di animazioni lente"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Demassimizza finestra attiva"
+
+# (ndt) poco chiara
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Annullare re-indirizzamento finestre a schermo intero"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Usa luce diffusa alla trasformazione della schermata"
+
+# (ndt) su quante righe mettere le aree di lavoro
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Dimensioni virtuali verticali"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Molto alto"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Quale dei dispositivi di output sovrapposto deve essere preferito"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Associazione pulsante menù finestra"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Associazione tasto menù finestra"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Accelerazione"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Adattare immagine"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Regola l'immagine alla rotazione"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avanza a diapositiva successiva"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animare la volta del cielo"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Anima la volta del cielo alla rotazione del cubo"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Aspetto"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatico"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Comportamento"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Colore dei lati superiore e inferiore del cubo"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Colore finale da utilizzare per il gradiente inferiore della volta del cielo"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Colore iniziale da utilizzare per il gradiente superiore della volta del "
+"cielo"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Capi del cubo"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Colore cubo"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Desktop cubico"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Accelerazione ripiegatura"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocità ripiegatura"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Intervallo ripiegatura"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"Genera mipmap quando possibile per migliorare la qualità di ridimensionamento"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Torna a diapositiva precedente"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "File immagine"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Immagine da utilizzare come texture per la volta del cielo"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Inizializza la trasparenza del cubo solo se la rotazione è gestita col mouse."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Dentro il cubo"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Punto di vista dall'interno del cubo"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Elenco di file PNG e SVG da visualizzare sulla faccia superiore del cubo"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modalità multi-output"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Cubi multipli"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Diapositiva successiva"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Un grande cubo"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacità durante la rotazione"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacità quando fermo"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacità del desktop durante la rotazione."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacità del desktop quando non sta ruotando."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Posiziona le finestre su un cubo"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Diapositiva precedente"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Visualizza la volta del cielo"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Ridimensionare immagine"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Ridimensiona le immagini per coprire la faccia superiore del cubo"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Stabilisce come visualizzare il cubo se sono utilizzati dispositivi multipli "
+"per l'output."
+
+# (ndt) lo so... lo so... a molti non andrà a genio! :)
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Volta del cielo"
+
+# (ndt) ometto skydome, tanto sono presenti solo tra le sue opzioni
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Colore gradiente finale"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Colore gradiente iniziale"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Immagine volta del cielo"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocità"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Intervallo"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Trasparenza solo alla rotazione col mouse"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Cubo trasparente"
+
+# (ndt) l'opzione per aprire il cubo e vedere le sue facce
+# quella superiore e inferiore non vengono contate...
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Distendi"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Distende il cubo"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Backend controllo dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Consente la creazione di mipmap per le texture della decorazione"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Finestre da decorare"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Riga di comando strumento di decorazione eseguita se nessuna applicazione di "
+"decorazione è in esecuzione"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Offset X ombreggiatura esterna"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Offset Y ombreggiatura esterna"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Colore ombreggiatura esterna"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacità ombreggiatura esterna"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Raggio ombreggiatura esterna"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Colore ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Offset X ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Offset Y ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacità ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Raggio ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Finestre con ombreggiatura"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decorazione finestra"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decorazioni finestra"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Tipi di finestre da decorare"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Tipi di finestre a cui applicare l'ombreggiatura"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Luminosità (in percentuale) delle finestre bloccate"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Velocità costante"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Tempo costante"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Oscurare finestre bloccate"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Oscurare le finestre che non rispondono alle richieste del gestore di "
+"finestre"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Modalità dissolvenza"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Dissolvere alla minimizzazione/apertura/chiusura"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocità dissolvenza"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Tempo dissolvenza"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+"Effetto dissolvenza agli eventi di minimizzazione/apertura/chiusura della "
+"finestra"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Effetto dissolvenza al suono di sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Applica dissolvenza in entrata alle finestre quando associate e in uscita "
+"quando non associate"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Finestre da dissolvere"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Finestre in dissolvenza"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Segnale visivo schermo intero"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Effetto dissolvenza schermo intero al suono di sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Saturazione (in percentuale) delle finestre bloccate"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Luminosità finestre bloccate"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Saturazione finestre bloccate"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Segnale acustico visivo"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Modalità dissolvenza finestra"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Velocità dissolvenza finestra nella modalità «Velocità costante»"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Tempo (in ms) dissolvenza finestra nella modalità «Tempo costante»"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Tipi di finestre a cui applicare la dissolvenza"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Punto di mount"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Punto di mount"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "File system nello spazio utente"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "File system nello spazio utente"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Backend per il controllo GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+# (ndt) o principale?
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Supporto ciclo main GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Apre un terminale"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Finestra di dialogo «Esegui applicazione»"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Comando esecuzione terminale"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Riga di comando per cattura schermata"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Mostra menù principale"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Mostra finestra di dialogo «Esegui applicazione»"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Mostra il menù principale"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Cattura schermata"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Cattura un'istantanea di una finestra"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Riga di comando terminale"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Riga di comando cattura schermata finestra"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Backend file ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Plug-in notifica cambiamento file"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Backend per il controllo Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Effetto minimizzazione"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Finestre da minimizzare"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Velocità minimizzazione"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Intervallo minimizzazione"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistenza sfumatura"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistenza sfumatura"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Trasforma le finestre quando vengono minimizzate e deminimizzate"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Tipi di finestre da trasformare quando minimizzate"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Mantenere Y"
+
+# (ndt) suggerimento
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+"Non consente di spostare le finestre oltre il bordo superiore e inferiore "
+"dello schermo "
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Non aggiorna la posizione lato server delle finestre fino al termine del "
+"movimento"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Inizializza muovi finestre"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Posizionamento pigro"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Muovi finestra"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Muove la finestra"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacità"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Livello di opacità delle finestre in movimento"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Sgancia e demassimizza le finestre massimizzate nel trascinamento"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Sganciare finestre massimizzate"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Avvia finestra in movimento"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Luminosità"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Luminosità"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Luminosità"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Luminosità"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Luminosità (in percentuale) delle finestre bloccate"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Riduci opacità"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Aumenta opacità"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Passo di modifica dell'opacità"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Passo di modifica dell'opacità"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Passo opacità"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Livello di opacità delle finestre in movimento"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacità durante la rotazione"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturazione"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturazione"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturazione"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturazione"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Saturazione (in percentuale) delle finestre bloccate"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decorazioni finestra"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Valori opacità finestra"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Finestre da associare"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Tipi di finestre da posizionare in modo predefinito"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Finestre che dovrebbero essere traslucide in modo predefinito"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Tipi di finestre da posizionare in modo predefinito"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmo da usare per il posizionamento della finestra"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascata"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrato"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Posizionamento finestre fisso"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Posizionamento finestre forzato"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Posizioni orizzontali area di lavoro"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Mantenere nell'area di lavoro"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Mantiene le finestre posizione nell'area di lavoro, anche se ciò significa "
+"che la posizione possa differire da quella specificata."
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Posiziona finestre"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Posizionare le finestre tra tutti gli output"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Posiziona le finestre in maniera appropriata quando sono associate"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Modalità di posizionamento"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Finestre da posizionare"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Casuale"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Seleziona il comportamento del posizionamento delle finestre se sono "
+"selezionati molteplici output"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Intelligente"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Usare dispositivo di output attivo"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Usare dispositivo di output della finestra col focus"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Usare dispositivo di output con puntatore"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Posizioni verticali area di lavoro"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Finestre posizionate in area di lavoro"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Alternative posizionamento finestre"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Tipi di finestre da posizionare in modo predefinito"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Tipi di finestre da posizionare in un'area di lavoro specifica in modo "
+"predefinito"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Finestre che devono essere posizionate in ogni caso, anche se il gestore di "
+"finestre non dovrebbe posizionarle."
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Finestre con posizioni fisse"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Finestre con area di lavoro fissa"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Alternative"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Posizioni X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Posizioni X area di lavoro"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valori posizione X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Posizioni Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Posizioni Y area di lavoro"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valori posizione Y"
+
+# (ndt) è più comune vedere PNG piuttosto che Png
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Caricatore immagini PNG"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Corrispondenza espressione regolare"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Riconosce le finestre usando le espressioni regolari"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Associazioni"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Colore bordo"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Colore bordo usato nelle modalità di ridimensionamento «Sagoma» e «Rettangolo»"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Modalità ridimensionamento predefinita"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Modalità predefinita per il ridimensionamento delle finestre"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Colore riempimento"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Colore del riempimento nella modalità di ridimensionamento «Rettangolo»"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Inizializza ridimensionamento «Normale»"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Inizializza ridimensionamento «Sagoma»"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Inizializza ridimensionamento «Rettangolo»"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Inizializza ridimensionamento «Elastico»"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Inizializza ridimensionamento finestre"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Ridimensionamento finestre normale"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Sagoma"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Ridimensionamento finestre sagoma"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rettangolo"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Ridimensionamento finestre rettangolo"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Ridimensiona finestre"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Ridimensiona le finestre"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Avvia il ridimensionamento della finestra"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Avvia il ridimensionamento delle finestre stiracchiandole"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Avvia il ridimensionamento normale delle finestre"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Avvia il ridimensionamento delle finestre attraverso la sagoma"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Avvia il ridimensionamento delle finestre attraverso il rettangolo"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Elastico"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Ridimensionamento finestre elastico"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Tipi di finestre a cui applicare il ridimensionamento «Normale»"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Tipi di finestre a cui applicare il ridimensionamento «Sagoma»"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Tipi di finestre a cui applicare il ridimensionamento «Rettangolo»"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Tipi di finestre a cui applicare il ridimensionamento «Elastico»"
+
+# (ndt) il funzionamento è questo:
+# prendere un oggetto, non una finestra, e cercare
+# di spostarlo in un'altra area di lavoro per far ruotare il cubo
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Scorrere il bordo al trascinamento"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Scorrere il bordo allo spostamento"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Scorrere il bordo con il puntatore"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Tempo scorrimento"
+
+# (ndt) praticamente sposta il puntatore sul bordo di destra
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Ruota verso l'area di lavoro a sinistra e sposta il puntatore"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Ruota verso l'area di lavoro successiva trascinando un oggetto sul bordo"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Ruota verso l'area di lavoro successiva spostando il puntatore sul bordo"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Ruota verso l'area di lavoro successiva spostando una finestra sul bordo"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Ruota verso l'area di lavoro a destra e sposta il puntatore"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverte l'asse Y per lo spostamento del puntatore"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Invertire puntatore Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilità puntatore"
+
+# (ndt) riesco a capire cosa faccia...
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Sollevare alla rotazione"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Solleva le finestre alla rotazione"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Ruota cubo"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Scorre e ruota verso sinistra"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Scorre e ruota verso destra"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Ruota a sinistra"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Ruota a sinistra con la finestra"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Ruota a destra"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Ruota a destra con la finestra"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Ruota verso"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Ruota verso faccia 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Ruota verso faccia 1 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Ruota verso faccia 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Ruota verso faccia 10 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Ruota verso faccia 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Ruota verso faccia 11 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Ruota verso faccia 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Ruota verso faccia 12 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Ruota verso faccia 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Ruota verso faccia 2 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Ruota verso faccia 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Ruota verso faccia 3 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Ruota verso faccia 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Ruota verso faccia 4 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Ruota verso faccia 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Ruota verso faccia 5 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Ruota verso faccia 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Ruota verso faccia 6 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Ruota verso faccia 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Ruota verso faccia 7 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Ruota verso faccia 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Ruota verso faccia 8 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Ruota verso faccia 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Ruota verso faccia 9 con la finestra"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Ruota cubo"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Ruota desktop cubico"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Ruota a sinistra"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Ruota a sinistra insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Ruota a destra"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Ruota a destra insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Ruota verso la faccia del cubo"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Ruota verso faccia del cubo con la finestra"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Ruota verso la faccia 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Ruota verso la faccia 1 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Ruota verso la faccia 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Ruota verso la faccia 10 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Ruota verso la faccia 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Ruota verso la faccia 11 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Ruota verso la faccia 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Ruota verso la faccia 12 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Ruota verso la faccia 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Ruota verso la faccia 2 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Ruota verso la faccia 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Ruota verso la faccia 3 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Ruota verso la faccia 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Ruota verso la faccia 4 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Ruota verso la faccia 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Ruota verso la faccia 5 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Ruota verso la faccia 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Ruota verso la faccia 6 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Ruota verso la faccia 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Ruota verso la faccia 7 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Ruota verso la faccia 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Ruota verso la faccia 8 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Ruota verso la faccia 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Ruota verso la faccia 9 insieme alla finestra attiva"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Ruota verso area di lavoro"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Ruota la finestra"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Ruota con la finestra"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Accelerazione rotazione"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocità rotazione"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Intervallo rotazione"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom della rotazione"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilità del movimento del puntatore"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Aggancia la rotazione del cubo alla faccia inferiore"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Aggancia la rotazione del cubo alla faccia superiore"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Agganciare alla faccia inferiore"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Agganciare alla faccia superiore"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Avvia rotazione"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Timeout prima di scorrere l'area di lavoro"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Quantità di opacità in percentuale"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grande"
+
+# (ndt) mah...
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Associazioni pulsante commutazione modalità «Scala finestre»"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Associazioni pulsante per la commutazione della modalità «Scala finestre» "
+"invece di abilitarla quando premuto e disabilitarla quando rilasciato."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Fare clic sulla scrivania per mostrarla"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Scurire lo sfondo"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Scurisce lo sfondo durante il ridimensionamento delle finestre"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Simbolo"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Entra nella modalità «Mostra scrivania» quando viene fatto clic sulla "
+"scrivania durante «Scala finestre»"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Tempo passaggio del mouse"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Avvia il selettore finestre"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Avvia selettore finestre per tutte le finestre"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Avvia selettore finestre per gruppo di finestre"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Avvia selettore finestre per finestre in output corrente"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Associazioni tasto commutazione modalità «Scala finestre»"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Associazioni tasto per la commutazione della modalità «Scala finestre» invece "
+"di abilitarla quando premuto e disabilitarla quando rilasciato."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Dispone e avvia la trasformazione di tutte le finestre"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Dispone e avvia la trasformazione del gruppo di finestre"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Dispone e avvia trasformazione finestre"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Dispone e avvia la trasformazione delle finestre nell'output corrente"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Su tutti i dispositivi di output"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Sul dispositivo corrente"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Icona di sovrapposizione"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Sovrappone un'icona alle finestre dopo che sono state ridimensionate"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Scala finestra"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Ridimensiona finestre"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Velocità scala"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Intervallo scala"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Ridimensiona le finestre"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Indica dove scalare le finestre se sono utilizzati più dispositivi di output."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Spazio tra le finestre"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Spaziatura"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tempo (in ms) prima che la modalità di scala venga terminata al passaggio "
+"del mouse su una finestra"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Tipi di finestre da ridimensionare nella modalità «Scala finestra»"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Apre le schermate con questa applicazione"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Directory"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Cattura schermata rettangolare"
+
+# (ndt) non è molto chiara in inglese
+# dovrebbe indicare l'applicazione da usare
+# per visualizzare le schermate
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Applicazione da eseguire"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Archivia le schermate in questa directory"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Cattura schermate"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Plug-in per catturare schermate"
+
+# (ndt) anche qui... è più noto SVG che Svg
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Caricatore immagini SVG"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Quantità di luminosità in percentuale"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Quantità di saturazione in percentuale"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Selettore applicazioni"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Rotazione automatica"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Portare in primo piano"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Porta la finestra selezionata in primo piano"
+
+# (ndt) indica un fattore di rimpicciolimento
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Distanza a cui spostare il desktop durante la selezione delle finestre"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Icona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimizzare"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Pannello successivo"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Finestra successiva"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Finestra successiva (tutte le finestre)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Finestra successiva (nessun pop-up)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Mostra il selettore se non visibile e seleziona la finestra successiva"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Mostra il selettore se non visibile e seleziona la finestra successiva tra "
+"tutte le altre finestre"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Mostra il selettore se non visibile e seleziona la finestra precedente"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Mostra il selettore se non visibile e seleziona la finestra precedente tra "
+"tutte le altre finestre"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Panello precedente"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Finestra precedente"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Finestra precedente (tutte le finestre)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Finestra precedente (nessun pop-up)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Ruota verso la finestra selezionata durante la selezione"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Seleziona il tipo di pannello di finestra successivo."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Seleziona la finestra successiva senza mostrare la finestra pop-up."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Seleziona il tipo di pannello di finestra precedente"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Seleziona la finestra precedente senza mostrare la finestra pop-up."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Mostra un'icona accanto all'anteprima"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Mostra le finestre minimizzate"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocità selettore"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Intervallo selettore"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Finestre da selezionare"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Tipi di finestre da visualizzare nel selettore"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Fornisce supporto per lo spazio colore YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Riproduzione video"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Riproduzione video"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Spazio colore YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Aggiungi linea"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Aggiungi punto"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Aggiunge effetti acqua a diverse azioni del desktop"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Ritardo (in ms) tra le gocce di pioggia"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Abilita effetti acqua puntatore"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linea"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Proporzioni"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punto"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Ritardo pioggia"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Onda sul titolo"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Commuta pioggia"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Commuta l'effetto pioggia"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Commuta tergicristallo"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Commuta il tergicristallo"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Effetto acqua"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Offset scala acqua"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Effetto onda dal titolo della finestra"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Effetto al focus"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Effetto finestra al focus"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Finestre per il focus"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Attrito"
+
+# (ndt) termine un po' così...
+# indica le finestre che dovrebbero essere tremolanti quando sono 'catturate'
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Finestre da afferrare"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Risoluzione griglia"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Aggancio finestre invertito"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Rende le finestre tremolanti"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Associa effetto"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Associa effetto finestra"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Finestre da associare"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Effetto alla massimizzazione"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Dimensione minima griglia"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Dimensione minima griglia vertex"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Finestre da muovere"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Tremolio"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Aggancio invertito"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Aggancia finestre"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Attrito della molla"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Costante della molla"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Costante della molla"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Commuta aggancio finestre"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Usa modello a molla per l'effetto delle finestre tremolanti"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Risoluzione griglia vertex"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+"Tipi di finestre a cui applicare l'effetto tremolante quando hanno il focus"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Tipi di finestre a cui applicare l'effetto tremolante quando afferrate"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Tipi di finestre a cui applicare l'effetto tremolante quando mappate"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Tipi di finestre a cui applicare l'effetto tremolante quando spostate"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+"Effetto tremolante alla massimizzazione/demassimizzazione delle finestre"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Finestre tremolanti"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtro lineare"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Usa il filtro lineare nell'ingrandimento"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Ingrandisci desktop"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Aumenta ingrandimento"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Riduci ingrandimento"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Panoramica"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocità zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Intervallo zoom"
+
+# (ndt) non capisco cosa centri il cubo...
+# dovrebbe funzionare anche senza...
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Ingrandisce ed esegue panoramiche del desktop"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Fattore ingrandimento"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Ingrandisce panoramica"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Riga di comando 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Esegui comando 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Comandi cattura schermata"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Associazioni tasti per cattura schermata"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Riduce l'opacità della finestra"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Aumenta l'opacità della finestra"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valori di opacità per le finestre che dovrebbero essere traslucide in "
+#~ "modo predefinito"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacità finestre"
+
+#~ msgid "Background Images"
+#~ msgstr "Immagini di sfondo"
+
+#~ msgid "Background images"
+#~ msgstr "Immagini di sfondo"
+
+#~ msgid "Desktop Plane"
+#~ msgstr "Desktop piano"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Posiziona le finestre su un piano"
+
+#~ msgid "Plane Down"
+#~ msgstr "Piano in giù"
+
+#~ msgid "Plane Left"
+#~ msgstr "Piano a sinistra"
+
+#~ msgid "Plane Right"
+#~ msgstr "Piano a destra"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Vai al piano della faccia 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Vai al piano della faccia 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Vai al piano della faccia 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Vai al piano della faccia 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Vai al piano della faccia 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Vai al piano della faccia 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Vai al piano della faccia 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Vai al piano della faccia 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Vai al piano della faccia 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Vai al piano della faccia 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Vai al piano della faccia 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Vai al piano della faccia 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Piano in su"
+
+#~ msgid "Plane down"
+#~ msgstr "Va al piano inferiore"
+
+#~ msgid "Plane left"
+#~ msgstr "Va al piano a sinistra"
+
+#~ msgid "Plane right"
+#~ msgstr "Va al piano a destra"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Va al piano 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Va al piano 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Va al piano 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Va al piano 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Va al piano 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Va al piano 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Va al piano 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Va al piano 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Va al piano 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Va al piano 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Va al piano 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Va al piano 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Va al piano superiore"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..809972b
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,3196 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2009-02-04 23:43+0900\n"
+"Last-Translator: jiro kawada <jiro.kawada@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "デスクトップ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "ウィンドウ管理"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "なし"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "シェード"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "水平方向に最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "垂直方向に最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "最小化"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "最前面へ"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "最後面へ"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "ウィンドウメニュー"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"ウィンドウのタイトルバー上でマウスホイールをスクロールさせたときのアクション"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "ブラーの種類"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity テーマのアクティブ・ウィンドウの不透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity テーマのアクティブ・ウィンドウの半透明シェード"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity テーマの不透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity テーマの半透明シェード"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Metacity テーマ装飾のアクティブ・ウィンドウに使用する不透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Metacity テーマ装飾に使用する不透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Metacity テーマ装飾のアクティブ・ウィンドウを不透明から透明にシェードさせる"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "Metacity テーマ装飾のウィンドウを不透明から透明にシェードさせる"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "タイトルバーのマウスホイール・アクション"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "ウィンドウ装飾用のブラーの種類"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Metacity テーマを使用"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "ウィンドウ装飾を描画する際に Metacity テーマを使用"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "ウィンドウを閉じる"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "ウィンドウの最大化解除"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "ウィンドウを最大化"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "ウィンドウを最小化"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "最前面に表示"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "スティック"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "シェード解除"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "最前面表示解除"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "スティッキー解除"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "ウィンドウ \"%s\" は応答していません。"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"このアプリケーションを強制的に終了させると、未保存の変更はすべて失われます。"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "強制終了(_F)"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "注釈線"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "注釈線の塗り色"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "注釈のストロークの色"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "注釈線プラグイン"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "消去"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "描画"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "ツールを使用して描画"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "注釈線の塗り色"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "開始"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "注釈線の描画を開始"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "注釈線の削除を開始"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "削除開始"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "線幅"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "注釈線の線幅"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "注釈線のストロークの色"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "ストロークの幅"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "注釈線のストロークの幅"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x バイリニア"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "アルファ・ブラー"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "アルファ・ブラー対象ウィンドウ"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "ブラーフィルタ"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "ブラー遮蔽"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "ブラー彩度"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "ブラー速度"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "ウィンドウのブラー"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "ウィンドウの透過部分の背後をぼかす"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "ぼかしの彩度"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "ウィンドウをぼかす"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "フォーカスがないウィンドウをぼかす"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "他のウィンドウで覆い隠された画面域のブラーを無効化"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "ブラーに使用するフィルタ方法"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "フォーカス・ブラー"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "フォーカス・ブラー対象ウィンドウ"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "ガウス"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "ガウス半径"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "ガウス強度"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "ガウス半径"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "ガウス強度"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "テクスチャの独立読み出し"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "ミップマップ"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "ミップマップ詳細レベル"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "ミップマップの詳細レベル"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "点滅"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "点滅効果"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"利用可能なテクスチャ・ユニットを使用してテクスチャを可能な限り多く独立読み出"
+"しさせる"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "ウィンドウ・ブラーの速度"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "フォーカス・ブラーの効果対象ウィンドウ"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "デフォルトでアルファ・ブラー使用対象にするウィンドウ"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "クローン出力"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "複製選択の開始"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "クローン出力ハンドラ"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"呼び出し時にコマンドライン 0 で指定したシェルコマンドを実行するキー割り当て"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"呼び出し時に コマンドライン 1 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"呼び出し時に コマンドライン 10 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"呼び出し時に コマンドライン 11 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"呼び出し時に コマンドライン 2 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"呼び出し時に コマンドライン 3 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"呼び出し時に コマンドライン 4 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"呼び出し時に コマンドライン 5 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"呼び出し時に コマンドライン 6 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"呼び出し時に コマンドライン 7 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"呼び出し時に コマンドライン 8 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"呼び出し時に コマンドライン 9 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"呼び出し時にコマンドライン 0 で指定したシェルコマンドを実行するキー割り当て"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"呼び出し時に コマンドライン 1 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"呼び出し時に コマンドライン 10 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"呼び出し時に コマンドライン 11 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"呼び出し時に コマンドライン 2 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"呼び出し時に コマンドライン 3 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"呼び出し時に コマンドライン 4 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"呼び出し時に コマンドライン 5 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"呼び出し時に コマンドライン 6 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"呼び出し時に コマンドライン 7 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"呼び出し時に コマンドライン 8 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"呼び出し時に コマンドライン 9 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"呼び出し時にコマンドライン 0 で指定したシェルコマンドを実行するキー割り当て"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"呼び出し時に コマンドライン 1 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"呼び出し時に コマンドライン 10 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"呼び出し時に コマンドライン 11 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"呼び出し時に コマンドライン 2 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"呼び出し時に コマンドライン 3 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"呼び出し時に コマンドライン 4 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"呼び出し時に コマンドライン 5 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"呼び出し時に コマンドライン 6 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"呼び出し時に コマンドライン 7 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"呼び出し時に コマンドライン 8 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"呼び出し時に コマンドライン 9 で指定されたシェルコマンドを実行するキー割り当"
+"て"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "割り当て"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "コマンドライン 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "コマンドライン 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "コマンドライン 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "コマンドライン 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "コマンドライン 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "コマンドライン 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "コマンドライン 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "コマンドライン 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "コマンドライン 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "コマンドライン 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "コマンドライン 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "コマンドライン 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "コマンド 0 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "コマンド 1 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "コマンド 10 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "コマンド 11 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "コマンド 2 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "コマンド 3 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "コマンド 4 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "コマンド 5 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "コマンド 6 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "コマンド 7 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "コマンド 8 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "コマンド 9 を実行 の呼び出し時にシェルで実行されるコマンドライン"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "コマンド"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "割り当て"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "キー割り当て"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "コマンド 0 を実行"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "コマンド 1 を実行"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "コマンド 10 を実行"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "コマンド 11 を実行"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "コマンド 2 を実行"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "コマンド 3 を実行"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "コマンド 4 を実行"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "コマンド 5 を実行"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "コマンド 6 を実行"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "コマンド 7 を実行"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "コマンド 8 を実行"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "コマンド 9 を実行"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "アクティブなプラグイン"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"オフスクリーン・ピクスマップにリダイレクトしない直接の全画面ウィンドウ描画を"
+"許可"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "音響ベル"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "音響システムビープ音"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "自動で最前面に上げる"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "自動最前面移動の待ち時間"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "出力デバイスの自動検出"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "リフレッシュレートの自動検出"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "最高"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "クリックでフォーカス"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "ウィンドウのクリックで入力フォーカスがそのウィンドウに移動"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "アクティブなウィンドウを閉じる"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "デフォルトのアイコン"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "デフォルトのウィンドウアイコン画像"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "デスクトップサイズ"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "出力検出"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "リフレッシュレートの検出"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "ディスプレイ設定"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"エッジ・アクションの開始に必要なスクリーンエッジへのポインタ配置の継続時間"
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "エッジ開始遅延時間"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "速さ重視"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "フォーカスとその関連動作"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "フォーカス奪取防止レベル"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "フォーカス奪取防止ウィンドウ"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "フォーカスを奪われないようにするウィンドウ"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "各出力別に独立した描画を強制"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "一般オプション"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Compiz の一般オプション"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "良"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "タスクバー省略ウィンドウを隠す"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "全ウィンドウを隠してデスクトップにフォーカス"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"\"デスクトップの表示\"モード移行時にタスクバーにないウィンドウ(ウィジェット"
+"等)を隠す"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "高"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "水平仮想サイズ"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "利用可能な場合は画像から変換されたテクスチャに圧縮を使用する"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "最大化時にヒントを無視"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "ウィンドウ最大化時に、サイズ加算分と縦横比のジオメトリ・ヒントを無視"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "選択ウィンドウの最前面への持ち上げを開始するまでの時間間隔"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Ping メッセージ間の間隔"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "キー割り当て"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "フォーカス奪取防止のレベル"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "照明"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "現在アクティブなプラグインのリスト"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "出力デバイスを表す文字列リスト"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "低"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "ウィンドウを下げる"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "他のウィンドウの下にウィンドウを下げる"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "水平方向にウィンドウを最大化"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "垂直方向にウィンドウを最大化"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "アクティブなウィンドウを最大化"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "アクティブなウィンドウを水平方向に最大化"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "アクティブなウィンドウを垂直方向に最大化"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "アクティブなウィンドウを最小化"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "通常"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "デスクトップ数"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "仮想デスクトップ数"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "オフ"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "垂直帰線期間にのみ画面を更新する"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "出力"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "重なった出力の取扱い"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr "出力デバイス同士に重なりがある場合でも、それぞれを別個に描画"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping の待ち時間"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "大きい方の出力を選好"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "小さい方の出力を選好"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "クリックで上げる"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "ウィンドウを上げる"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "指定時間間隔後に選択ウィンドウを最前面に上げる"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "ウィンドウを他のウィンドウの前面に上げる"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "クリックでウィンドウを最前面に上げる"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "リフレッシュレート"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "水平仮想サイズ指定のための、画面サイズに対する乗数"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "垂直仮想サイズ指定のための、画面サイズに対する乗数"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "デスクトップの表示"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "アニメーションのスロー再生"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "スマートモード"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "垂直ブランクに同期化"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "テクスチャ圧縮"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "テクスチャ・フィルタ"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "テクスチャ・フィルタ"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "画面の再描画レート(回/秒)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "ウィンドウの最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "ウィンドウの水平方向最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "ウィンドウの垂直方向最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "ウィンドウのシェード/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "アクティブ・ウィンドウの最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "アクティブ・ウィンドウの水平方向最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "アクティブ・ウィンドウの垂直方向最大化/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "アクティブ・ウィンドウのシェード/解除の切り替え"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "スロー再生アニメーション使用のオンオフ"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "アクティブ・ウィンドウの最大化解除"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "全画面ウィンドウのリダイレクトを解除"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "画面の変換時に拡散反射光を使用"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "垂直仮想サイズ"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "非常に高"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "出力に重なり部分がある場合にどちらのデバイスが選好されるべきか"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "ウィンドウメニューのボタン割り当て"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "ウィンドウメニューのキー割り当て"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "加速度"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "画像の調整"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "上面画像を回転に合わせる"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "次のスライドに進む"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "スカイドームをアニメーション化"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "キューブの回転時にスカイドームをアニメーション化"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "外観"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "自動調整"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "動作"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "キューブの上部および下部の面のカラー"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"スカイドームフォールバックグラデーションの下部カラーストップに使用する色"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"スカイドームフォールバックグラデーションの上部カラーストップに使用する色"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "キューブのふた"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "キューブの色"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "デスクトップ・キューブ"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "展開加速度"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "展開速度"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "展開描画の刻み時間"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "高品質スケーリングが可能な場合ミップマップを生成"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "前のスライドに戻る"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "画像ファイル"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "スカイドームのテクスチャとして使用する画像"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "マウスによる回転時のみキューブの透明化を開始"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "キューブ内部"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "キューブ内部"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "キューブの上面に描画するPNGおよびSVGファイルのリスト"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "マルチ出力の形式"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "複数のキューブ"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "次のスライド"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "1つの大きなキューブ"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "回転時の不透明度"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "非回転時の不透明度"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "回転時のデスクトップ・ウィンドウの不透明度"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "非回転時のデスクトップ・ウィンドウの不透明度"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "ウィンドウをキューブに配置"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "前のスライド"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "スカイドームの描画"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "画像を拡大"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "キューブの上面を覆うように画像を拡大"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "複数の出力デバイス使用の場合におけるキューブ表示方法の選択"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "スカイドーム"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "スカイドームグラデーション終了色"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "スカイドームグラデーション開始色"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "スカイドーム画像"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "速度"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "描画の刻み時間"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "マウスによる回転時のみ透明化を使用"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "透明なキューブ"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "展開"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "キューブを展開"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus 制御バックエンド"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "装飾テキスチャ用ミップマップの生成を許可"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "コマンド"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "装飾適用ウィンドウ"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "デコレータ未動作の場合に実行されるデコレータ起動コマンドライン"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "落とす影のオフセット X 座標"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "落とす影のオフセット Y 座標"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "落とす影の色"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "落とす影の不透明度"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "落とす影の半径"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "影の色"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "影オフセット X 座標"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "影オフセット Y 座標"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "影の不透明度"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "影の半径"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "影付けウィンドウ"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "ウィンドウの装飾"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "ウィンドウを装飾"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "装飾の適用対象ウィンドウ"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "影を付ける対象ウィンドウ"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "不応答ウィンドウの明度(パーセント)"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "一定速度"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "一定時間"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "不応答ウィンドウを薄暗くする"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "ウィンドウ・マネージャの要求に応答しないウィンドウを薄暗くする"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "フェード・モード"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "最小化/開く/閉じる 時にフェード"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "フェード速度"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "フェード時間"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "最小化/開く/閉じる イベント時のフェード効果"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "システムビープ音時のフェード効果"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "ウィンドウが開かれた時フェードイン、閉じた時フェードアウト"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "フェード・ウィンドウ"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "ウィンドウのフェード"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "全画面効果による視覚ベル"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "システムビープ音イベント時の全画面フェード効果"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "不応答ウィンドウの彩度(パーセント)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "不応答ウィンドウの明度"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "不応答ウィンドウの彩度"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "視覚ベル"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "ウィンドウのフェード形式"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "「一定速度」モードのウィンドウのフェード速度"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "「一定時間」モードのウィンドウのフェード時間(ミリ秒)"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "フェードさせる対象ウィンドウ"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "マウントポイント"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "マウントポイント"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "ユーザ空間ファイルシステム"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "ユーザ空間ファイルシステム"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf 制御バックエンド"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib main loop サポート"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "端末を開く"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "アプリケーション実行ダイアログ"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "端末起動コマンド"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "スクリーンショットのコマンドライン"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "メインメニューの表示"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "\"アプリケーションの実行\"ダイアログの表示"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "メインメニューの表示"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "スクリーンショットを撮る"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "ウィンドウのスクリーンショットを撮る"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "端末起動コマンドライン"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "ウィンドウ・スクリーンショットのコマンドライン"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Flat File バックエンドの開始"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ファイル変更通知プラグイン"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig 制御バックエンド"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "最小化時の効果"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "最小化時効果ウィンドウ"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "最小化速度"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "最小化の描画刻み時間"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "シェード抵抗"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "シェード抵抗"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "最小化および最小化解除時のウィンドウの拡縮"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "最小化の際に縮尺させる対象ウィンドウ"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Y 座標制約"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y 座標をワークスペースエリアに制約"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "ウィンドウの移動完了までXサーバ側での配置位置を更新しない"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "ウィンドウの移動開始"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "緩慢な位置取り"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "ウィンドウの移動"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "ウィンドウの移動"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "不透明度"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "移動ウィンドウの不透明度"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "最大化ウィンドウのドラッグ時、スナップを解除して最大化を自動解除"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "最大化したウィンドウのスナップ解除"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "ウィンドウの移動を開始"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "明度"
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr "明度を下げる"
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr "明度を上げる"
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr "明度の変化刻み"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr "ウィンドウに適用する明度"
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr "下げる"
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr "上げる"
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr "不透明度を下げる"
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr "不透明度を上げる"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "不透明度の変化刻み"
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr "ウィンドウの不透明度"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr "不透明度・明度・彩度"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr "不透明度や明度、彩度の調節"
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "彩度"
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr "彩度を下げる"
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr "彩度を上げる"
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr "彩度の変化刻み"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr "ウィンドウに適用する彩度"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr "変化刻み"
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr "ウィンドウ特定設定"
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr "ウィンドウの値"
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr "ウィンドウ"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr "デフォルトで他と異なる明度を持たせるウィンドウ"
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr "デフォルトで他と異なる不透明度を持たせるウィンドウ"
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr "デフォルトで他と異なる彩度を持たせるウィンドウ"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "ウィンドウ配置に使用するアルゴリズム"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "カスケード"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "中央"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "固定ウィンドウ配置位置"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "強制配置ウィンドウ"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "水平ビューポート位置"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "ワークエリアに限定"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"結果として指定位置とは異なってしまう場合でも、ウィンドウの配置位置をワークエ"
+"リア内に限定。"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "ウィンドウの配置"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "すべての出力デバイスにわたって配置"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "ウィンドウが開かれた際の適切な位置への配置"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "配置形式"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "固定位置ウィンドウ"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "ランダム"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "マルチ出力が選択されている場合の、ウィンドウ配置の振る舞いの選択"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "スマート"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "アクティブ状態の出力デバイスを使用"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "フォーカス・ウィンドウの出力デバイスを使用"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "ポインタが置かれている出力デバイスを使用"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "垂直ビューポート位置"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "固定ビューポート・ウィンドウ"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "モーダルダイアログ向けの配置問題回避策"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "デフォルトで特定位置に配置するウィンドウ"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "デフォルトで特定ビューポートに配置するウィンドウ"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"強制的に配置させるウィンドウ。ウィンドウ・マネージャに配置の対象外とするよう"
+"にウィンドウが指示している場合でも配置します。"
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "固定位置に配置するウィンドウ"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "固定ビューポートに配置するウィンドウ"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "回避策"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X 位置"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X ビューポート位置"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X 位置の値"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y 位置"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y ビューポート位置"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y 位置の値"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png 画像読み込み"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "正規表現マッチング"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "正規表現による対象ウィンドウのマッチング"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "割り当て"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "境界線の色"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "輪郭や矩形のサイズ変更描画形式で使用する境界線の色"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "デフォルトのサイズ変更形式"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "ウィンドウのサイズ変更に使用するデフォルトの描画形式"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "塗り色"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "矩形のサイズ変更描画形式に使用する塗り色"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "通常形式のサイズ変更開始"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "輪郭形式のサイズ変更開始"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "矩形形式のサイズ変更開始"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "伸縮形式のサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "ウィンドウのサイズ変更開始"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "通常サイズ変更ウィンドウ"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "輪郭"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "輪郭サイズ変更ウィンドウ"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "矩形"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "矩形サイズ変更ウィンドウ"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "ウィンドウのサイズ変更"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "ウィンドウのサイズ変更"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "ウィンドウのサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "伸縮形式のウィンドウのサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "通常形式のウィンドウのサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "輪郭形式のウィンドウのサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "矩形形式のウィンドウのサイズ変更を開始"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "伸縮"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "伸縮サイズ変更ウィンドウ"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "サイズ変更描画に通常形式を使用するウィンドウ"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "サイズ変更描画に輪郭形式を使用するウィンドウ"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "サイズ変更描画に矩形形式を使用するウィンドウ"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "サイズ変更描画に伸縮形式を使用するウィンドウ"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "エッジへのドラッグ&ドロップでフリップ"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "エッジへの移動でフリップ"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "エッジへのポインタ移動でフリップ"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "フリップ開始時間"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "左ビューポートにフリップして、ポインタをワープ"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "オブジェクトを画面端にドラッグした際に、次のビューポートにフリップ"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "ポインタを画面端に移動した際に、次のビューポートにフリップ"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "ウィンドウを画面端に移動した際に、次のビューポートにフリップ"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "右ビューポートにフリップして、ポインタをワープ"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "ポインタ移動の Y 軸を反転"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "ポインタ操作の Y 反転"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "ポインタ感度"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "回転時に前面に上げる"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "回転時にウィンドウを上げる"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "キューブの回転"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "左にフリップ回転"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "右にフリップ回転"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "左に回転"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "左に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "右に回転"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "右に回転(ウィンドウと一緒に)"
+
+# ※ バインドそのものではなく単なるその見出し。CCSMはアルファベットでソートして表示するので日本語だと変な位置に表示され紛らわしい。
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "指定先に回転"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "面 1 に回転"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "面 1 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "面 10 に回転"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "面 10 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "面 11 に回転"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "面 11 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "面 12 に回転"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "面 12 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "面 2 に回転"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "面 2 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "面 3 に回転"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "面 3 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "面 4 に回転"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "面 4 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "面 5 に回転"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "面 5 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "面 6 に回転"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "面 6 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "面 7 に回転"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "面 7 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "面 8 に回転"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "面 8 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "面 9 に回転"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "面 9 に回転(ウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "キューブの回転"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "デスクトップ・キューブの回転"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "左に回転"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "左に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "右に回転"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "右に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "特定キューブ面に回転"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "ウィンドウと一緒に特定キューブ面に回転"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "面 1 に回転"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "面 1 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "面 10 に回転"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "面 10 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "面 11 に回転"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "面 11 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "面 12 に回転"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "面 12 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "面 2 に回転"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "面 2 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "面 3 に回転"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "面 3 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "面 4 に回転"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "面 4 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "面 5 に回転"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "面 5 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "面 6 に回転"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "面 6 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "面 7 に回転"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "面 7 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "面 8 に回転"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "面 8 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "面 9 に回転"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "面 9 に回転(アクティブなウィンドウと一緒に)"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "ビューポートに回転"
+
+# ※ ”Rotate to” の翻訳者コメント参照のこと
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "指定先にウィンドウと一緒に回転"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "ウィンドウと一緒に回転"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "回転の加速度"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "回転速度"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "回転の刻み時間"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "回転時のズーム距離"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "ポインタの移動感度"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "キューブ回転をキューブ下面にスナップ"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "キューブ回転をキューブ上面にスナップ"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "キューブ下面にスナップ"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "キューブ上面にスナップ"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "回転の開始"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "ビューポートのフリップ移動を開始する前のタイムアウト"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "ズーム"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "不透明度(%)"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "大きい"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "ボタンによるスケール・モードのオンオフ"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"ボタンを離すとスケール・モードが無効になる基本動作を、ボタンを押すたびにオン"
+"オフが切り替わる動作に代える"
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "デスクトップのクリックでデスクトップの表示"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "背景を暗くする"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "ウィンドウのスケール時に背景を暗くする"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "エンブレム"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"スケール中にデスクトップがクリックされたとき\"デスクトップの表示\"モードに入"
+"る"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "ホバー時間"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "ウィンドウピッカー起動"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "すべてのウィンドウ対象のウィンドウピッカー起動"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "ウィンドウグループ対象のウィンドウピッカー起動"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "現在の出力上ウィンドウ対象のウィンドウピッカー起動"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "キーによるスケール・モードのオンオフ"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"キーを離すとスケール・モードが無効になる基本動作を、キーを押すたびにオンオフ"
+"が切り替わる動作に代える。"
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "すべてのウィンドウを配列して変換を開始"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "ウィンドウグループを配列して変換を開始"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "ウィンドウを配列して変換を開始"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "現在の出力デバイス上のウィンドウを配列して変換を開始"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "すべての出力デバイス上に"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "現在の出力デバイス上に"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "重ね表示アイコン"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "ウィンドウ調整後にアイコンを重ね表示"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "スケール"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "スケール・ウィンドウ"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "スケール速度"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "スケール位置算出の刻み時間"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "ウィンドウのスケール"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"複数の出力デバイスを使用している場合に、ウィンドウをどこにスケールするかの選"
+"択"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "ウィンドウ間の間隔の大きさ"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "間隔"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "ウィンドウ上でのホバー時に、スケールモードを終了するまでの時間(ミリ秒)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "スケールモードでスケールされる対象ウィンドウ"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "スクリーンショット画像をこのアプリケーションで自動的に開く"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "ディレクトリ"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "矩形選択スクリーンショットを開始"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "起動アプリケーション"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "スクリーンショット画像をこのディレクトリに置く"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "スクリーンショット"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "スクリーンショット・プラグイン"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg 画像読み込み"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "明るさの量(%)"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "鮮やかさの量(%)"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "アプリケーション・スイッチャー"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "自動回転"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "手前に提示"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "選択ウィンドウを手前に提示"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "ウィンドウのスイッチ中にデスクトップがズームアウトされる距離"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "アイコン"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "最小化"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "次のパネル"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "次のウィンドウ"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "次のウィンドウ(全ウィンドウから)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "次のウィンドウ(ポップアップなし)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "スイッチャーが非表示の場合ポップアップして、次のウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"スイッチャーが非表示の場合ポップアップして、すべてのウィンドウから次のウィン"
+"ドウを選択"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "スイッチャーが非表示の場合ポップアップして、前のウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"スイッチャーが非表示の場合ポップアップして、すべてのウィンドウから前のウィン"
+"ドウを選択"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "前のパネル"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "前のウィンドウ"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "前のウィンドウ(全ウィンドウから)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "前のウィンドウ(ポップアップなし)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "スイッチ中に選択ウィンドウへ回転"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "次のパネルタイプのウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "ポップアップウィンドウ表示なしで次のウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "前のパネルタイプのウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "ポップアップウィンドウ表示なしで前のウィンドウを選択"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "サムネイルの隣にアイコンを表示"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "最小化されているウィンドウも表示"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "スイッチャー速度"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "スイッチャー描画の刻み時間"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "スイッチャー・ウィンドウ"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "スイッチャーに表示する対象ウィンドウ"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 色空間のサポートを提供"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "動画再生"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "動画再生"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 色空間"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "線を追加"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "点を追加"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "異なるデスクトップアクションに水効果を追加"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "各水滴間の遅延時間(ミリ秒)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "ポインタの水効果を有効にする"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "線"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "オフセットスケール"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "点"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "雨の待ち時間"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "タイトルの波"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "雨の切り替え"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "雨効果の切り替え"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "ワイパーの切り替え"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "ワイパー効果の切り替え"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "水効果"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "水オフセットスケール"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "ウィンドウタイトルからウェーブ効果"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "フォーカス時の効果"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "ウィンドウがフォーカスされた時の効果"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "フォーカス時効果ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "摩擦"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "つかみ時効果ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "グリッド解像度"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "ウィンドウ・スナップの切り替え"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "ウィンドウを震動させる"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "開いた時の効果"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "ウィンドウが開かれた時の効果"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "開く時効果ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "最大化時の効果"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "最小グリッドサイズ"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "最小頂点グリッドサイズ"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "移動時効果ウィンドウ"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "震動"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "スナップの切り替え"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "ウィンドウをスナップ"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "バネ摩擦"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "バネ定数"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "バネ定数"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "ウィンドウスナップの切り替え"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "揺れるウィンドウ効果用にバネモデルを使用"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "頂点グリッド解像度"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "フォーカス時に揺ゆらす対象ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "つかまれた時に揺らす対象ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "開いた時に揺らす対象ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "移動時に揺らす対象ウィンドウ"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "ウィンドウの最大化および最大化解除時に揺れる効果"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "揺れるウィンドウ"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "線形フィルタ"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "ズームイン時に線形フィルタを使用"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "デスクトップのズーム"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "ズームイン"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "ズームアウト"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "ズーム域の移動"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "ズーム速度"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "ズーム描画刻み時間"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "デスクトップ・キューブのズームとズーム域移動"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "ズーム係数"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "ズーム域の移動"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "コマンドライン 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "コマンド 1 を実行"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "スクリーンショットのコマンド"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "スクリーンショットのキー割り当て"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "ウィンドウの不透明度を下げる"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "ウィンドウの不透明度を上げる"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "デフォルトで半透明化の対象にするウィンドウの不透明度"
+
+#~ msgid "Opacity windows"
+#~ msgstr "半透明対象ウィンドウ"
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 0000000..f3fb364
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,3043 @@
+# Georgian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Aiet Kolkhi <aiet@qartuli.net>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2005-05-18 10:33+0200\n"
+"Last-Translator: Aiet Kolkhi <aiet@qartuli.net>\n"
+"Language-Team: Georgian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
diff --git a/po/km.po b/po/km.po
new file mode 100644
index 0000000..ea93782
--- /dev/null
+++ b/po/km.po
@@ -0,0 +1,3769 @@
+# Khmer message file for YaST2 (@memory@).
+# Copyright (C) 2006 SUSE Linux Products GmbH.
+# Leang Chumsoben <soben@khmeros.info>, 2005, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2006-01-04 08:58+0100\n"
+"Last-Translator: Leang Chumsoben <soben@khmeros.info>\n"
+"Language-Team: Khmer <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "ផ្ទៃតុ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "កម្មវិធីគ្រប់គ្រងបង្អួច"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "គ្មាន"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "ម៉ាស៊ីន​ស្កេន"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "AutoYast"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "កម្មវិធីគ្រប់គ្រងបង្អួច"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "បាន​ជ្រើស"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "លុប​វ៉ីនដូ​ទាំង​ស្រុង"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "លុប​វ៉ីនដូ​ទាំង​ស្រុង"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+#, fuzzy
+msgid "Minimize Window"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "ពណ៌"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "សកម្ម"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "ជម្រះ"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "តម្រង ៖ "
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "កំណត់​តម្រង"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "ថិរវេលា"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "ថិរវេលា"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "បាន​ជ្រើស"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "ថិរវេលា"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "ម៊ិកម៉ា"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "ម៊ិកម៉ា"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "លទ្ធផល​គឺ"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "ពាក្យបញ្ជា '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "ពាក្យបញ្ជា '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "ពាក្យបញ្ជា '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "ពាក្យបញ្ជា '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "សកម្ម"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "ប្រព័ន្ធ​ឯកសារ"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "AutoYast"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "ដែន​លំនាំ​ដើម"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "ដែន​លំនាំ​ដើម"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "ជ្រើស​ដើម្បី​ធ្វើ​ឲ្យ​ទាន់​សម័យ"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "អនុញ្ញាត​ឲ្យ​ផ្អាក​ស្វ័យប្រវត្តិ"
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "ការ​ចូល"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "រាយ​តែ​ម៉ាស៊ីន​បោះពុម្ព​ដែល​បាន​រកឃើញ"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "សូរប៊ីយ៉ាន​ក្រោម"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "ធម្មតា"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+#, fuzzy
+msgid "Outputs"
+msgstr "លទ្ធផល​គឺ"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "ពន្យារពេល"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "នាឡិកា​វិទ្យុ"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "ធ្វើ​ឲ្យ​ស្រស់"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "ការ​ធ្វើ​តាម"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "កំណត់​តម្រង"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "កំណត់​តម្រង"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "កំណត់​តម្រង"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "ជម្រើស​កម្រិត​ខ្ពស់"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "AutoYast"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ពណ៌"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "ពណ៌"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "បាន​ជ្រើស"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "សាកល្បង"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "មុន"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "ឯកសារ​រូបភាព ISO"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "ទំហំ​ថ្មី"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "មុន"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "រូបភាព ISO"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "រូបភាព ISO"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "បាន​ជ្រើស"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "សាកល្បង"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "ពាក្យបញ្ជា ៖ "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "កាំ"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "កាំ"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "កាំ"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "គ្មាន​សេចក្ដី​ពណ៌នា"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ជម្រើស ypbind"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "សាកល្បង"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "មាន"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "ពេល​វេលា​ពិត​ប្រាកដ"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "បាន​ជ្រើស"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "ពេល​វេលា​ពិត​ប្រាកដ"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "ប្រព័ន្ធ​ឯកសារ"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "ឧបករណ៍​ប៉ះអេក្រង់"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "បន្ថែម​ទំនាក់​ទំនង"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "បន្ថែម​ទំនាក់​ទំនង"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "រត់​ក្នុង​ស្ថានីយ"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "ការ​ហៅ​ឮ​សម្លេង"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+#, fuzzy
+msgid "Show Main Menu"
+msgstr "បង្កើតម៉ឺនុយ​ចាប់ផ្ដើម"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+#, fuzzy
+msgid "Show the main menu"
+msgstr "បង្កើតម៉ឺនុយ​ចាប់ផ្ដើម"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "កុំ​ចុះ​កំណត់ហេតុ​អ្វី​ទាំងអស់"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "កុំ​ចុះ​កំណត់ហេតុ​អ្វី​ទាំងអស់"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "មាន"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "ផ្លាស់ទី​ចុះ​ក្រោម"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "ផ្លាស់ទី​ចុះ​ក្រោម"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Bridge"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "អុកស៊ីតង់ (ក្រោយ​ឆ្នាំ ១៥០០)"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "អុកស៊ីតង់ (ក្រោយ​ឆ្នាំ ១៥០០)"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "សមត្ថភាព​ទាប"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "ថិរវេលា"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "ថិរវេលា"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "ថិរវេលា"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "ថិរវេលា"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ជម្រើស ypbind"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "កម្មវិធីគ្រប់គ្រងបង្អួច"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ជម្រើស ypbind"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ជម្រើស ypbind"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "ក្រុម​ការងារ"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "ឧបករណ៍​និម្មិត"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "ពណ៌"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "ពណ៌"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "ពណ៌"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "ផ្លាស់​ប្ដូរ​ទំហំ"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "ពេល​វេលា​ពិត​ប្រាកដ"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "ទ្រនិចចង្អុរ​ទៅ %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "ការពិពណ៌នា​អំពី​ម៉ាស៊ីន​បោះពុម្ព"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Subnet ពី​ចម្ងាយ"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "ទៅ​ស្ដាំ"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "ទៅ​ស្ដាំ"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Subnet ពី​ចម្ងាយ"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "ទៅ​ស្ដាំ"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Subnet ពី​ចម្ងាយ"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Subnet ពី​ចម្ងាយ"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Subnet ពី​ចម្ងាយ"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "ទៅ​ស្ដាំ"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "សាកល្បង"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "សាកល្បង"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "សាកល្បង"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "ចាប់ផ្ដើម​រក"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "ចេញ"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "ធំ"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "ផ្ទៃ​ខាង​ក្រោយ"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "ថាស​សតិ​ដំបូង"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "ម៉ាស៊ីន​ស្កេន"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "អេស៉្បាញ"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "ថត\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "អ៊ីទីតេ"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "បើក​កម្មវិធី​មួយ"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "អេក្រង់"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "លំដាប់​កម្មវិធី"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "AutoYast"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "កំឡុង​ពេល​ចាប់ផ្ដើម​ឡើង"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "រូប​តំណាង"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "មុន"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "ប្ដូរ​ស្គ្រីប"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "បន្ថែម​តំណ"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "បន្ថែម​ទំនាក់​ទំនង"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "ពន្យារពេល"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "អំពើ"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "គុណភាព​បង្ហាញ"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "ទំហំ​សំបុត្រ​អតិបរមា"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "ទំហំ​សំបុត្រ​អតិបរមា"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "ផ្លាស់ទី​ចុះ​ក្រោម"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "កម្មវិធី​បញ្ជា"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "អំពើ"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "ការ​ចែក​រំលែក"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "ការ​ចែក​រំលែក"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "លុប​វ៉ីនដូ​"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "ដំណោះស្រាយ​ម៉ាស៊ីន​បម្រើ"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "វ៉ីនដូ"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "តម្រង ៖ "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "ផ្ទៃតុ"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "ចេញ"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "ចេញ"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "ចេញ"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "បាន​ជ្រើស"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "សាកល្បង"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "បង្វិល​អេក្រង់"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "ចេញ"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "ចេញ"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "ពាក្យបញ្ជា ៖ "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "ពាក្យបញ្ជា '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "មាន​កំហុស ខណៈ​ពេល​កំពុង​ញែក​បន្ទាត់​ពាក្យ​បញ្ជា​។"
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "លុប​វ៉ីនដូ​ទាំង​ស្រុង"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Subnet ពី​ចម្ងាយ"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "ទៅ​ស្ដាំ"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Subnet ពី​ចម្ងាយ"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "ទៅ​ស្ដាំ"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "ឧបករណ៍"
+
+#~ msgid "Menu"
+#~ msgstr "ម៉ឺនុយ"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "ថាស​ឧបករណ៍​ប្រើប្រាស់..."
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "ការ​ហៅ​ឮ​សម្លេង"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "កម្មវិធីគ្រប់គ្រងបង្អួច"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "ម៉ឺនុយ"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "ឧបករណ៍"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "ការ​ជូនដំណឹង"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "ឧបករណ៍​ប៉ះអេក្រង់"
+
+#~ msgid "Unknown"
+#~ msgstr "មិន​ស្គាល់"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "ថិរវេលា"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "កុំ​ចុះ​កំណត់ហេតុ​អ្វី​ទាំងអស់"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "សមត្ថភាព​ទាប"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "កាំ"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "សាកល្បង"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "វ៉ីនដូ"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "បន្ថយ​ទំហំ​ភាគ​របស់​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "ទំហំ​សំបុត្រ​អតិបរមា"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "ផ្ទៃតុ"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "អុកស៊ីតង់ (ក្រោយ​ឆ្នាំ ១៥០០)"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "ការ​បង្កើន​ល្បឿន 3D ៖ "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "សាកល្បង"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "ពេលវេលា​មូលដ្ឋាន"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "លុប​វ៉ីនដូ​"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "អំពើ"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ការ​ចែក​រំលែក"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "ប្ដូរ​ស្គ្រីប"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "កំណត់​តម្រង"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "ដំណោះស្រាយ​ម៉ាស៊ីន​បម្រើ"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "វ៉ីនដូ"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "វ៉ីនដូ"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "បាន​ជ្រើស"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "សាកល្បង"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "ចេញ"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "បង្វិល​អេក្រង់"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "ពាក្យបញ្ជា ៖ "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "ពាក្យបញ្ជា ៖ "
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "ប្រភេទ​ក្រុមហ៊ុន​ផ្ដល់"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "កូនីស"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "ថាស​ទន់"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "កំពុង​ចាប់ផ្តើម​ដេមិន ។"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "ស្ថានីយ"
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 0000000..9bb5fb4
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,3246 @@
+# Korean compiz translation.
+# Copyright (C) 2007 compiz-fusion.org
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the compiz package.
+# Lee June Hee <bugbear5@gmail.com>, 2007.
+# Hwang, Sang-Jin <violiet@suse.de>
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz 0.6.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2009-01-06 05:35+0100\n"
+"Last-Translator: Lee June Hee <bugbear5@gmail.com>\n"
+"Language-Team: Korean <bugbear5@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "데스크탑"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "창 관리"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "컴피즈"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "없음"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "말아올리기"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "최대화"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "가로로 최대화"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "세로로 최대화"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "최소화"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "올림"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "낮음"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "창 메뉴"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "창 제목 표시줄에서 마우스 휠 스크롤시 취할 행동"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "흐림 형태"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "활성화된 창의 메타시티 테마 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "활성화된 창의 메타시티 테마 그림자 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "메타시티 테마 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "메타시티 테마 그림자 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "메타시티 테마를 가진 활성화된 창에서 사용할 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "메타시티 테마에 사용할 투명도"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "메타시티 테마를 사용하는 활성화된 창의 그림자 투명도를설정합니다."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "메타시티 테마를 사용하는 창의 그림자 투명도를 설정합니다."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "제목 표시줄에서 마우스 휠 사용시 할 행동"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "창 장식에서 사용할 흐림 효과의 형태"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "메타시티 테마를 사용합니다."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "창 장식을 그릴 때 메타시티 테마를 사용합니다."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "창 닫기"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "창 최대화 취소"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "창 최대화"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "창 최소화"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "항상 위에"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "끈적이 창 설정"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "말아올리기 해제"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "항상 위에 해제"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "끈적이 창 해제"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "창 \"%s\"가 응답하지 않습니다."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "이 응용프로그램을 강제로 종료하면 저장하지 않은 데이터는 손실됩니다."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_강제 종료"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "주석"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "주석의 채우기 색"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "주석의 외곽선 색"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "주석 플러그인"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "지우기"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "그리기"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "도구를 사용하여 그림을 그림"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "주석의 채우기 색"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "시작"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "주석 그리기를 시작"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "주석 지우기를 시작"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "지우기 시작"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "선 너비"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "주석의 선 너비"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "주석의 외곽선 색"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "테두리 너비"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "주석의 테두리 너비"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x 양선형"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "투명 흐림 효과"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "투명 창 흐림 효과"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "흐림 효과 필터"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "흐림 효과 폐색"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "흐림 효과 채도"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "흐림 효과 속도"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "창 흐림 효과"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "창의 투명한 부분 뒷면을 흐리게 합니다."
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "흐림 효과 채도"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "창 흐림 효과"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "초점을 잃은 창을 흐리게 합니다."
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "다른 창에 가려 보이지 않는 영역의 흐림 효과를 비활성화 합니다."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "흐림 효과에 사용할 필터"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "초점 흐림 효과"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "초점을 가진 창을 흐리게 합니다."
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "가우시안"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "가우시안 반경"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "가우시안 강도"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "가우시안 반경"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "가우시안 강도"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "독립적인 텍스쳐 호출"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap의 상세도"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap의 상세도"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "진동"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "진동 효과"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"최대한 독립 텍스쳐 호출을 할 수 있도록 가능한 텍스쳐 단위를 사용합니다."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "창 흐림 속도"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "초점 흐림 효과를 적용할 창"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "투명 흐림 효과를 기본적으로 사용할 창"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "화면 복제"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "화면 복제 시작"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "출력 복제 처리기"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "명령 0을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "명령 1을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "명령 10을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "명령 11을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "명령 2를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "명령 3을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "명령 4를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "명령 5를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "명령 6을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "명령 7을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "명령 8을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "명령 9를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "명령 0을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "명령 1을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "명령 10을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "명령 11을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "명령 2를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "명령 3을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "명령 4를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "명령 5를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "명령 6을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "명령 7을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "명령 8을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "명령 9를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "명령 0을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "명령 1을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "명령 10을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "명령 11을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "명령 2를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "명령 3을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "명령 4를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "명령 5를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "명령 6을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "명령 7을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "명령 8을 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "명령 9를 실행하는키 바인딩"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "명령 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "명령 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "명령 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "명령 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "명령 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "명령 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "명령 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "명령 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "명령 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "명령 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "명령 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "명령 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "명령 0을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "명령 1을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "명령 10을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "명령 11을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "명령 2를 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "명령 3을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "명령 4를 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "명령 5를 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "명령 6을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "명령 7을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "명령 8을 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "명령 9를 선택했을 때 실행될 쉘 명령행"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "명령"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "명령 0 실행"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "명령 1 실행"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "명령 10 실행"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "명령 11 실행"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "명령 2 실행"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "명령 3 실행"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "명령 4 실행"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "명령 5 실행"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "명령 6 실행"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "명령 7 실행"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "명령 8 실행"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "명령 9 실행"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "사용 중인 플러그인 목록"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"전체 화면 창을 그릴 때, 화면 밖의 픽스맵으로 초점이 변경되지 않도록 허용함"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "들리는 삑소리"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "들을 수 있는 시스템 삑소리"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "자동으로 떠오름"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "자동으로 떠오르게 하는 지연 시간"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "출력 장치를 자동으로 감지"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "갱신 주기를 자동으로 감지"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "최고"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "클릭하면 초점을 이동"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "창을 클릭하면 초점을 변경함"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "활성화된 창을 닫습니다."
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "기본 아이콘"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "기본 창 아이콘 그림"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "데스크탑 큐브"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "출력 감지"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "갱신 주기 감지"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr "모서리 명령을 실행하기 전에 포인터가 모서리에 머물러 있어야 하는 시간"
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "모서리 실행 지연 시간"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "빠름"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "초점 막기 정도"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "초점을 막을 창"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "초점을 막을 창"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "강제로 독립된 출력을 그립니다."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "일반 설정"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "일반적인 컴피즈 설정"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "좋음"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "작업 표시줄에 나타나지 않는 창을 숨김"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "모든 창을 최소화하고 초점을 바탕 화면에 맞춤"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "바탕 화면 보기 상태일 때 작업 표시줄에 없는 창을 숨기기"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "높음"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "가로 가상 크기"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "가능하다면 이미지로부터 변형된 텍스쳐를 압축합니다."
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "최대화시 힌트 무시"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "최대화시 크기 증분과 방향 힌트 무시"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "선택된 창을 띄우는 시간 간격"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Ping 메시지들 사이의 간격"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "초점 뺏기를 막는 정도"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "조명 효과"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "현재 활성화된 플러그인의 목록"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "출력 장치를 표현하는 문자열 목록"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "낮음"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "창을 내리기"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "다른 창들 밑으로 창을 내림"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "가로로 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "세로로 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "활성화된 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "활성화된 창 가로로 최대화"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "활성화된 창 세로로 최대화"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "활성화된 창 최소화"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "기본"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "작업 공간의 숫자"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "가상 데스크탑의 숫자"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "끄기"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "수직 공백 기간에만 화면을 업데이트함"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "출력"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "출력 오버랩 조절"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"출력 장치가 오버랩 되어있는 경우에도 각 출력 장치를 독립적으로 그립니다. "
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping 지연"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "더 큰 출력을 선호함"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "더 작은 출력을 선호함"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "클릭으로 띄우기"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "창 띄우기"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "선택된 창을 일정 시간 후에 띄우기"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "다른 창 위에 창을 띄우기"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "클릭했을때 창 띄우기"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "갱신 주기"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "가로 화면 크기 배수"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "세로 화면 크기 배수"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "바탕 화면 보기"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "느린 애니메이션"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "스마트 모드"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank에 동기화"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "텍스쳐 압축"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "텍스쳐 필터"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "텍스쳐 필터링"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "화면이 다시 그려지는 비율(횟수/초)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "창 최대화"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "가로로 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "세로로 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "창 말아올리기"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "활성 창을 최대화 하기"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "가로로 활성 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "세로로 활성 창 최대화"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "활성 창 말아올리기"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "느린 애니메이션 사용"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "활성 창 최대화 취소"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "전체 화면 창의 초점 변경 방지"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "화면이 전환될 때 빛이 퍼지는 사용"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "세로 가상 크기"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "매우 높음"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "오버래핑 출력 장치 중 선호하는 장치"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "창 메뉴 마우스 버튼"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "창 메뉴 단축키"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "가속"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "이미지 조정"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "회전시 윗면 그림 조정"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "다음 슬라이드로 넘어가기"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "스카이 돔 움직이기"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "큐브 회전시 스카이 돔 움직이기"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "자동"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "큐브 윗면과 밑면의 색상"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "스카이 돔 그래디언트의 밑면 최종 색상"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "스카이 돔 그래디언트의 윗면 최종 색상"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "큐브 색상"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "큐브 색상"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "데스크탑 큐브"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "접기 가속"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "접는 속도"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "접는 시간 간격"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "높은 품질을 얻기 위해 가능한 경우 mipmap을 생성"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "이전 슬라이드로 가기"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "그림 파일"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "스카이 돔에 사용할 그림"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "마우스로 큐브를 회전할 때만 큐브를 투명하게 함"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "큐브 내부"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "큐브 내부"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "큐브의 윗면에 그려질 PNG와 SVG 파일 목록"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "다중 출력 모드"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "복수 큐브"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "다음 슬라이드"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "커다란 단일 큐브"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "회전할 때의 투명도"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "회전 안할 때의 투명도"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "회전할 때 바탕 화면의 투명도"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "회전 안할 때 바탕 화면의 투명도"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "창을 큐브 위에 배치"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "이전 슬라이드"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "스카이 돔 그리기"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "그림 크기 조정"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "큐브 윗면의 그림 크기 조정"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "다중 출력 장치를 사용할 때 큐브가 표시되는 방법을 선택하세요."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "스카이 돔"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "스카이 돔 그라디언트 최종 색상"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "스카이 돔 그라디언트 시작 색상"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "스카이 돔 그림"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "속도"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "시간 간격"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "마우스 회전시에만 투명하게 함"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "펼치기"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "큐브 펼치기"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus 컨트롤 백엔드"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "창 장식 텍스쳐에 mipmap 생성 허용"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "명령"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "창 장식"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"사용하고 있는 창 장식 프로그램이 없을 때 실행될 창 장식 프로그램 명령행"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "그림자 가로축 여백"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "그림자 세로축 여백"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "그림자 색"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "그림자 투명도"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "그림자 반경"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "그림자 색"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "그림자 가로축 여백"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "그림자 세로축 여백"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "그림자 투명도"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "그림자 반경"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "창 그림자"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "창 장식"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "창 장식"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "창 장식을 사용할 창"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "그림자가 있어야 하는 창"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "반응하지 않는 창의 밝기(%)"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "일정한 속도"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "일정한 시간"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "응답하지 않는 창을 흐리게 함"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "창관리자의 요청에 응답하지 않는 창을 흐리게 함"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "페이드 모드"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "최소화/열기/닫기 시 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "페이드 속도"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "페이드 시간"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "최소화/열기/닫기 창 이벤트 발생시 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "시스템 삑소리에 대하여 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "창이 생성될 때는 페이드 인, 종료될 때는 페이드 아웃"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "창 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "창 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "전체 화면 페이드 효과(눈에 보이는 삑소리)"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "시스템 삑소리에 대한 전체 화면 페이드 효과"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "응답하지 않는 창의 채도(%)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "응답하지 않는 창 밝기"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "응답하지 않는 창 채도"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "눈에 보이는 삑소리"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "창 페이드 모드"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "\"일정한 속도\" 모드에서 창 사라짐 속도"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "\"일정한 시간\" 모드에서 창 사라짐 속도(ms)"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "페이드 효과가 적용되는 창"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "마운트 포인트"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "마운트 포인트"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "사용자 공간 파일 시스템"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "사용자 공간 파일 시스템"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf 컨트롤 백엔드"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib 메인 루프 지원"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "터미널 열기"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "프로그램 실행창"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "터미널 명령행"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "스크린샷 명령행"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "주 메뉴 보기"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "프로그램 실행창을 보임"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "주 메뉴 보기"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "스크린샷 찍기"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "창 스크린샷 찍기"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "터미널 명령행"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "창 스크린샷 명령행"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "평범한 ini 파일 백엔드"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "파일 변화 알림 플러그인"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "주석"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig 컨트롤 백엔드"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "최소화 효과"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "창 최소화"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "최소화 속도"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "최소화 시간 간격"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "말아올리기 저항"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "말아올리기 저항"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "최소화하거나 해제할 때 창 변형하기"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "최소화시 변형되는 창"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "세로축 움직임 제한"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "작업 공간 영역으로 세로축 움직임을 제한"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "창의 이동이 끝나지 않았을 때, 창의 서버 측면 위치를 반영하지 않음"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "창 이동 시작"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "늦은 위치 반영"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "창 이동"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "창 이동"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "투명"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "움직이는 창의 투명 정도"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "드래그시 자동으로 창 최대화를 해제함"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "창 최대화 해제"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "창 이동 시작"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "밝기"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "밝기"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "밝기"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "밝기"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "반응하지 않는 창의 밝기(%)"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "투명도 줄이기"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "투명도 증가"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "투명도 변화 단계"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "투명도 변화 단계"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "투명도 단계"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "움직이는 창의 투명 정도"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "회전할 때의 투명도"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "채도"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "채도"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "채도"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "채도"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "응답하지 않는 창의 채도(%)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "창 장식"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "창 투명도 값"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "적용되는 창"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "기본적으로 배치되어야하는 창"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "기본적으로 투명한 창들"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "기본적으로 배치되어야하는 창"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "창 배치에 사용할 알고리즘"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "계단"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "중앙"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "창 관리"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "강제로 창을 위치"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "가로 작업 공간 위치"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "작업 영역에 유지"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"위치 설정에 적용되는 창을 작업 영역에 유지합니다. 그 위치가 특정한 위치와 다"
+"를지라도 유지합니다."
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "창 배치"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "모든 출력에 위치 시킴"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "창을 생성할 때 적절한 위치에 배치"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "배치 모드"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "배치된 창"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "무작위로"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"다중 출력 장치가 선택되었을 때 창의 위치 선정을 어떻게 할지 선택하세요."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "똑똑하게"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "활성된 출력 장치 사용"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "초점을 가진 창의 출력 장치 사용"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "포인터가 있는 출력 장치 사용"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "세로 작업 공간 위치"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "작업 공간에 배치된 창"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "창 배치 문제의 회피 방법"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "기본적으로 배치되어야하는 창"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "기본적으로 특정 작업 공간에 배치되어야하는 창"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"윈도우 매니저가 위치시키지 않도록 했다고 해도, 강제로 위치시킬 창들을 설정합"
+"니다."
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "창 장식"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "예비 수단"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "가로축 위치"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "작업 공간 가로축 위치"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "가로축 위치값"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "세로축 위치"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "작업 공간 세로축 위치"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "세로축 위치값"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png 이미지 불러오기"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "정규표현식 사용"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "정규표현식 창 매칭"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "테두리 색"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"외곽선 창 크기 조절 모드와 사각형 창 크기 조절 모드에서 사용할 테두리 색"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "기본 창 크기 조절 모드"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "창 크기 조절할 때의 기본 모드"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "채우기 색"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "사각형 창 크기 조절 모드에서의 채우기 색"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "기본 창 크기 조절 모드 시작"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "외곽선 창 크기 조절 모드 시작"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "사각형 창 크기 조절 모드 시작"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "잡아당기기 창 크기 조절 모드 시작"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "창 크기 조절 시작"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "기본 창 크기 조절 모드"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "외곽선"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "외곽선 창 크기 조절 모드"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "사각형"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "사각형 창 크기 조절 모드"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "창 크기 조절"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "창 크기 조절"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "창 크기 조절 시작"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "창을 잡아당겨서 크기를 조절함"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "평범하게 창 크기를 조절함"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "와곽선을 이용하여 창 크기를 조절함"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "사각형을 이용하여 창 크기를 조절함"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "잡아당기기"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "잡아당기기 창 크기 조절 모드"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "기본 창 크기 조절 모드를 사용할 창"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "외곽선 창 조절 모드를 사용할 창"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "사각형 창 크기 조절 모드를 사용할 창"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "잡아당기기 창 크기 조절 모드를 사용할 창"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "드래그하여 가장자리에서 작업 공간 전환"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "가장자리에서 작업 공간 전환"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "마우스 포인터로 가장자리에서 작업 공간 전환"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "전환 시간"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "왼쪽 작업 공간으로 전환한 후, 포인터 이동"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "대상을 화면 가장자리로 드래그 하면 다음 작업 공간으로 전환"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "마우스 포인터를 화면 가장자리로 가져가면 다음 작업 공간으로 전환"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "창을 화면 가장자리로 드래그하면 다음 작업 공간으로 전환"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "오른쪽 작업 공간으로 전환한 후, 포인터 이동"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "포인터의 이동을 가로축으로 반전"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "세로축 반전"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "마우스 포인터 감도"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "작업 공간을 전환할 때 창을 올림"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "작업 공간을 전환할 때 창을 올림"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "큐브 회전"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "왼쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "오른쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "왼쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "모든 창과 함께 왼쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "오른쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "모든 창과 함께 오른쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "회전"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "모든 창과 함께 1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "10번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "모든 창과 함께 10번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "11번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "모든 창과 함께 11번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "12번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "모든 창과 함께 12번 작업공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "12번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "모든 창과 함께 2번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "3번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "모든 창과 함께 3번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "4번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "모든 창과 함께 4번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "5번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "모든 창과 함께 5번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "6번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "모든 창과 함께 6번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "7번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "모든 창과 함께 7번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "8번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "모든 창과 함께 8번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "9번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "모든 창과 함께 9번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "큐브 회전"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "데스크탑 큐브 회전"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "왼쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "활성창과 함께 왼쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "오른쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "활성창과 함께 오른쪽으로 회전"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "모든 창과 함께 1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "활성창과 함께 1번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "10번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "활성창과 함께 10번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "11번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "활성창과 함께 11번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "12번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "활성창과 함께 12번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "2번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "활성창과 함께 2번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "3번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "활성창과 함께 3번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "4번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "활성창과 함께 4번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "5번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "활성창과 함께 5번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "6번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "활성창과 함께 6번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "7번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "활성창과 함께 7번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "8번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "활성창과 함께 8번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "9번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "활성창과 함께 9번 작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "작업 공간으로 회전"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "창 회전"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "창과 함께 회전"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "회전 가속"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "회전 속도"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "회전 시간 간격"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "회전시 확대"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "마우스 포인터 감도"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "큐브 회전시 아랫면으로 잡아당김"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "큐브 회전시 윗면으로 잡아당김"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "아랫면으로 잡아당김"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "윗면으로 잡아당김"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "회전 시작"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "작업 공간을 전환할 때의 시간 간격"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "확대"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "투명도(퍼센트)"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "크게"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "바탕 화면을 클릭하면 바탕 화면 보기로 전환"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "바탕 화면을 어둡게"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "스케일 모드일 때, 바탕 화면을 어둡게함"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "아이콘"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "스케일 모드일 때, 바탕 화면을 클릭하면 바탕 화면 보기 상태로 들어가기"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "떠오르는 시간"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "창 고르기를 시작"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "모든 창에 대해서 창 고르기를 시작"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "창 그룹에 대하여 창 고르기를 시작"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "현재 작업 공간상의 창들에 대하여 창 고르기를 시작"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "모든 창을 배치하고 변형함"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "창 그룹을 배치하고 변형함"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "창을 배치하고 변형함"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "현재 작업 공간상의 창들을 배치하고 변형함"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "모든 출력 장치에 대하여"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "현재 출력 장치에 대하여"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "아이콘 덧붙이기"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "창이 스케일될 때 아이콘을 덧붙임"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "스케일"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "스케일"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "스케일 속도"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "스케일 시간"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "스케일"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "다중 출력 장치를 사용할 때 창들이 어디에 스케일될지 선택하세요."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "창 사이의 간격"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "간격"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "마우스가 위에 있을 때, 스케일 모드가 종료되는 시간 (ms 단위)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "스케일 모드일 때 스케일되어야 하는 창"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "이 프로그램을 사용하여 스크린샷을 자동으로 열기"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "디렉토리"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "사각형 형태의 스크린샷을 찍음"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "프로그램 실행"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "이 디렉토리에 스크린샷을 저장함"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "스크린샷"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "스크린샷 플러그인"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg 이미지 불러오기"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "밝기(퍼센트)"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "대조(퍼센트)"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "프로그램 전환"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "자동으로 회전"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "앞으로 띄우기"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "선택한 창을 앞으로 띄우기"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "창을 전환하는 동안 바탕 화면이 뒤로 물러나는 거리"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "아이콘"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "최소화"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "다음 패널"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "다음 창"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "다음 창(모든 창)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "다음 창(전환 창 없이)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "전환 창이 없을 때는 전환 창을 보이고, 다음 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "전환 창이 없을 때는 전환 창을 보이고, 모든 창 중에서 다음 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "전환 창이 없을 때는 전환 창을 보이고, 모든 창 중에서 이전 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "전환 창이 없을 때는 전환 창을 보이고, 모든 창 중에서 이전 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "이전 패널"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "이전 창"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "이전 창(모든 창)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "이전 창(전환 창 없이)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "전환하는 동안 선택된 창으로 회전"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "다음 패널 타입 창을 선택하세요."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "전환 창을 보여주지 않고 다음 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "이전 패널 타입 창을 선택합니다."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "전환 창을 보여주지 않고 다음 창으로 전환"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "미리 보기 옆에 아이콘 표시"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "최소화된 창 표시"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "전환 속도"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "전환 간격"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "창 전환"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "전환 창 안에 포함될 창들"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 색 공간 지원 제공"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "비디오 재생"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "비디오 재생"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 색 공간"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "줄 추가"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "점 추가"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "다양한 데스크탑 동작에 물결 효과를 추가함"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "빗 방울들 사이의 시간 간격(초 단위)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "마우스 포인터 물결 효과 활성화"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "줄"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "여백 크기"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "점"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "비 지연 시간"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "제목 출렁임"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "비 내리기"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "비 내리는 효과 켜기"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "와이퍼 켜기"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "와이퍼 효과 켜기"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "물결 효과"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "물결의 여백 크기"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "창 제목 표시줄에 대한 물결효과"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "초점 효과"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "창 초점 효과"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "창 초점"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "충돌"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "창 잡기"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "격자 해상도"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "창 반대로 잡아당기기"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "창 떨리게 하기"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "선택 효과"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "창 선택 효과"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "적용되는 창"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "최대화 효과"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "격자의 최소 크기"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "최소 격자 크기"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "창 이동"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "떨림"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "반대로 잡아당기기"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "창 잡아당기기"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "용수철 마찰"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "용수철 K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "용수철 상수"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "창 잡아당기기"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "출렁거리는 효과를 위해 용수철 모델 사용"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "격자 해상도"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "창 활성화시 출렁거리는 효과"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "창 선택시 출렁거리는 효과"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "창을 선택할 때 출렁거리는 효과"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "창 이동시 출렁거리는 효과"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "창을 최대화하거나 해제할 때 출렁거리는 효과"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "창 출렁거림"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "선형 필터"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "확대할 때 선형 필터 적용"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "데스크탑 확대"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "확대"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "축소"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "확대 이동"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "확대 속도"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "확대 시간 간격"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "데스크탑 큐브 확대 이동"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "확대율"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "확대 이동"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "명령 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "명령 1 실행"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "스크린샷 명령행"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "스크린샷 명령행"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "창 투명도 줄이기"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "창 투명도 증가"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "기본적으로 투명한 창들의 투명도 값"
+
+#~ msgid "Opacity windows"
+#~ msgstr "창 투명도"
+
+#~ msgid "Background Images"
+#~ msgstr "배경 그림"
+
+#~ msgid "Background images"
+#~ msgstr "배경 그림"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "창을 평면 위에 배치"
+
+#~ msgid "Plane Down"
+#~ msgstr "화면을 아래로"
+
+#~ msgid "Plane Left"
+#~ msgstr "화면을 왼쪽으로"
+
+#~ msgid "Plane Right"
+#~ msgstr "화면을 오른쪽으로"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "화면을 1번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "화면을 10번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "화면을 11번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "화면을 12번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "화면을 2번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "화면을 3번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "화면을 4번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "화면을 5번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "화면을 6번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "화면을 7번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "화면을 8번 작업 공간으로 이동"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "화면을 9번 작업 공간으로 이동"
+
+#~ msgid "Plane Up"
+#~ msgstr "화면을 위로"
+
+#~ msgid "Plane down"
+#~ msgstr "화면을 아래로"
+
+#~ msgid "Plane left"
+#~ msgstr "화면을 왼쪽으로"
+
+#~ msgid "Plane right"
+#~ msgstr "화면을 오른쪽으로"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "화면을 1번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "화면을 10번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "화면을 11번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "화면을 12번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "화면을 2번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "화면을 3번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "화면을 4번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "화면을 5번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "화면을 6번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "화면을 7번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "화면을 8번 작업 공간으로 이동"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "화면을 9번 작업 공간으로 이동"
+
+#~ msgid "Plane up"
+#~ msgstr "화면을 위로"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "데스크탑 창 투명도 페이드 시간"
diff --git a/po/lo.po b/po/lo.po
new file mode 100644
index 0000000..127429f
--- /dev/null
+++ b/po/lo.po
@@ -0,0 +1,3041 @@
+# Lao message file for YaST2 (@memory@).
+# Copyright (C) 2006 SUSE Linux Products GmbH.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2006-01-04 08:58+0100\n"
+"Last-Translator: i18n@suse.de\n"
+"Language-Team: Lao <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..48caeea
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,3776 @@
+# Lithuanian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2000, 2001 SuSE GmbH.
+# Jonas Gocentas <jonasgocentas@florida.usa.com>, 2001.
+# Linas Spraunius <lsprauni@radio.lt>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2001-10-18 09:54+0200\n"
+"Last-Translator: Jonas Gocentas <jonasgocentas@florida.usa.com>\n"
+"Language-Team: Lithuanian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Darbastaliai"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Window Manager"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nieko"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Skeneris"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "&Suspausti Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "&Suspausti Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "&Suspausti Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "&Suspausti Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatinė"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Window Manager"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Praleistas\n"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "&Ištrinti Windows"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+#, fuzzy
+msgid "Minimize Window"
+msgstr "&Suspausti Windows"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Spalvos"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktyvus profailas"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "_Valyti"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+#, fuzzy
+msgid "Fill color for annotations"
+msgstr "Sužinokite daugiau pasinaudoję dokumentacija"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+#, fuzzy
+msgid "Line width for annotations"
+msgstr "Sužinokite daugiau pasinaudoję dokumentacija"
+
+#: ../metadata/annotate.xml.in.h:15
+#, fuzzy
+msgid "Stroke color for annotations"
+msgstr "Sužinokite daugiau pasinaudoję dokumentacija"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+#, fuzzy
+msgid "Stroke width for annotations"
+msgstr "Sužinokite daugiau pasinaudoję dokumentacija"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filtras: "
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Nu&statyti filtrą"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Trukmė"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Trukmė"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Praleistas\n"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Trukmė"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Rusų"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Rusijos Federacija"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Rusų"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Rusijos Federacija"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Rusų"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows laisva (%1)"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Video režimo pasirinkimas"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Komanda '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Komanda '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Komanda '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Komanda '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Komanda:"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Komanda:"
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Aktyvus profailas"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "Bylų &sistema"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "Automatinė"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Įprastas skyrius"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Įprasta galiojimo pabaigos data"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Darbalaukis"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "Pasirinkite atnaujinimui"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "Įjungti ZEN skaidinį"
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Registravimas"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "Išvardinti tik detektuotus spausdintuvus"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Windows"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normalus"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Nutolęs darbastalis"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Nutolęs darbastalis"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Uždelsimas"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "&Radijo laikrodis"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Atnaujinti sąrašą"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Darbalaukis"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Rodyti visus skaidinius"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Nu&statyti filtrą"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "Nu&statyti filtrą"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Nu&statyti filtrą"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D spartinimas:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sidnėjus"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Automatinė"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Spalvos"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Spalvos"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Darbalaukis"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D spartinimas:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Praleistas\n"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "&Testas"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Nepavykusios bylos"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Windows"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "vietinis laikas"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sidnėjus"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sidnėjus"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Praleistas\n"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "&Testas"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Komanda:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "Visiškai &ištrinti Windows"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Nėra aprašo"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind parametrai"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "&Testas"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Mountain"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Realaus laiko"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Praleistas\n"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Realaus laiko"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Bylų &sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "Lytimasis ekranas"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows laisva (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Pridėti kontaktą"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Pridėti kontaktą"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "Paleisti terminale"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Mountain"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "Į &apačią"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Į &apačią"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Į &apačią"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Tiltas"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Tiltas"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Tiltas"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Tiltas"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Trukmė"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Trukmė"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Trukmė"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Trukmė"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind parametrai"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Window Manager"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind parametrai"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind parametrai"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "&Darbo grupė"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Virtualūs pseudonimai"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Spalvos"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Spalvos"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr " -- Inicializuoti"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Spalvos"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Nepavyko pakeisti dydį."
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "Realaus laiko"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "%1 rodyklė"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Spausdinimo įrenginys"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "Į dešinę"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "Į dešinę"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "Į dešinę"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Į dešinę"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Į &apačią"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D spartinimas:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "&Testas"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "&Testas"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "&Testas"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Pradėti paiešką"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Didelis"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Fonas"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Į &apačią"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Skeneris"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "vietinis laikas"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "vietinis laikas"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Ispanija"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Katalogas\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Video režimo pasirinkimas"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Programos"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Ekranas"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Programos tvarka"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatinė"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Veiksmo"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Piktogramos"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Darbalaukis"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Paleidžiamas demonas."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "vietinis laikas"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "vietinis laikas"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Pridėti plunksną"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Pridėti kontaktą"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Uždelsimas"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "Pakeis&ti būseną"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "Pakeis&ti būseną"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "Pakeis&ti būseną"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "Pakeis&ti būseną"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Veiksmo"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Raiška"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Mažiausias &GUID"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Mažiausias &GUID"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Į &apačią"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Tvarkyklė"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "&Suspausti Windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Veiksmo"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Praleidžiamas %1"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Praleidžiamas %1"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "&Ištrinti Windows"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Serverio rezoliucija"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windows"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filtras: "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Darbalaukis"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Darbalaukis"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Darbalaukis"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Darbalaukis"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Praleistas\n"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "&Testas"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Pasukti ekraną"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Darbalaukis"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Praleistas\n"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Komanda:"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Komanda '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Komandinės eilutės nagrinėjimo klaida."
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "Visiškai &ištrinti Windows"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "&Ištrinti Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Page Down"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Į dešinę"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Page Up"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "&Ištrinti Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Į dešinę"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Page Up"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "Įrankiai"
+
+#~ msgid "Menu"
+#~ msgstr "Meniu"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "Pagalbinis diskas..."
+
+#, fuzzy
+#~ msgid "Splash"
+#~ msgstr "splash=0"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "Konfigūravimo dialogas"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "Meniu"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "Įrankiai"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Pranešimai"
+
+#, fuzzy
+#~ msgid "Dnd"
+#~ msgstr "End"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "Lytimasis ekranas"
+
+#~ msgid "Unknown"
+#~ msgstr "Nežinoma"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Trukmė"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Visiškai &ištrinti Windows"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Radius"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Paleidžiamas demonas."
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D spartinimas:"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D spartinimas:"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&Testas"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Rusijos Federacija"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Rusų"
+
+#, fuzzy
+#~ msgid "Line width for annotations (0.0-100.0)"
+#~ msgstr "Sužinokite daugiau pasinaudoję dokumentacija"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Suspausti Windows"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Suspausti Windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Mažiausias &GUID"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Nutolęs darbastalis"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Paleidžiamas demonas."
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Paleidžiamas demonas."
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D spartinimas:"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&Testas"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "vietinis laikas"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "vietinis laikas"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&Ištrinti Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Veiksmo"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Praleidžiamas %1"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Nu&statyti filtrą"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Serverio rezoliucija"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows laisva (%1)"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows laisva (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Praleistas\n"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&Testas"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Darbalaukis"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Paleidžiamas demonas."
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "Pasukti ekraną"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Komanda:"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Komanda:"
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "Teikėjo tipas"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Konverteriai"
+
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Rodyti pak&eitimus"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Diskelis"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Paleidžiamas demonas."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminalai"
diff --git a/po/mk.po b/po/mk.po
new file mode 100644
index 0000000..6e6f57b
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,3062 @@
+# Macedonian message file for YaST2 (@memory@).
+# Copyright (C) 2006 SUSE Linux Products GmbH.
+# Зоран Димовски <zoki.dimovski@gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2001-07-17 16:12+0200\n"
+"Last-Translator: Зоран Димовски <zoki.dimovski@gmail.com>\n"
+"Language-Team: Macedonian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n>1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Постави филтер"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Постави филтер"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Постави филтер"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Руски"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Руски"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Руски"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Руски"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Руски"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Постави филтер"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "Постави филтер"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "Постави филтер"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Постави филтер"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Руски"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Постави филтер"
diff --git a/po/mr.po b/po/mr.po
new file mode 100644
index 0000000..5ae16ed
--- /dev/null
+++ b/po/mr.po
@@ -0,0 +1,3195 @@
+# Marathi message file for YaST2 (@memory@).
+# Copyright (C) 2006 SUSE Linux Products GmbH.
+# "( अमेय पाळंदे ) Ameya Palande" <2ameya@gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2005-07-29 15:37+0530\n"
+"Last-Translator: \"( अमेय पाळंदे ) Ameya Palande\" <2ameya@gmail.com>\n"
+"Language-Team: Marathi <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "स्थानिक वेळ"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+#, fuzzy
+msgid "Draw using tool"
+msgstr "सुरू होताना"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "सुरु करणे"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "रषॴॖनॴ"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "रषॴॖनॴ"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "रषॴॖनॴ"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "रषॴॖनॴ"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "रषॴॖनॴ"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "नामावली निवड"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "आज्ञा:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "पुन्हा सुरू करा"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "सुरु करणे"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "आज्ञा:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "आज्ञा '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "संरचना संचित करा"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "सुरु करणे"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "सुरु करणे"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "सुरु करणे"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "सुरु करणे"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "सुरु करणे"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "सुरु करणे"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "सुरु करणे"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "इन्स्टॉलेशन सुरु करत आहे..."
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+#, fuzzy
+msgid "Hover Time"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "सुरु करणे"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "स्थानिक संचिका..."
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "नामावली निवड"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "सुरु करणे"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "सुरू होताना"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "निवडा काही नाही"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "निवडा काही नाही"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "निवडा काही नाही"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "सुरू होताना"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "स्थानिक वेळ"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "स्थापना पूर्ण झाली"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "स्थापना पूर्ण झाली"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "आज्ञा '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "आज्ञा '%1'"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "तग॥लॲग"
+
+#~ msgid "Unknown"
+#~ msgstr "अज्ञात"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "संरचना संचित करा"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "स्थानिक वेळ"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "रषॴॖनॴ"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "स्थापना पूर्ण झाली"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "स्थानिक वेळ"
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..bd00e00
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,3369 @@
+# Norwegian Bokmaal translation of Compiz Core.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the compiz package.
+# Ketil W. Aanensen <ketil.w.aanensen@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz 0.6.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-04-03 23:15+0200\n"
+"Last-Translator: Ketil Wendelbo Aanensen <ketil.w.aanensen@gmail.com>\n"
+"Language-Team: Norwegian Bokmaal <ketil.w.aanensen@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Skrivebord"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Vindushåndtering"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ingen"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Skyggelegg"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maksimer"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maksimer vindu horisontalt"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maksimer vindu vertikalt"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimert"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Auto-hev"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Vindusmeny"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Hendelse å sette i gang når man ruller musehjulet på et vindus tittellinje."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Sløringstype"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Dekkevne for aktive vinduer med Metacity-tema"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Dekkevne for aktive vinduer med Metacity-tema som er rullet opp"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Dekkevne for Metacity-tema"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Dekkevne ved opprulling med Metacity-tema"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Dekkevne å bruke for aktive vinduer med Metacity temadekorasjoner"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Dekkevne å bruke for Metacity temadekorasjoner"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Skyggelegg aktive vinuder med Metacity temadekorasjoner fra fulldekkende til "
+"gjennomsiktig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Skyggelegg vinduer med Metacity temadekorasjoner fra fulldekkende til "
+"gjennomsiktig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Musehjulshendelse for tittellinje"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Type sløring som brukes for vindusdekorasjoner"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Bruk Metacity-tema"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Bruk Metacity-tema når vindusdekorasjoner tegnes"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Lukk vindu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Avmaksimer vindu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maksimer vindu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimer vindu"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Hold over"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Klistre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Av-skyggelegg"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Ikke hold over"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Avklistre"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Vinduet \"%s\" svarer ikke."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Å tvinge denne applikasjonen til å avslutte vil gjøre at du mister alle "
+"endringer som ikke er lagret."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Tving avslutt"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Påfør"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Fyllfarge for Påfør"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Bestrykningsfarge for Påfør"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Påfør-tillegg"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Rens"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Tegn"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Tegn ved hjelp av verktøy"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Fyllfarge for påførte elementer"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Begynn"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Begynn Påfør-tegning"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Begynn Påfør-utvisking"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Begynn utvisking"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Linjebredde"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Linjebredde for påføringer"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Bestrykningsfarge for påførte elementer"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Bestrykningsbredde"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Bestrykningsbredde for påførte elementer"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4x bilineær"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alfatilslør"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alfatilslørte vinduer"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Tilsløringsfilter"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Tilstopping for tilsløring"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Metning for tilsløring"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Hastighet for tilsløring"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Tilslør vinduer"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Tilslør bak gjennomsiktige deler av vinduer"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Metning for tilsløring"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Tilslør vinduer"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Tilslør vinduer som ikke har fokus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Slå av tilsløring av skjermområder som er dekket av andre vinduer."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Filtermetode brukt for tilsløring"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fokustilsløring"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Fokustilslør vinduer"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussisk"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gaussisk radius"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gaussisk styrke"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gaussisk radius"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gaussisk styrke"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Uavhengig teksturhenting"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "MIP-kart"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "MIP-kart detaljnivå"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Detaljnivå for MIP-kart"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Puls"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Pulseffekt"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Bruk de tilgjengelige teksturenhetene for å gjøre så mange uavhengige "
+"teksturhentinger som mulig."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Hastighet for vindutilsløring"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Vinduer som skal påvirkes av fokustilsløring"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Vinduer som skal bruke alfatilsløring som standard"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Klone-utdata"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Begynn klonseleksjon"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Håndterer for klone-utdata"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En hurtigtast som, når innhentet, vil kjøre konsollkommandoen identifisert "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Kommandolinje 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Kommandolinje 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Kommandolinje 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Kommandolinje 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Kommandolinje 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Kommandolinje 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Kommandolinje 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Kommandolinje 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Kommandolinje 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Kommandolinje 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Kommandolinje 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Kommandolinje 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando0 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando1 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando10 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando11 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando2 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando3 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando4 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando5 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando6 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando7 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando8 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Kommandolinje som skal kjøres i konsoll når kjør_kommando9 blir innhentet"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Kommando"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Kjør kommando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Kjør kommando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Kjør kommando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Kjør kommando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Kjør kommando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Kjør kommando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Kjør kommando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Kjør kommando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Kjør kommando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Kjør kommando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Kjør kommando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Kjør kommando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktive tillegg"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Tilatt tegning av fullskjermvinduer å ikke bli omdirigert til bilder utenfor "
+"skjermen"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Hørbar bjelle"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Hørbart systempip"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Auto-hev"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Forsinkelse for auto-hev"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatisk gjenkjennelse av skjermenheter"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatisk gjenkjennelse av oppdateringshastighet"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Beste"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klikk for fokus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Klikk på vindu flytter inndatafokus til det"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Lukk aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Standardikon"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Standard bilde for vindusikon"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Skrivebordskube"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Gjenkjenn utdata"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Gjenkjenn oppfriskingshastighet"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Varigheten musepekeren må hvile i en skjermkant før en kanthendelse utføres."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Forsinkelse for kantutløsning"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rask"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Fokusunngående nivå"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Fokusunngående vinduer"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Fokusunngående vinduer"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Generelle valg"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Generelle Compiz-valg"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "God"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Skjul vinduer som hopper over oppgavelinjen"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Skjul alle vinduer og fokuser på skrivebordet"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Skjul vinduer som ikke er i oppgavelinjen når Visskrivebord-modus startes"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Høy"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Horisontal virtuell størrelse"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Hvis mulig, bruk kompresjon for teksturer hentet fra bilder"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorer hint når maksimert"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Ignorer størrelsesøkning- og forholdshint når vinduet er maksimert"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervall før valgte vinduer heves"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervall mellom ping-beskjeder"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Lyn"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Liste over aktive tillegg nå"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Liste over strenger som beskriver skjermenheter"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Senk vindu"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Senk vindu under andre vinduer"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maksimer vindu horisontalt"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maksimer vindu vertikalt"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maksimer aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maksimer aktivt vindu horisontalt"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maksimer aktivt vindu vertikalt"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimer aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Antall skrivebord"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Antall viruelle skrivebord"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+# fuzzy
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Bare utfør skjermoppdateringer ved vertikale blankingsperioder"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Utdata"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Overlappende utdata-håndtering"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping-forsinkelse"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Foretrekk større utdata"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Foretrekk mindre utdata"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Hev ved klikk"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Hev vindu"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Hev valgt vindu etter intervall"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Hev vindu over andre vinduer"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Hev vinduer når de klikkes"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Oppfriskingsrate"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplikator for skjermstørrelse for horisontal virtuell størrelse"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplikator for skjermstørrelse for vertikal virtuell størrelse"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Vis skrivebord"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Trege animasjoner"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Smartmodus"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synkroniser til VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Teksturfiltrering"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Teksturfilter"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Teksturfiltrering"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Hastigheten for omtegning av skjermen (ganger/sekund)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Skru av/på maksimert vindu"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Skru av/på horisontalt maksimert vindu"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Skru av/på vertikalt maksimert vindu"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Skru av/på rull opp/ ned vindu"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Skru av/på maksimert aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Skru av/på horisontalt maksimert aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Skru av/på vertikalt maksimert aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Skru av/på rull opp/ned vindu"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Skru av/på bruk av trege animasjoner"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Avmaksimer aktivt vindu"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Ikke-videresend vinduer i fullskjerm"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Bruk diffust lys når skjermen omdannes"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Vertikal virtuell størrelse"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Hvilken av de overlappende utdata-enhetene skal foretrekkes"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Snarvei for vindusmeny"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Hurtigtast for vindusmeny"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Akselerasjon"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Juster bilde"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Juster toppbilde til rotasjon"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Gå videre til neste bilde"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animer himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animer himmelkuppel når kuben roteres"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Farge på kubens topp og bunn"
+
+# fuzzy
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Farge som skal brukes til bunnens fargestans av alternativet for "
+"fargeovergangen for himmelkuppel"
+
+# fuzzy
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Farge som skal brukes til toppens fargestans av alternativet for "
+"fargeovergangen for himmelkuppelen"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kubefarge"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kubefarge"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Skrivebordskube"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Akselerasjon for bretting"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Brettehastighet"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Tidsskritt for bretting"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Lag MIP-kart når det er mulig, for skalering med høyere kvalitet"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Gå tilbake til forrige bilde"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Bildefiler"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Bilde å bruke som tekstur for himmelkuppelen"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Starter gjennomsiktighet for kube kun hvis rotasjonen er drevet av mus"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Innsiden av kuben"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Innsiden av kuben"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Liste over PNG- og SVG-filer som skal gjengis på toppen av kuben"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Flerskjermsmodus"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Flere kuber"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Neste bilde"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Én stor kube"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Dekkevne ved rotasjon"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Dekkevne når det ikke roteres"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Skrivebordsvinduenes dekkevne ved rotasjon"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Skrivebordsvinduenes dekkevne når det ikke roteres"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Plasser vinduer på kuben"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Forrige bilde"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Gjengi himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Skaler bilde"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Skaler bilder for å dekke toppen av kuben"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Velger hvordan kuben vises hvis flere skjermenheter brukes."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Sluttfarge for himmelkuppelens fargeovergang"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Startfarge for himmelkuppelens fargeovergang"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Bilde for himmelkuppel"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Hastighet"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Tidsskritt"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Gjennomsiktighet kun ved muserotasjon"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Brett ut"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Brett ut kuben"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus kontrollmotor"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "La MIP-kart bli laget for dekorasjonstekstur"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Kommando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekorasjonsvinduer"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Kommandolinje for dekoratør som kjøres hvis ingen dekoratør allerede kjører"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Slippskyggens X-forskyvning"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Slippskyggens Y-forskyvning"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Farge for slippskygge"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Dekkevne for slippskygge"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Radius for slippskygge"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Skyggefarge"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Skyggens X-forskyvning"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Skyggens Y-forskyvning"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Dekkevne for skygge"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Skyggeradius"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Skyggevinduer"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Vindusdekor"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Vindusdekorasjoner"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Vinduer som skal dekoreres"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Vinduer som skal ha en skygge"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rotasjonshastighet"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Hold tilbake Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Normal størrelsesemdring av vinduer"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Uttoningstid"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Ton ved minimer/åpne/lukk"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Toningshastighet"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Uttoningstid"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Toningseffekt på minimer/åpne/lukk"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Toningseffekt ved systempip"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Ton inn vinduer når de kartlegges og ton ut vinduer når de av-kartlegges"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Ton vinduer"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Inn- og uttonende vinduer"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Visuell bjelle i fullskjerm"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Fullskjerms toningseffekt ved systempip"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Visuell bjelle"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Hastighet for toning av vinduer"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Vinduer som skal skaleres i skalermodus"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Vinduer som skal tones"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Monteringspunkt"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Monteringspunkt"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Filsystem på brukerområde"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Filsystem på brukerens område"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Gconf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Gconf kontrollmotor"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "Glib"
+
+# fuzzy
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Glib støtte for hovedløkke"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Åpne en terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Kjør-dialog"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Kommandolinje for terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Kommandolinje for skjermbilde"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Vis hovedmeny"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Vis \"Kjør program\"-dialog"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Vis hovedmenyen"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Ta et skjermbilde"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Ta et skjermbilde av et vindu"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Kommandolinje for terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Kommandolinje for skjermbilde av vindu"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini flatfil-motor"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Varslingstilleg for filendringer"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig kontrollmotor"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimereffekt"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimer vinduer"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimeringshastighet"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Tidsskritt for minimering"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Skyggemotstand"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Skyggemotstand"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Omdann vinduer når de minimeres og avminimeres"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Vinduer som skal omdannes når de minimeres"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Hold tilbake Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Hold tilbake Y-koordinat til arbeidsområde"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Ikke oppdater vindusposisjonen på tjenerside før vinduene er ferdig med "
+"flytting"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Begynn vindusflytting"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Lat posisjonering"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Flytt vindu"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Flytt vindu"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Dekkevne"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Dekkevnenivå for bevegende vinduer"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Smekk av og automatisk avmaksimer maksimerte vinduer når de trekkes"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Smekk av maksimerte vinduer"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Begynn å bevege vindu"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Skarphet"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Skarphet"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Skarphet"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Skarphet"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Reduser dekkevne"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Øk dekkevne"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Endringssteg for dekkevne"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Endringssteg for dekkevne"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Steg for dekkevne"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Dekkevnenivå for bevegende vinduer"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Dekkevne ved rotasjon"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Metning"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Metning"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Metning"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Metning"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Vindusdekorasjoner"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Dekkevneverdier for vinduer"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Kartlegg vinduer"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Vinduer som skal posisjoneres som standard"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Vinduer som skal være gjennomsiktige som standard"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Vinduer som skal posisjoneres som standard"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritme som brukes for plassering av vinduer"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Tett-i-tett"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Sentrert"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Vindushåndtering"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Fokusunngående vinduer"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Horisontale posisjoner på arbeidsområde"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Plasser vinduer"
+
+#: ../metadata/place.xml.in.h:12
+#, fuzzy
+msgid "Place across all outputs"
+msgstr "Foretrekk mindre utdata"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Plasser vinuder på passende posisjoner når de kartlegges"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Plasseringsmodus"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Posisjonerte vinduer"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Tilfeldig"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "Velge hvor vinduene skaleres hvis flere skjermenheter brukes."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Smart"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "På alle skjermenheter"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Vertikale posisjoner på arbeidsområde"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Arbeidsområde-plasserte vinduer"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Omveier for vindusplassering"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Vinduer som skal posisjoneres som standard"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Vinduer som skal plasseres i spesifikke arbeidsområder som standard"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Vindusdekorasjoner"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Omveier"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X-posisjoner"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X-posisjoner på arbeidsområde"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Verdier for X-posisjon"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y-posisjoner"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y-posisjoner på arbeidsområde"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Verdier for Y-posisjon"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png-bildelaster"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regex-samsvar"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex-samsvar mellom vinduer"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Kantfarge"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Kantfarge brukt for omriss og rektangel ved gjør-om-størrelse-modus"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Standardmodus for størrelsesendring"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Standard modus som brukes for størrelsesendring av vinduer"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Fyllfarge"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Fyllfarge brukt for omriss og rektangel ved gjør-om-størrelse-modus"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Begynn normal størrelsesendring av vindu"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Begynn omriss-størrelsesendring av vindu"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Begynn rektangulær størrelsesendring av vindu"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Begynn strekk-størrelsesendring av vindu"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Begynn størrelsesendring av vindu"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Normal størrelsesemdring av vinduer"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Omriss"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Omriss-størrelsesendring av vinduer"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rektangulær"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Rektangulær størrelsesendring av vinduer"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Endre størrelse på vindu"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Endre størrelse på vindu"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Begynn å endre størrelse på vindu"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Begynn å endre størrelse på vindu ved å strekke det"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "begynn å enre størrelse på vindu på normalt vis"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Begynn å endre størrelse på vindu med omriss"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Begynn å endre størrelse på vindu rekatngulært"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Strekk"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Strekk-størrelsesendring av vinduer"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Vinduer som skal endre størrelse på normalt vis"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Vinduer som skal endre størrelse med omriss"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Vinduer som skal endre størrelse rektangulært"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Vinduer som skal endre størrelse ved strekking"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Kantbytt dra-og-slipp"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Kantbytt flytt"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Kantbytt peker"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Byttetid"
+
+# fuzzy
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Bytt til venstre arbeidsområde og 'warp' musepeker"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Bytt til neste arbeidsområde når objekter dras til skjermkanten"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "Bytt til neste arbeidsområde når musepekeren flyttes til skjermkanten"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Bytt til neste arbeidsområde når vinduer flyttes til skjermkanten"
+
+# fuzzy
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Bytt til høyre arbeidsområde og 'warp' musepeker"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "inverter Y-akse for musebevegelse"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Musepeker inverter Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Følsomhet for musepeker"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Hev ved rotasjon"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Hev vindu ved rotasjon"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Roter kuben"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Roter bytt venstre"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Roter bytt høyre"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Roter venstre"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Roter venstre med vindu"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Roter høyre"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Roter høyre med vindu"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Roter til"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Roter til ansikt 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Roter til ansikt 1 med vindu"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Roter til ansikt 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Roter til ansikt 10 med vindu"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Roter til ansikt 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Roter til ansikt 11 med vindu"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Roter til ansikt 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Roter til ansikt 12 med vindu"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Roter til ansikt 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Roter til ansikt 2 med vindu"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Roter til ansikt 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Roter til ansikt 3 med vindu"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Roter til ansikt 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Roter til ansikt 4 med vindu"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Roter til ansikt 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Roter til ansikt 5 med vindu"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Roter til ansikt 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Roter til ansikt 6 med vindu"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Roter til ansikt 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Roter til ansikt 7 med vindu"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Roter til ansikt 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Roter til ansikt 8 med vindu"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Roter til ansikt 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Roter til ansikt 9 med vindu"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Roter kuben"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Roter skrivebordskuben"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Roter venstre"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Roter venstre og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Roter høyre"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Roter høyre og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Roter til ansikt 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Roter til ansikt 1 med vindu"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Roter til ansikt 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Roter til ansikt 1 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Roter til ansikt 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Roter til ansikt 10 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Roter til ansikt 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Roter til ansikt 11 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Roter til ansikt 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Roter til ansikt 12 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Roter til ansikt 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Roter til ansikt 2 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Roter til ansikt 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Roter til ansikt 3 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Roter til ansikt 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Roter til ansikt 4 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Roter til ansikt 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Roter til ansikt 5 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Roter til ansikt 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Roter til ansikt 6 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Roter til ansikt 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Roter til ansikt 7 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Roter til ansikt 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Roter til ansikt 8 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Roter til ansikt 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Roter til ansikt 9 og trekk aktivt vindu med"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Roter til arbeidsområde"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Roter vindu"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Roter med vinduer"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Akselerasjon for rotasjon"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rotasjonshastighet"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Tidsskritt for rotasjon"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Rotasjonsforstørrelse"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Følsomhet for musepekers bevegelse"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Smekk kuberotasjon til bunnen"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Smekk kuberotasjon til toppen"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Smekk til bunn"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Smekk til topp"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Begynn rotasjon"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tidsavbrudd før arbeidsområde byttes"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Forstørr"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Dekkevne i prosent"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Stor"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Klikk skrivebord for å vise skrivebord"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Gjør bakgrunn mørkere"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Gjør bakgrunn mørkere når vinduer skaleres"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Logo"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Start Visskrivebord-modus når skrivebord klikkes mens skalering pågår"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Svevetid"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Begynn vindusplukker"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Begynn vindusplukker for alle vinduer"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Begynn vindusplukker for vindusgruppen"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Begynn vindusplukker for vinduer på denne skjermen"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Utform og start omdanning av alle vinduer"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Utform og start omdanning av vindusgruppe"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Utform og start omdanning av vinduer"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Utform og start omdanning av vinduer på denne skjermen"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "På alle skjermenheter"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "På nåværende skjermenhet"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Ikon for overlapp"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Legg et ikon på vinduer når de skaleres"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Skaler"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Skaleringshastighet"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Tidsskritt for skalering"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Skaler vinduer"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "Velge hvor vinduene skaleres hvis flere skjermenheter brukes."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Mellomrom mellom vinduer"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Mellomrom"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "Tid (i ms) før skaleringsmodus avsluttes når det sveves over et vindu"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Vinduer som skal skaleres i skalermodus"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Åpne skjermbilde automatisk med dette programmet"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Katalog"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Begynn rektangulært skjermbilde"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Kjør program"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Legg skjermbilder i denne katalogen"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Skjermbilde"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Tillegg for skjermbilde"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Innlaster for svg-bilde"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Mengde skarphet i prosent"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Mengde metning i prosent"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Programbytter"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Autoroter"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Hent til front"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Hent valgte vinduer til fornt"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Hvos mye skrivebordet skal forminskes ved vindusbytte"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimert"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Skrivebordsplan"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Neste vindu"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Neste vindu (alle vinduer)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Neste vindu (ikke sprett-opp)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Sprett opp skifter hvis ikke synlig og velg neste vindu"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Sprett opp skifter hvis ikke synlig og velg neste vindu blant alle vinduer"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Sprett opp skifter hvis ikke synlig og velg forrige vindu"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Sprett opp skifter hvis ikke synlig og velg forrige vindu blant alle vinduer"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Forrige bilde"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Forrige vindu"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Forrige vindu (alle vinduer)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Forrige vindu (ikke sprett-opp)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Roter til det valgte vinduent mens skifting"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Velg neste vindu uten å vise oppsprettsvinduet"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Velg forrige vindu uten å vise oppsprettsvinduet"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Velg forrige vindu uten å vise oppsprettsvinduet"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Vis ikon ved siden av miniatyr"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Vis minimerte vinduer"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Hastighet for skifter"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Tisskritt for skifter"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Vinduer i skifteren"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Vinduer som skal vises i skifteren"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Sørg for støtte for YV12-fargeområde"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Videoavspilling"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Videoavspilling"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12-fargeområde"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Legg til linje"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Legg til punkt"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Legg til vanneffekter for forskjellige skrivebordshendelser"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Forsinkelse (i ms) mellom regndråper"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Bruk vanneffekter for musepeker"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linje"
+
+# fuzzy
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Skaleringsforskyvning"
+
+# fuzzy, "punkt" eller "pek"
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punkt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Forsinkelse for regn"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Tittelbølge"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Skru av/på regn"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Skru av/på regneffekten"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Skru av/på vindusvisker"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Skru av/på vindusviskereffekten"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Vanneffekt"
+
+# fuzzy
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Skaleringsforskyvning for vann"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Bølgeeffekt fra vindustittel"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Fokuseffekt"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Fokuseffekt for vindu"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Fokuser vinduer"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Friksjon"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Grip vinduer"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Oppløsning for rutenett"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Omvendt vindussmekking"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "La vindu skjelve"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Kartleggingseffekt"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Kartleggingseffekt for vinduer"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Kartlegg vinduer"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maksimeringseffekt"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimumsstørrelse for rutenett"
+
+# fuzzy, hva i huleste er egentlig vertex?
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimums størrelse for rutenett-vertex"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Flytt vinduer"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Skjelv"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Smekk omvendt"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Smekk vinduer"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fjæringsfriksjon"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "K for fjær"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Fjæringskonstant"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Skru av/på vindussmekking"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Bruk fjæringsmodell for ustødighetseffekt for vinduer"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Oppløsning for rutenett-vertex"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Vinduer som skal være ustødige når de fokuseres"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Vinduer som skal være ustødige når de gripes"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Vinduer som skal være ustødige når de kartlegges"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Vinduer som skal være ustødige når de flyttes"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Ustødighetseffekt når vinduer maksimeres og avmaksimeres"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Ustødige vinduer"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtrer lineært"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Bruk lineært filter når forstørret"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Forstørr skrivebord"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Forstørr"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Forminsk"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Panorer forstørrelse"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Forstørringshastighet"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Tidsskritt for forstørrelse"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Forstørr og panorer skrivebordskuben"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Forstørrelsesfaktor"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Forstørrelsespanorering"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Kommandolinje 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Kjør kommando 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Kommandolinje for skjermbilde"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Kommandolinje for skjermbilde"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Reduser vinduets dekkevne"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Øk vinduets dekkevne"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Dekkevneverdier for vinduer som skal være gjennomsiktige som standard"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Vinduer som blir påvirket"
+
+#~ msgid "Background Images"
+#~ msgstr "Bakgrunnsbilder"
+
+#~ msgid "Background images"
+#~ msgstr "Bakgrunnsbilder"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Plasser vinduer på et plan"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plan ned"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plan venstre"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plan høyre"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plan til ansikt 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plan til ansikt 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plan til ansikt 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plan til ansikt 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plan til ansikt 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plan til ansikt 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plan til ansikt 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plan til ansikt 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plan til ansikt 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plan til ansikt 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plan til ansikt 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plan til ansikt 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plan oppover"
+
+#~ msgid "Plane down"
+#~ msgstr "Plan nedover"
+
+#~ msgid "Plane left"
+#~ msgstr "Plan til venstre"
+
+#~ msgid "Plane right"
+#~ msgstr "Plan til høyre"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plan til ansikt 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plan til ansikt 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plan til ansikt 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plan til ansikt 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plan til ansikt 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plan til ansikt 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plan til ansikt 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plan til ansikt 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plan til ansikt 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plan til ansikt 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plan til ansikt 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plan til ansikt 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plan opp"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Uttoningstid for dekkevnen til skrivebordsvinduer"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..3d238bf
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,3468 @@
+# translation of compiz.po to Dutch
+# Dutch message file for YaST 2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+#
+# A.S. Kerkmeester <ask_murphy@bigfoot.com>, 1999, 2000, 2001.
+# FAX-Translations <all@fax-translations.com>, 2000.
+# Karl Eichwalder <ke@suse.de>, 1999, 2000.
+# Martin Lohner <ml@suse.de>, 2000.
+# peter@sybex.nl, 2000.
+# Elve <elve@savage-elve.net>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-04-18 17:08+0200\n"
+"Last-Translator: Harald van Bree <harald@vanbree.nl.eu.org>\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Bureaublad"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Venster Beheer"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Geen"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Schaal"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximaliseer"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximaliseer venster horizontaal"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximaliseer venster verticaal"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Geminimaliseerd"
+
+# /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:80
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatisch naar de voorgrond"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Venster menu"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Actie die ondernomen moet worden als de muis-wiel over venster titelbalk "
+"bladert"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Vervaging type"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity thema actief venster opaciteit"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity thema actief venster opaciteit schaduw"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity thema opaciteit"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity thema opaciteit schaduw"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Opaciteit te gebruiken voor actieve vensters met metacity thema decoratie"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opaciteit te gebruiken voor metacity thema decoratie"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Actieve vensters oprollen met metacity thema decoratie's van ondoorzichtig "
+"tot doorzichtig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Actieve vensters oprollen met metacity thema decoratie's van ondoorzichtig "
+"tot doorzichtig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Titelbalk muiswiel actie"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Type vervaging gebruikt voor venster decoratie"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Gebruik metacity thema"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Gebruik metacity thema voor venster decoratie"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Venster sluiten"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Demaximaliseer venster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximaliseer venster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Venster minimaliseren"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Het venster \"%s\" reageert niet"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Door deze applicatie geforceerd te sluiten kunt u niet opgeslagen "
+"wijzigingen kwijt raken."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Annoteer"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Annoteer opvul kleur"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Annoteer doorhaal kleur"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Annoteer plug-in"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Wissen"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Teken"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Teken met hulpmiddel"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Opvul kleur voor annotatie's"
+
+# Maybe "start" or "begin" would be better in dutch
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Initialiseren"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Initiëer tekenen van annotatie"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Initiëer verwijderen van annotatie"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Starten verwijdering"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Lijn breedte"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Lijn breedte voor annotaties"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Doorhaal kleur voor annotaties"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Doorhaal breedte"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Doorhaal breedte voor annotaties"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alpha Vervaging"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Aplha vervaging vensters"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Vervagen filter"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Vervagen verbergen"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Vervagen verzadiging"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Vervagen snelheid"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Vervagen Vensters"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Vervagen achter doorzichtige onderdelen van vensters"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Vervagen verzadiging"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Vensters vervagen"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Vervagen vensters zonder focus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Uitschakelen van vervagen van scherm-regio's bedekt door andere vensters."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Filter methode voor vervagen"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Focus vervagen"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Focus vervagen vensters"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussisch"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gaussische Radius"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gaussische Sterkte"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gaussische radius"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gaussische sterkte"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+# ../../db/printers.ycp.noloc:1400
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+# ../../db/printers.ycp.noloc:1400
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap detail-niveau"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Puls"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Puls effect"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Venster vervagen snelheid"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Vensters die aanmerking komen voor focus vervagen"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Vensters die alpha vervagen standaard moeten gebruiken"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Kloon uitvoer"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Start kloon selectie"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Kloon uitvoer afhandelaar"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Een toetsbinding, die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Een toetsbinding, die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Een toetsbinding, die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Een toetsbinding die wanneer gekozen een shell opdracht zal uitvoeren "
+"herkenbaar aan commando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Commando regel 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Commando regel 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Commando regel 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Commando regel 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Commando regel 2 "
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Commando regel 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Commando regel 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Commando regel 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Commando regel 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Commando regel 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Commando regel 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Commando regel 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Commando regel om uit te voerenin de shell als run_command0 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command1 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command10 aangeroepen "
+"wordt"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command11 aangeroepen "
+"wordt"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command2 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command3 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command4 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command5 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command6 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command7 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command8 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Command regel die uitgevoerd moet worden als start_command9 aangeroepen wordt"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Opdracht"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Start commando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Start commando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Start commando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Start commando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Start commando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Start commando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Start commando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Start commando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Start commando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Start commando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Start commando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Start commando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Actieve plugins"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Sta volledig scherm vensters toe om niet omgeleid te worden naar off-screen "
+"pixmaps"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Hoorbaar signaal"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Hoorbare systeem piep"
+
+# /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:80
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatisch naar de voorgrond"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Automatisch naar de voorgrond vetraging"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatische herkenning van uitvoer apparaten"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatische herkenning van verversings snelheid"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Best"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klik voor focus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Klik op venster neemt invoer focus mee"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Sluit actief venster"
+
+# /usr/lib/YaST2/clients/lan_address.ycp:88
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Standaard pictogram"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Standaard venster pictogram afbeelding"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Bureaublad kubus"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detecteer uitvoer"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detecteer verversings snelheid"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Snel"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Focus Vensters Voorkomen"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Focus Vensters Voorkomen"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Focus vensters voorkomen"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Algemene opties"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Algemene compiz opties"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Goed"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Verberg taakbalk overgeslagen vensters"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Verberg alle vensters en laat bureaublad zien"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Verberg vensters die niet in de taakbalk staan als Toon Bureaublad modus "
+"ingeschakeld wordt"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Virtuele horizontale grootte"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Negeer tips wanneer gemaximalizeerd"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Negeer vergroting en aspect hints indien venster is gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "interval voor het omhoogbrengen van geselecteerd venster"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Interval tussen ping berichten"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Belichting"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lijst met actieve plung-ins"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lijst met strings die uitvoer apparaten omschrijven"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Laat venster zakken"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Laat venster zakken achter andere vensters"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximaliseer venster horizontaal"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximaliseer venster verticaal"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximaliseer actief venster"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximaliseer actief venster horizontaal"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximaliseer actief venster verticaal"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimaliseer actief venster"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normaal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Aantal bureaubladen"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Aantal virtuele bureabladen"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Scherm alleen bijwerken tijdens verticale blanking periode"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Uitvoer"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping vertraging"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Op voorgrond na klikken"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Venster naar de voorgrond"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Breng venster naar de voorgrond na interval"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Breng venster op voorgrond over andere vensters"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Breng venster naar de voorgrond na aanklikken"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Verversings snelheid"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Schermgrootte vermenigvuldiger voor horizontale grootte"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "scherm grootte vermenigvuldiger voor verticale grootte"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Toon bureaublad"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Langzame animaties"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "Slim"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sync naar VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Texturen filteren"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Texturen filter"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Texturen filteren"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "De snelheid waarin een scherm opnieuw getekend wordt (tijd/seconden)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Schakel venster gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Schakel venster horizontaal gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Schakel venster vertikaal gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Schakel venster opgerold"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Schakel actief venster gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Schakel actief venster horizontaal gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Schakel actief venster vertikaal gemaximaliseerd"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Schakel actief venster schaduw"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Schakel het gebruik van langzame animaties"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Demaximaliseer actief venster"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Niet omleiden van volledig scherm vensters"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Gebruik diffuus licht als het scherm wordt getransformeerd"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Verticale virtuele grootte"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Venster menu knop verbinding"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Venster menu knop verbinding"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:812
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Versnelling"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Afbeelding bijstellen"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Top zijde afbeelding bijstellen op rotatie"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Door naar de volgende afbeelding"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Geanimeerde skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animeer skydome tijdens draaien van kubus"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:80
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatisch"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Kleur van de onder en boven zijde van de kubus"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Kleur om te gebruiken voor het onderste einde van de gradatie gebruikt als "
+"terugval voor de hemelkoepel"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Kleur om te gebruiken voor het bovenste einde van de gradatie die wordt "
+"gebruikt als hemelkoepel terugval"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kubus kleur"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kubus kleur"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Bureaublad kubus"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:812
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Uitvouw versnelling"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Uitvouw snelheid"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Vouw tijdstap"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Genereer mipmap waarmogelijk voor een hogere schalings kwaliteit"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Ga terug naar vorige dia"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Afbeeldings bestanden"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Te gebruiken afbeelding voor skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Initialiseer kubus transparantie alleen als rotatie via de muis gestuurd "
+"wordt"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Binnen in de kubus"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Binnen in de kubus"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lijst van PNG en SVG bestanden die afgebeeld moeten worden op de bovenzijde "
+"van de kubus"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Multi uitvoer modus"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Meerdere kubussen"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Volgende dia"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Een grote kubus"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Doorzichtig tijdens draaien"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Doorzichtig tijdens niet draaien"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Ondoorzichtigheid van het bureaublad tijdens het draaien."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Doorzichtig van het bureaublad tijdens het niet draaien"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Plaats venster op de kubus"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Vorige dia"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Render Skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Afbeelding oprekken"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Afbeelding oprekken om de boven zijde van de kubus te bedekken"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Selecteer hoe de kubus wordt weergegeven als er meerdere uitvoer apparaten "
+"gebruikt worden"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Hemelkoepel"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Hemelkoepel gradatie eind kleur"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Hemelkoepel gradatie start kleur"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Hemelkoepel afbeelding"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Snelheid"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Tijdstempel"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Doorschijnend alleen tijdens draaien met de muis"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Uitvouwen"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "kubus uitvouwen"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus control backend"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Sta toe dat mipmaps gegenereerd worden voor decoratie texturen"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Opdracht"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Venster decoratie"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Decorator commandoregel die uitgevoerd wordt als er nog geen decorator draait"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Slagschaduw X offset"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Slagschaduw Y offset"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Schaduw kleur"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Slagschaduw opaciteit"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Schaduw omtrek"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Schaduw kleur"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Schaduw X offset"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Schaduw Y offset"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Schaduw ondoorzichtigheid"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Schaduw omtrek"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Schaduw vensters"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Venster decoratie"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Venster decoraties"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Vensters met decoratie"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Vensters met schaduw"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rotatie snelheid"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Begrens Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Normale grootte aanpassing van vensters"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Verduisteren tijdsduur"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Vervaag bij Minimaliseren/Openen/Sluiten"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Vervaag snelheid"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Verduisteren tijdsduur"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Vervaag effect bij Minimaliseren/Openen/Sluiten"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Vervaag effect bij systeem piep"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Invagen van vensters als ze gemapped worden en uitvagen als ze gedemapped "
+"worden"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Vervaag vensters"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Vervagende vensters"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Visueel alarm is volledigscherm"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Volledig scherm vervagen bij systeem piep"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Visueel alarm"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Venster vervaag snelheid"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Vensters die geschaald moeten worden in schaal modus"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Vensters die moeten vervagen"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Koppel punt"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Koppel punt"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Gebruikers bestandssyteem"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Gebruikers bestandssysteem"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Gconf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Gconf gecontrolleerde backend"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib main loop ondersteuning"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Een terminal openen"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+# /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:336
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Uitvoeren dialoog"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Terminal commando regel"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Schermafdruk commodo regel"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Toon Hoofdmenu"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Toon start applicatie dialoog venster"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Toon hoofdmenu"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Maak een schermafdruk"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Maak een schermafdruk van een venster"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Terminal commando regel"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Venster schermafdruk commando"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini platte tekst backend"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Bestands wijziging meldings plug-in"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig gecontrolleerde backend"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimaliseer effect"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Venster minimaliseren"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimaliseer snelheid"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimaliseer tijdstempel"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Oprol weerstand"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Oprol weerstand"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+"Transformeer vensters als deze worden geminimaliseerd en gemaximaliseerd"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Te transformeren vesters tijdens minimaliseren"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Begrens Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Begrens Y coördinaat tot werkruimte gebied"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Werk de server-zijde positie niet bij van vensters totdat deze klaar is met "
+"verplaatsen"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Start venster verplaatsing"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Luie positionering"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Verplaats venster"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Verplaats venster"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Ondoorzichtigheid"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Ondoorzichtigheid van vensters als zij worden verplaatst"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Los springen en auto de-maximaliseren van vensters als zij versleept worden"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Los springen van gemaximaliseerde vensters"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Start vensters verplaatsen"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Helderheid"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Helderheid"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Helderheid"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Helderheid"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Verminderen opaciteit"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Verhoog opaciteit"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Opaciteit verander stap"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Opaciteit verander stap"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Opaciteit stap"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Ondoorzichtigheid van vensters als zij worden verplaatst"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Doorzichtig tijdens draaien"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Verzadiging"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Verzadiging"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Verzadiging"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Verzadiging"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Venster decoraties"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Venster opaciteit waarde"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Vervagen Vensters"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Vensters die standaard gepositioneerd moeten worden"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Vensters die standaard licht doorlatend moeten zijn"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Vensters die standaard gepositioneerd moeten worden"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Te gebruiken algoritme om vensters te plaatsen"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Achter elkaar"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Gecentreerd"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Venster Beheer"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Focus Vensters Voorkomen"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Horizontale viewport positie's"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Plaats venster"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Plaats vensters op toepasselijke positie's bij mapping"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Plaatsing modus"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Gepositioneerde vensters"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Willekeurig"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Selecteert waar vensters worden geschaald als meerdere uitvoer apparaten "
+"worden gebruikt."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Slim"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "Op alle uitvoer apparaten"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Verticale viewport positie"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Viewport gepositioneerde vensters"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Venster plaatsing workarounds"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Vensters die standaard gepositioneerd moeten worden"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Vensters die gepositioneerd moeten worden in een specifieke viewport"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Venster decoraties"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X positie"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X viewport positie's"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X positie waarden"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y positie's"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y viewport positie's"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y positie waarden"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "PNG afbeelding lader"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex matching voor vensters"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Rand kleur"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Rand kleur gebruikt voor omtrek en rechthoek grootte aanpassing modi"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Standaard grootte aanpassing modus"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Standaard modus gebruikt voor grootte aanpassing van vensters"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Vul kleur"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Vul kleur gebruikt voor de rechthoek grootte aanpassing modus"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Initiëer normale venster grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Initiëer omtrek venster grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Initiëer rechthoek venster grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Initiëer rekken venster grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Initiëer venster grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Normale grootte aanpassing van vensters"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Omtrek"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Omtrek grootte aanpassing van vensters"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rechthoek"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Rechthoek grootte aanpassing"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Grootte aanpassing venster"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Grootte aanpassing venster"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Begin met grootte aanpassing venster"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Begin met grootte aanpassing door het op te rekken"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Start grootte aanpassing venster normaal"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Begin grootte aanpassing van venster net omtrek"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Begin met grootte aanpassing met rechthoek"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Rekken"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Rekken grootte aanpassing van vensters"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+"Vensters waar normale grootte aanpassing voor gebruikt zou moeten worden"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Vensters waarvoor omtrek grootte aanpassing gebruikt zou moeten worden"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+"Vensters waarvoor rechthoek grootte aanpassing gebruikt zou moeten worden"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Vensters waarvoor rekken grootte aanpassing gebruikt zou moeten worden"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Rand kantel verslepen"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Rand kantel verplaatsen"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Rand kantel aanwijzer"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Kantel tijd"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Kantel naar linker viewport en warp aanwijzer"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Kantel naar volgende viewport als een object naar de scherm rand wordt "
+"versleept"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Kantel naar volgende viewport als de aanwijzer naar de schermrand wordt "
+"verplaatst"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Kantel naar volgende viewport als venster wordt verplaatst naar schermrand"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Kantel naar rechter viewport en warp aanwijzer"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverteer Y as voor aanwijzer beweging"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Aanwijzer Y inverteren"
+
+# /usr/lib/YaST2/clients/printconf_filter.ycp:200
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Aanwijzer gevoeligheid"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Omhoog halen bij roteren"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Verhef venster bij roteren"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Roteer kubus"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Roteer kantel links"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Roteer kantel rechts"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Roteer links"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Roteer links met venster"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Roteer rechts"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Roteer naar rechts met venster"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Roteer naar"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Roteer naar zijde 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Roteer naar zijde 1 met venster"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Roteer naar zijde 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Roteer naar zijde 10 met venster"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Roteer naar zijde 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Roteer naar zijde 11 met venster"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Roteer naar zijde 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Roteer naar zijde 12 met venster"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Roteer naar zijde 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Roteer naar zijde 2 met venster"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Roteer naar zijde 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Roteer naar zijde 3 met venster"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Roteer naar zijde 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Roteer naar zijde 4 met venster"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Roteer naar zijde 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Roteer naar zijde 5 met venster"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Roteer naar zijde 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Roteer naar zijde 6 met venster"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Roteer naar zijde 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Roteer naar zijde 7 met venster"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Roteer naar zijde 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Roteer naar zijde 8 met venster"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Roteer naar zijde 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Roteer naar zijde 9 met venster"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Roteer kubus"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Roteer bureaublad kubus"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Roteer naar links"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Roteer naar links en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Roteer naar rechts"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Roteer naar rechts en neem venster mee"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Roteer naar zijde 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Roteer naar zijde 1 met venster"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Roteer naar zijde 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Roteer naar zijde 1 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Roteer naar zijde 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Roteer naar zijde 10 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Roteer naar zijde 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Roteer naar zijde 11 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Roteer naar zijde 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Roteer naar zijde 12 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Roteer naar zijde 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Roteer naar zijde 2 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Roteer naar zijde 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Roteer naar zijde 3 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Roteer naar zijde 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Roteer naar zijde 4 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Roteer naar zijde 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Roteer naar zijde 5 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Roteer naar zijde 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Roteer naar zijde 6 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Roteer naar zijde 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Roteer naar zijde 7 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Roteer naar zijde 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Roteer naar zijde 8 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Roteer naar zijde 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Roteer naar zijde 9 en neem actief venster mee"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Roteer naar viewport"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Roteer venster"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Roteer met venster"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:812
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Rotatie acceleratie"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rotatie snelheid"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Rotatie tijdstap"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Rotatie zoom"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Gevoeligheid van aanwijzer beweging"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Klik kubus rotatie aan ondervlak"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Klik kubus rotatie aan bovenvlak"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Klik aan ondervlak"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Klik aan bovenvlak"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Begin rotatie"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Timeout voor kantelen viewport"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Mate van ondoorzichtigheid in procenten"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Groot"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Klik bureaublad voor Toon Bureaublad"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Achtergrond donker maken"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Achtergrond donker maken tijdens schalen van vensters"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Embleem"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Activeer Toon Bureaublad modus als bureaublad wordt aangeklikt tijdens het "
+"schalen"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Zweef tijd"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Initiëer venster kiezer"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Initiëer venster kiezer voor alle vensters"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Initiëer venster kiezer voor venster groep"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Initiëer venster kiezer voor vensters op huidige uitvoer"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Uitleggen en begin met transformeren van alle vensters"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Uitleggen en beginnen met transformeren van venster groep"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Uitleggen en start transformeren vensters"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Uitleggen en start transformeren vensters op huidige uitvoer"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Op alle uitvoer apparaten"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Op huidige uitvoer apparaten"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Overlay icoon"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Een overlay icoon op vensters als ze zijn geschaald"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Schaal"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Schaal vensters"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Schaal snelheid"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Schaal tijdstap"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Schaal vensters"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Selecteert waar vensters worden geschaald als meerdere uitvoer apparaten "
+"worden gebruikt."
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Ruimte tussen vensters"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Tussenruimte"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tijd (in ms) voordat de schaal modus wordt afgebroken als over het venster "
+"wordt gezweefd"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Vensters die geschaald moeten worden in schaal modus"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Automatisch schermafdruk openen in deze applicatie"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Directory"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Initiëer rechthoek schermafdruk"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Start toepassing"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Stop schermafdruk afbeeldingen in deze folder"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Schermafdruk"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Schermafdruk plugin"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "SVG afbeelding lader"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Mate van helderheid in procenten"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Mate van verzadiging in procenten"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Applicatie wisselaar"
+
+# /usr/lib/YaST2/clients/dialup_dev_cfg.ycp:80
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Auto rotatie"
+
+# /usr/lib/YaST2/clients/inst_ask_config.ycp:100
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Breng naar voren"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Breng geselcteerd venster naar voren"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Afstand bureaublad moet zijn uitgezoomd tijdens wisselen van vensters"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Pictogram"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Geminimaliseerd"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Bureaublad vlak"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Volgende venster"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Volgende venster (alle vensters)"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Volgende venster (geen popup)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+"Laat wisselaar te voorschijn komen indien niet zichtbaar en selecteer "
+"volgende venster"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Laat venster te voorschijn komen indien niet zichtbaar en selecteer volgende "
+"venster uit alle vensters"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Laat venster te voorschijn komen indien niet zichtbaar en selecteer vorige "
+"venster"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Laat wisselaar te voorschijn komen indien niet zichtbaar en selecteer vorige "
+"venster uit alle vensters"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Vorige dia"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Vorig venster"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Vorig venster (all vensters)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Vorig venster (geen popup)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Roteer naar het geselecteerde venster tijdens wisseling"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Selecteer volgende venster zonder het popup venster te tonen."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Selecteer vorige venster zonder het popup venster te tonen."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Selecteer vorige venster zonder het popup venster te tonen."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Toon pictogram naast thumbnail"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Toon geminimaliseerde vensters"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Wisselaar snelheid"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Wisselaar tijdstap"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Wisselaar vensters"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Vensters die getoond moeten worden in de wisselaar"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Voorzie in ondersteuning voor YV12 colorspace"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Video afspelen"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Video afspelen"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 colorspace"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Lijn toevoegen"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Punt toevoegen"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Voegt water effecten toe aan verschillende bureaublad acties"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Vertraging (in ms) tussen elke regen-druppel"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Inschakelen aanwijzer water effecten"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Lijn"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Offset schaal"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Regen vertraging"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Titel golf"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Schakel regen"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Schakel regen effect"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Schakel wisser"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Schakel wisser effect"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Water effect"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Water offset schaal"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Golf effect vanaf venster titel"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Focus effect"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Focus venster effect"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Focus vensters"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Wrijving"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Grijp vensters"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Raster Resolutie"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Geïnverteerd venster klikken"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Laat vensters rillen"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maximaliseren effect"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimale raster grootte"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimum vertex raster grootte"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Verplaats vensters"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Rilling"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Klikken geïnverteerd"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Vensters klikken"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Veer Wrijving"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Veer K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Veer Contstante"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Schakel venster klikken"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Gebruik veer model voor wiebelend venster effect"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Vertex raster resolutie"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Vensters die moeten wiebelen tijdens focus"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Vensters die moeten wiebelen als ze gegrepen worden"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Vensters die moeten wiebelen als ze gemapped worden"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Vensters die moeten wiebelen tijdens verplaatsen"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Wiebel effect tijdens maximaliseren en herstellen vensters"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Wiebelende Vensters"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filter Lineair"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Gebruik lineair filter zodra ingezoomd"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom bureaublad"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Zoom in"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Zoom uit"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Zoom verschuiven"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoom snelheid"
+
+# /usr/lib/YaST2/clients/inst_config_x11.ycp:821
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Zoom tijdstap"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zoomen en verschuiven van bureaublad kubus"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Zoom factor"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Zoom verschuiven"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Commando regel 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Start commando 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Schermafdruk commodo regel"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Schermafdruk commodo regel"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Verminderen venster opaciteit"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Verhoog venster opaciteit"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Opaciteit waarde voor vensters die standaard lichtdoorlatend moeten zijn"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#~ msgid "Opacity windows"
+#~ msgstr "Opaciteit vensters"
+
+#~ msgid "Background Images"
+#~ msgstr "Achtergrond afbeelding"
+
+#~ msgid "Background images"
+#~ msgstr "Achtergrond afbeelding"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#~ msgid "Place windows on a plane"
+#~ msgstr "Plaats vensters op een vlak"
+
+#~ msgid "Plane Down"
+#~ msgstr "Vlak omlaag"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#~ msgid "Plane Left"
+#~ msgstr "Vlak links"
+
+#~ msgid "Plane Right"
+#~ msgstr "Vlak rechts"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Vlak naar zijde 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Vlak naar zijde 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Vlak naar zijde 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Vlak naar zijde 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Vlak naar zijde 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Vlak naar zijde 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Vlak naar zijde 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Vlak naar zijde 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Vlak naar zijde 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Vlak naar zijde 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Vlak naar zijde 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Vlak naar zijde 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Vlak omhoog"
+
+# /usr/lib/YaST2/clients/lan_inetd_custom.ycp:770
+#~ msgid "Plane down"
+#~ msgstr "Vlak omlaag"
+
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+# /usr/lib/YaST2/clients/lan_dns.ycp:85
+#~ msgid "Plane left"
+#~ msgstr "Vlak rechts"
+
+#~ msgid "Plane right"
+#~ msgstr "Vlak rechts"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Vlak naar zijde 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Vlak naar zijde 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Vlak naar zijde 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Vlak naar zijde 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Vlak naar zijde 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Vlak naar zijde 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Vlak naar zijde 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Vlak naar zijde 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Vlak naar zijde 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Vlak naar zijde 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Vlak naar zijde 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Vlak naar zijde 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Vlak omhoog"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Bureaublad venster opaciteit verduisteren tijdsduur"
diff --git a/po/or.po b/po/or.po
new file mode 100644
index 0000000..437a16f
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,3450 @@
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Oriya\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2007-12-16 01:13+0530\n"
+"Last-Translator: jayashree pujari <sspujari@hotmail.com>\n"
+"Language-Team: gisti <info.gist@cdac.in>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Oriya\n"
+"X-Poedit-Country: India\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "ଡେସ୍କଟପ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "ଉଇଣ୍ଡୋ ପ୍ରବନ୍ଧନ"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "କମ୍ପିଜ"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "କିଛିନାହିଁ"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "ମାପକ"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "ସର୍ବାଧିକ କର"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "ଉଇଣ୍ଡୋକୁ ଦିଗବଳୀଯଭାବରେ ସର୍ବାଧିକ କର"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "ଦଣ୍ଡରୁପରେ ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କର"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "ନ୍ଯୁନତମହୋଇଥିବା"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "ସ୍ବତଃ-ଉତ୍ଥାନ"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "ଉଇଣ୍ଡୋ ମେନୁ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "ଗୋଟିଏ ଉଇଣ୍ଡୋ ଶୀର୍ଷକ ବାରରେ ମାଉସ ଚକ୍ରକୁ ଘୁରାଇବା ବେଳେ କରାୟିବାକୁ ଥିବା କାର୍ୟ୍ଯ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "ଅସ୍ପଷ୍ଟ ପ୍ରକାର"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "ମେଟାସିଟି ଥିମ ସକ୍ରିଯ ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛତା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "ମେଟାସିଟି ଥିମ ସକ୍ରିଯ ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛତା ଛାଯା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "ମେଟାସିଟି ଥିମ ଅସ୍ବଚ୍ଛତା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "ମେଟାସିଟି ଥିମ ଅସ୍ବଚ୍ଛତା ଛାଯା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "ମେଟାସିଟି ଥିମ ଅଳଂକରଣଗୁଡିକ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋ ପାଇଁ ଉପୟୋଗ କରାୟିବାକୁ ଥିବା ଅସ୍ବଚ୍ଛତା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "ମେଟାସିଟି ଥିମ ଅଳଂକରଣଗୁଡିକ ପାଇଁ ଉପୟୋଗ କରାୟିବାକୁ ଥିବା ଅସ୍ବଚ୍ଛତା"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "ମେଟାସିଟି ଥିମ ଅଳଙ୍କରଣଗୁଡିକ ସହିତ ଛାଯା ସକ୍ରିଯ ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛରୁ ସ୍ବଚ୍ଛ ପର୍ୟ୍ଯନ୍ତ "
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "ମେଟାସିଟି ଥିମ ଅଳଙ୍କରଣଗୁଡିକ ସହିତ ଛାଯା, ସକ୍ରିଯ ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛରୁ ସ୍ବଚ୍ଛ ପର୍ୟ୍ଯନ୍ତ "
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "ଶୀର୍ଷକ ବାର ମାଉସ ଚକ୍ରର କାର୍ୟ୍ଯ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଙ୍କରଣଗୁଡିକ ପାଇଁ ଉପୟୋଗ ହୋଉଥିବା ଅସ୍ପଷ୍ଟତାର ପ୍ରକାର"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "ମେଟାସିଟି ଥିମ ଉପୟୋଗକର"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଙ୍କରଣଗୁଡିକୁ ଅଂକନ କରିବା ବେଳେ ମେଟାସିଟି ଥିମ ଉପୟୋଗ କର"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "ଉଇଣ୍ଡୋ ବନ୍ଦକର"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "ଅଣ-ସର୍ବାଧିକ ଉଇଣ୍ଡୋ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କର"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "ଉଇଣ୍ଡୋକୁ ନ୍ଯୁନତମ କର"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "ବ୍ଯାଖ୍ଯା କର"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "ରଙ୍ଗ ପୁରଣ ବ୍ଯାଖ୍ଯାକର"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "ଆଘାତ ରଙ୍ଗକୁ ବ୍ଯାଖ୍ଯା କର"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "ପ୍ଲଗଇନ ବ୍ଯାଖ୍ଯାକର"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "ପରିଷ୍କାରକର"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "ଅଂକନକର"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "ସାଧନ ଉପୟୋଗକରି ଅଂକନକର"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "ବ୍ଯାଖ୍ଯା ପାଇଁ ରଙ୍ଗ ପୁରଣକର"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "ଚିତ୍ରାଙ୍କନ ବ୍ଯାଖ୍ଯା ପ୍ରାରମ୍ଭକର"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "ଲିଭାଇବା ବ୍ଯାଖ୍ଯା ଆରମ୍ଭକର"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "ଲିଭାଇବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "ରେଖା ଦୈର୍ଘ୍ଯ"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "ବ୍ଯାଖ୍ଯାଗୁଡିକ ପାଇଁ ରେଖା ଓସାର"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "ବ୍ଯାଖ୍ଯାଗୁଡିକ ପାଇଁ ଆଘାତ ରଙ୍ଗ"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "ଆଘାତ ଓସାର"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "ବ୍ଯାଖ୍ଯାଗୁଡିକ ପାଇଁ ଆଘାତ ରଙ୍ଗ"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xଦ୍ବିରୈଖୀକ"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "ଆଲ୍ଫା ଅସ୍ଫଷ୍ଟ"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "ଆଲ୍ଫା ଅସ୍ପଷ୍ଟ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "ଅସ୍ପଷ୍ଟ ଫିଲ୍ଟର"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "ଅସ୍ପଷ୍ଟ ଶୋଷଣ"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "ଅସ୍ପଷ୍ଟ ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "ଅସ୍ପଷ୍ଟ ଗତି"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "ଅସ୍ପଷ୍ଟ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "ଉଇଣ୍ଡୋର ସ୍ବଚ୍ଛ ଅଂଶଗୁଡିକ ପଛର ଅସ୍ପଷ୍ଟତା"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "ଅସ୍ପଷ୍ଟ ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "ଅସ୍ପଷ୍ଟ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "ଅସ୍ପଷ୍ଟ ଉଇଣ୍ଡୋ ୟାହାର ଲକ୍ଷ୍ଯ ନାହିଁ"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "ଅନ୍ଯ ଉଇଣ୍ଡୋ ଦ୍ବାରା ଅନ୍ଧକାରମଯ କରାୟାଇଥିବା ସ୍କ୍ରିନ ଅଂଚଳଗୁଡିକର ଅସ୍ପଷ୍ଟ କରିବାକୁ ଅକ୍ଷମକର"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "ଅସ୍ପଷ୍ଟକରିବା ପାଇଁ ଉପୟୋଗ ହେଉଥିବା ଫିଲ୍ଟର ପଦ୍ଧତି "
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "ଲକ୍ଷ୍ଯ ଅସ୍ପଷ୍ଟ"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "ଲକ୍ଷ୍ଯ ଅସ୍ପଷ୍ଟ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "ଗୌସିଆନ"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "ଗୌସିଆନ ବ୍ଯାସାର୍ଦ୍ଧ"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "ଗୌସିଆନ ଶକ୍ତି"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "ଗୌସିଆନ ବ୍ଯାସାର୍ଦ୍ଧ"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "ଗୌସିଆନ ଶକ୍ତି"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "ମିପ୍ ମ୍ଯାପ"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "ମିପ୍ ମ୍ଯାପ LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "ମିପ୍‌ମ୍ଯାପ ବିବରଣୀର-ସ୍ତର"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "ପଲ୍ସ(ଗତି)"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "ପଲ୍ସ ପ୍ରଭାବ"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "ଉଇଣ୍ଡୋ ଅସ୍ପଷ୍ଟ ଗତି"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଲକ୍ଷ୍ଯ ଅସ୍ପଷ୍ଟ ଦ୍ବାରା ପ୍ରଭାବିତ ହେବା ଉଚିତ"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଅଲ୍ଫା ଅସ୍ପଷ୍ଟତା ଡିଫଲ୍ଟରେ ଉପୟୋଗ କରିବା ଉଚିତ"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "କ୍ଲୋନ ଆଉଟପୁଟ"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "କ୍ଲୋନ ମନୋନଯନ ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "ଆଉଟପୁଟ କ୍ଲୋନ ପରିଚାଳକ"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ 0 ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୦ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୨ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୩ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୪ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ୫ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୬ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୭ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୮ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୯ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ 0 ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୦ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୨ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୩ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୪ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ୫ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୬ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୭ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୮ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୯ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ 0 ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୦ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୧୧ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୨ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୩ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୪ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ୫ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୬ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୭ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୮ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ଗୋଟିଏ କି-ବନ୍ଧନ ୟାହାକି ୟେବେ ଡକାୟାଏ, ଆଦେଶ ୯ ଦ୍ବାରା ଚିହ୍ନଟ ହୋଇଥିବା ସେଲ ଆଦେଶକୁ ଚଳାଇବ "
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "ଆଦେଶ ରେଖା ୦ "
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "ଆଦେଶ ରେଖା ୧"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "ଆଦେଶ ରେଖା ୧୦ "
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "ଆଦେଶ ରେଖା ୧୧ "
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "ଆଦେଶ ରେଖା ୨"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "ଆଦେଶ ରେଖା ୩"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "ଆଦେଶ ରେଖା ୪"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "ଆଦେଶ ରେଖା ୫"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "ଆଦେଶ ରେଖା ୬ "
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "ଆଦେଶ ରେଖା ୭"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "ଆଦେଶ ରେଖା ୮"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "ଆଦେଶ ରେଖା ୯ "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ 0 ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୧ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ0୧୦ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୧୧ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୨ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୩ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୪ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୫ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୬ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୭ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୮ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "ସେଲରେ କାର୍ୟ୍ଯକାରୀ ହେବାକୁ ଥିବା ଆଦେଶ ରେଖା ୟେବେ ଚଳାଅ_ଆଦେଶ୯ ଡକାୟାଇଥାଏ "
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "ଆଦେଶ"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "ଚଳାଅ ଆଦେଶ ୦"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "ଚଳାଅ ଆଦେଶ ୧"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "ଚଳାଅ ଆଦେଶ ୧୦"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "ଚଳାଅ ଆଦେଶ ୧୧"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "ଚଳାଅ ଆଦେଶ ୨"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "ଚଳାଅ ଆଦେଶ ୩"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "ଚଳାଅ ଆଦେଶ ୪"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "ଚଳାଅ ଆଦେଶ ୫"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "ଚଳାଅ ଆଦେଶ ୬"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "ଚଳାଅ ଆଦେଶ ୭"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "ଚଳାଅ ଆଦେଶ ୮"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "ଚଳାଅ ଆଦେଶ ୯"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "ସକ୍ରିଯ ପ୍ଲଗଇନଗୁଡିକ"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "ପୂର୍ଣ୍ଣସ୍କ୍ରିନ ଉଇଣ୍ଡୋର ଅଂକନକୁ ସ୍ବୀକୃତି ଦିଅ, ଅଫ୍ସ୍କ୍ରିନ ପିକ୍ସମ୍ଯାପଗୁଡିକୁ ପୁନଃନିର୍ଦ୍ଦେଶିତ ହେବ ନାହିଁ"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "ଶ୍ରବଣୟୋଗ୍ଯ ଘଣ୍ଟା"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "ଶ୍ରବଣୟୋଗ୍ଯ ସିଷ୍ଟମ ବିପ୍ ଶବ୍ଦ"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "ସ୍ବତଃ-ଉତ୍ଥାନ"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "ସ୍ବତଃ-ଉତ୍ଥାନ ବିଳମ୍ବ"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "ଆଉଟପୁଟ ଉପକରଣର ସ୍ବଯଂଚାଳିତ ଚିହ୍ନଟକରଣ"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "ରିଫ୍ରେସ ଦରର ସ୍ବଯଂଚାଳିତ ଚିହ୍ନଟକରଣ"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "ଉତ୍ତମ"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "ଲକ୍ଷ୍ଯ କରିବା ପାଇଁ କ୍ଲିକକର"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "ଉଇଣ୍ଡୋରେ କ୍ଲିକ, ଇନପୁଟ ଲକ୍ଷ୍ଯ ଏହାଉପରକୁ ଘୁଞ୍ଚାଏ ।"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ବନ୍ଦକର"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "ଡିଫଲ୍ଟ ଆଇକନ"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "ଡିଫଲ୍ଟ ଉଇଣ୍ଡୋ ଆଇକନ ଚିତ୍ର"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ଡେସ୍କଟପ ଘନକ୍ଷେତ୍ର"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "ଆଉଟପୁଟଗୁଡିକୁ ଚିହ୍ନଟକର"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "ରିଫ୍ରେସ ଦର ଚିହ୍ନଟକର"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "ଶୀଘ୍ର"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "ଲକ୍ଷ୍ଯ ବାଧାଦେବା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "ଲକ୍ଷ୍ଯ ବାଧାଦେବା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "ଲକ୍ଷ୍ଯ ବାଧାଦେବା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "ସାଧାରଣ ବିକଳ୍ପଗୁଡିକ"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "ସାଧାରଣ କମ୍ପିଜ ବିକଳ୍ପଗୁଡିକ"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "ଉତ୍ତମ"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "ବାଦଦେବା ଟାସ୍କବାର ଉଇଣ୍ଡୋକୁ ଲୁଚାଅ"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "ସବୁ ଉଇଣ୍ଡୋକୁ ଲୁଚାଅ ଏବଂ ଡେସ୍କଟପକୁ ଲକ୍ଷ୍ଯକର"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "ଡେସ୍କଟପ ମୋଡକୁ ଦେଖାଅ କୁ ପ୍ରବେଶ କରିବା ବେଳେ ଉଇଣ୍ଡୋଗୁଡିକୁ ଲୁଚାଅ ଟାସ୍କବାରରେ ନୁହେଁ"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "ଦିଗବଳୀଯ କଳ୍ପିତ ଆକାର"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "ୟେବେ ସର୍ବାଧିକ ହୋଇଥାଏ, ସଂକେତସୂଚନାକୁ ଅବହେଳାକର"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "ୟେବେ ଉଇଣ୍ଡୋ ସର୍ବାଧିକ ହୋଇଥାଏ ଆକାର ବୃଦ୍ଧିକରିବା ଏବଂ ଉଦ୍ଦେଶ୍ଯ ସଂକେତସୂଚନାକୁ ଅବହେଳାକର"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "ମନୋନୀତ ଉଇଣ୍ଡୋ ଉତ୍ଥାନ ପୂର୍ବରୁ ବ୍ଯବଧାନ"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "ପିଙ୍ଗ ସଂଦେଶଗୁଡିକ ମଧ୍ଯରେ ବ୍ଯବଧାନ"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "ଆଲୋକିତକରିବା"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "ବର୍ତ୍ତମାନ ସକ୍ରିଯ ଥିବା ପ୍ଲଗଇନଗୁଡିକର ତାଲିକା"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "ଆଉଟପୁଟ ଉପକରଣଗୁଡିକୁ ବର୍ଣ୍ଣନା କରୁଥିବା ସ୍ଟ୍ରିଙ୍ଗଗୁଡିକର ତାଲିକା"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "ନିମ୍ନତର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "ଅନ୍ଯ ଉଇଣ୍ଡୋ ତଳକୁ ଉଇଣ୍ଡୋକୁ ନିମ୍ନତର କର"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "ଉଇଣ୍ଡୋକୁ ଦିଗବଳୀଯଭାବରେ ସର୍ବାଧିକ କର"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "ଦଣ୍ଡରୁପରେ ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କର"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କର"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଦିଗବଳୀଯ ଭାବରେ ସର୍ବାଧିକ କର"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "ଦଣ୍ଡରୂପରେ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କର"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ନ୍ଯୁନତମ କର"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "ସାମାନ୍ଯ"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "ଡେସ୍କଟପଗୁଡିକର ସଂଖ୍ଯା"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "କଳ୍ପିତ ଡେସ୍କଟପଗୁଡିକର ସଂଖ୍ଯା"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "ଦଣ୍ଡରୂପ ଖାଲିକରିବା ଅବଧି ସମଯରେ କେବଳ ସ୍କ୍ରିନ ଅପଡେଟଗୁଡିକୁ କର"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "ଆଉଟପୁଟଗୁଡିକ"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "ପିଙ୍ଗ ବିଳମ୍ବ"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "କ୍ଲିକରେ ଉତ୍ଥାନକର"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "ଉଇଣ୍ଡୋକୁ ଉଠାଅ"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "ବ୍ଯବଧାନ ପରେ ମନୋନୀତ ଉଇଣ୍ଡୋକୁ ଉତ୍ଥାନ କର"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "ଅନ୍ଯ ଉଇଣ୍ଡୋ ଗୁଡିକ ଉପରକୁ ଉଠାଅ"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "ୟେବେ କ୍ଲିକ ହୁଏ ଉଇଣ୍ଡୋକୁ ଉତ୍ଥାନକର"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "ରିଫ୍ରେସ ଦର"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "ଦିଗବଳୀଯ କଳ୍ପିତ ଆକାର ପାଇଁ ସ୍କ୍ରିନ ଆକାର ଗୁଣକ"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "ଦଣ୍ଡରୂପୀ କଳ୍ପିତ ଆକାର ପାଇଁ ସ୍କ୍ରିନ ଆକାର ଗୁଣକ"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "ଡେସ୍କଟପ ଦେଖାଅ"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "ଧୀର ଚଳଚ୍ଚିତ୍ର "
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "ସ୍ଫୁର୍ତ୍ତି"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "ସିଙ୍କ Vଖାଲିକୁ"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "ଟେକ୍ସଟର ଫିଲ୍ଟର କରିବା"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "ଟେକ୍ସଚର ଫିଲ୍ଟର"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "ଟେକ୍ସଟର ଫିଲ୍ଟର କରିବା"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "ଦର ୟେଉଁଥିରେ ସ୍କ୍ରିନ ପୁନଃଅଂକିତ ହୋଇଛି (ସମଯ/ସେକେଣ୍ଡ)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "ସର୍ବାଧିକ ହୋଇଥିବା ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "ଦିଗବଳୀଯଭାବରେ ସର୍ବାଧିକ ହୋଇଥିବା ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "ଦଣ୍ଡ ଭାବରେ ସର୍ବାଧିକ ହୋଇଥିବା ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "ଛାଯାୟୁକ୍ତ ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "ସର୍ବାଧିକ ହୋଇଥିବା ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "ଦିଗବଳୀଯଭାବରେ ସର୍ବାଧିକ ହୋଇଥିବା ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "ଦଣ୍ଡ ଭାବରେ ସର୍ବାଧିକ ହୋଇଥିବା ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "ଛାଯାୟୁକ୍ତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "ଧୀର ଚଳଚିତ୍ରଗୁଡିକର ଉପୟୋଗକୁ ଟୋଗଲକର"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "ଅଣ-ସର୍ବାଧିକ ସକ୍ରିଯ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "ଅଣ-ପୁନଃନିର୍ଦ୍ଦେଶିତ ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "ୟେବେ ସ୍କ୍ରିନ ରୂପାନ୍ତରିତ ହୋଇଥାଏ, ବିକ୍ଷିପ୍ତ ଆଲୋକ ଉପୟୋଗ କର"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "ଦଣ୍ଡରୂପୀ କଳ୍ପିତ ଆକାର"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "ଉଇଣ୍ଡୋ ମେନୁ ବଟନ ବନ୍ଧନ"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "ଉଇଣ୍ଡୋ ମେନୁ କି ବନ୍ଧନ"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "ବେଗବର୍ଦ୍ଧନ"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "ଚିତ୍ର ବ୍ଯବସ୍ଥାକର"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "ଘୂର୍ଣ୍ଣନକୁ ଉପର ମୂହଁ ଚିତ୍ରକୁ ବ୍ଯବସ୍ଥାକର"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "ପରବର୍ତ୍ତୀ ସ୍ଲାଇଡକୁ ଅଗ୍ରସର ହୁଅ"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "ସ୍କାଇଡୋମ ଚଳନ୍ତିକର"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "ଘନକ୍ଷେତ୍ରକୁ ଘୂର୍ଣ୍ଣନ କରିବା ବେଳେ ସ୍କାଇଡୋମ ଚଳନ୍ତିକର"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "ସ୍ବଯଂଚାଳିତ"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "ଘନକ୍ଷେତ୍ରର ଉପର ଏବଂ ତଳପାର୍ଶ୍ବର ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "ସ୍କାଇଡୋମର ତଳ ରଙ୍ଗ-ସ୍ଥାନ ପାଇଁ - ପଶ୍ଚାତପତ୍ତନ କ୍ରମାବନତି ପାଇଁ ଉପୟୋଗ ହେବାକୁ ଥିବା ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "ସ୍କାଇଡୋମର ଉପର ରଙ୍ଗ-ସ୍ଥାନ ପାଇଁ - ପଶ୍ଚାତପତ୍ତନ କ୍ରମାବନତି ପାଇଁ ଉପୟୋଗ ହେବାକୁ ଥିବା ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ଘନକ୍ଷେତ୍ର ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "ଘନକ୍ଷେତ୍ର ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "ଡେସ୍କଟପ ଘନକ୍ଷେତ୍ର"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "ବେଗବର୍ଦ୍ଧନ ଭାଙ୍ଗକର"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "ଗତି ଭାଙ୍ଗକର"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "ସମଯସୋପାନ ଭାଙ୍ଗକର"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "ଉଚ୍ଚତର ଗୁଣବତ୍ତା ମାପିବା ପାଇଁ ୟେବେ ସମ୍ଭବ ମିପ୍ ମ୍ଯାପଗୁଡିକୁ ଉତ୍ପାଦନକର"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ସ୍ଲାଇଡକୁ ୟାଅ"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "ଚିତ୍ର ଫାଇଲଗୁଡିକ"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "ସ୍କାଇଡୋମ ପାଇଁ ଟେକ୍ସଚର ପରି ଉପୟୋଗ ହେବାକୁ ଥିବା ଚିତ୍ର"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "ୟଦି ଘୂର୍ଣ୍ଣନ କେବଳ ମାଉସ ଦ୍ବାରା ଟଣାୟାଇଥାଏ ଘନକ୍ଷେତ୍ରର ସ୍ବଚ୍ଛତାକୁ ପ୍ରାରମ୍ଭ କରେ ।"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "ଘନକ୍ଷେତ୍ର ଭିତରେ"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "ଘନକ୍ଷେତ୍ର ଭିତରେ"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr " PNG ଏବଂ SVG ଫାଇଲଗୁଡିକର ତାଲିକା ୟାହାକି ଘନକ୍ଷେତ୍ରର ଉପର ମୁହଁରେ ପ୍ରଦାନ ହେବା ଉଚିତ"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "ବହୁ-ଆଉଟପୁଟ ମୋଡ"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "ବହୁବିଧ ଘନକ୍ଷେତ୍ରଗୁଡିକ"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "ପରବର୍ତ୍ତୀ ସ୍ଲାଇଡ"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "ବଡ ଘନକ୍ଷେତ୍ରରେ"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "ଘୁର୍ଣ୍ଣନ ସମଯରେ ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "ଘୂରା ନୟିବା ବେଳେ ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "ଘୂର୍ଣ୍ଣନ ସମଯରେ ଡେସ୍କଟପ ଉଇଣ୍ଡୋର ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "ଘୁରା ନୟିବା ବେଳେ ଡେସ୍କଟପ ଉଇଣ୍ଡୋର ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "ଘନକ୍ଷେତ୍ରରେ ଉଇଣ୍ଡୋକୁ ସ୍ଥାପିତ କର"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ସ୍ଲାଇଡ"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "ସ୍କାଇଡୋମ ପ୍ରଦାନକର"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "ଚିତ୍ର ମାପ"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "ଘନକ୍ଷେତ୍ରର ଉପ ମୂହଁକୁ ଆବୃତ କରିବା ପାଇଁ ଚିତ୍ରଗୁଡିକୁ ମାପ"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "ୟଦି ବହୁବିଧ ଆଉଟପୁଟ ଉପକରଣଗୁଡିକ ଉପୟୋଗ ହୁଅନ୍ତି, ଘନକ୍ଷେତ୍ର କିପରି ପ୍ରଦର୍ଶିତ ହେବ ମନୋନୀତ କରେ ।"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "ସ୍କାଇଡୋମ"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "ସ୍କାଇଡୋମ କ୍ରମାବନତି ଶେଷ ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "ସ୍କାଇଡୋମ କ୍ରମାବନତି ଆରମ୍ଭ ରଙ୍ଗ"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "ସ୍କାଇଡୋମ ଚିତ୍ର"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "ଗତି"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "ସମଯସୋପାନ"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "କେବଳ ମାଉସ ଘୁରାଇବାରେ ସ୍ବଚ୍ଛତା"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "ଭାଙ୍ଗହୋଇନଥିବା"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "ଭାଙ୍ଗହୋଇନଥିବା ଘନକ୍ଷେତ୍ର"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "ଡିବସ୍"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "ଡିବସ ନିଯନ୍ତ୍ରଣ ବ୍ଯାକଏଣ୍ଡ"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "ଅଳଂକରଣ ଟେକ୍ସଟଚର ପାଇଁ ମିପ୍ ମ୍ଯାପଗୁଡିକୁ ଉତ୍ପାଦିତ ହେବା ସ୍ବୀକୃତିଦିଅ"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "ଆଦେଶ"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "ଅଳଂକରଣ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "ଅଳଂକୃତକାରୀ ଆଦେଶ ରେଖା କାର୍ୟ୍ଯକାରୀ ହୋଇଥାଏ, ୟଦି କୌଣସି ଅଳଂକୃତକାରୀ ପୂର୍ବରୁ ଚାଲୁନଥାଏ "
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "ଛାଯା X ଅଫ୍ସେଟ ପକାଅ"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "ଛାଯା Y ଅଫ୍ସେଟ ପକାଅ"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "ଛାଯା ରଙ୍ଗ ପକାଅ"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "ଛାଯା ଅସ୍ବଚ୍ଛତା ପକାଅ"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "ଛାଯା ବ୍ଯାସାର୍ଦ୍ଧ ପକାଅ"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "ଛାଯାରଙ୍ଗ"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "ଛାଯା ଅଫ୍ ସେଟ X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "ଛାଯା ଅଫ୍ ସେଟ Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "ଛାଯା ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "ଛାଯା ବ୍ଯାସାର୍ଦ୍ଧ"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "ଛାଯା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଂକରଣ"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଂକରଣଗୁଡିକ"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଅଳଂକୃତ ହେବା ଉଚିତ"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାର କି ଗୋଟିଏ ଛାଯା ରହିବା ଉଚିତ"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "ଘୂର୍ଣ୍ଣନ ଗତି"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "ଅବରୂଦ୍ଧY"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "ସାମାନ୍ଯ ପୁନଃଆକାର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "ଫିକାହେବା ସମଯ"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "ନ୍ଯୁନତମହେବା/ଖୋଲିବା/ବନ୍ଦହେବା ରେ ଫିକା କର"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "ଫିକାହେବା ଗତି"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "ଫିକାହେବା ସମଯ"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "ନ୍ଯୁନତମହେବା/ଖୋଲିବା/ବନ୍ଦହେବା ଉଇଣ୍ଡୋ ଘଟଣା ରେ ଫିକ୍କା ପ୍ରଭାବ"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "ସିଷ୍ଟମ ବିପ ଶବ୍ଦରେ ଫିକାହେବା ପ୍ରଭାବ"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"ଉଇଣ୍ଡୋ ଅଂକିତ ହେବା ସମଯରେ ରେ ଫିକ୍କା ହେବା ଏବଂ ଅଂକିତ ନହେବା ସମଯରେ ବାହାରେ ଫିକ୍କା ହେବା"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "ଫିକା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "ଉଇଣ୍ଡୋ ଫିକାହେଉଛି"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ ଦୃଶ୍ଯକ୍ଷମ ଘଣ୍ଟା"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "ସିଷ୍ଟମ ବିପ ଶବ୍ଦରେ ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ ଫିକ୍କା ପ୍ରଭାବ"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "ଦୃଶ୍ଯକ୍ଷମ ଘଣ୍ଟା"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "ଉଇଣ୍ଡୋ ଫିକା ହେବା ଗତି"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ମାପ ମୋଡରେ ମାପ ହେବା ଉଚିତ"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଫିକ୍କା ହେବା ଉଚିତ"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "ସ୍ଥାପନ ବିନ୍ଦୁ"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "ସ୍ଥାପନ ବିନ୍ଦୁ"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "ଉପୟୋଗକର୍ତ୍ତାଅନ୍ତର ଫାଇଲ ସିଷ୍ଟମ"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "ଉପୟୋଗକର୍ତ୍ତାଅନ୍ତର ଫାଇଲ ସିଷ୍ଟମ"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Gକନ୍ଫ"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "ଜିକନ୍ଫ ନିଯନ୍ତ୍ରଣ ବ୍ଯାକଏଣ୍ଡ"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "ଜିଲିବ୍"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "ଜିଲିବ୍ ମୂଖ୍ଯ ଲୁପ ସମର୍ଥନ"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "ଗୋଟିଏ ଟର୍ମିନାଲ ଖୋଲ"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "ଚଳାଅ ଡାଏଲଗ"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "ଟର୍ମିନାଲ ଆଦେଶ ରେଖା"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "ସ୍କ୍ରିନସଟ ଆଦେଶ ରେଖା"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "ମୂଖ୍ଯ ମେନୁ ଦେଖାଅ"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "ଚାଳାଅ ପ୍ରଯୋଗ ଡାଏଲଗକୁ ଦେଖାଅ"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "ମୂଖ୍ଯ ମେନୁକୁ ଦେଖାଅ"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "ଗୋଟିଏ ସ୍କ୍ରିନସଟ ନିଅ"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "ଗୋଟିଏ ଉଇଣ୍ଡୋର ସ୍କ୍ରିନସଟ ନିଅ"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "ଟର୍ମିନାଲ ଆଦେଶ ରେଖା"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "ଉଇଣ୍ଡୋ ସ୍କ୍ରିନସଟ ଆଦେଶ ରେଖା"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "ଇନି ଫ୍ଲାଟ ଫାଇଲ ବ୍ଯାକଏଣ୍ଡ"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ଫାଇଲ ପରିବର୍ତ୍ତନ ବିଜ୍ଞାପନ ପ୍ଲଗଇନ"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Iବିଜ୍ଞାପ୍ତି"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kକନଫିଗ୍"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "K କନଫିଗ୍ ନିଯନ୍ତ୍ରଣ ବ୍ଯାକଏଣ୍ଡ"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "ନ୍ଯୁନତମ ପ୍ରଭାବ"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ନ୍ଯୁନତମ କର"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "ଗତିକୁ ନ୍ଯୁନତମକର"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "ସମଯସୋପାନକୁ ନ୍ଯୁନତମକର"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "ଛାଯା ପ୍ରତିରୋଧକ"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "ଛାଯା ପ୍ରତିରୋଧକ"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "ଉଇଣ୍ଡୋ ଗୁଡିକୁ ରୂପାନ୍ତର କର ୟେବେ ସେଗୁଡିକ ନ୍ଯୁନତମ କିମ୍ବା ଅଣ-ନ୍ଯୁନତମ ହୁଅନ୍ତି "
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ରୂପାନ୍ତରିତ ହେବା ଉଚିତ ୟେବେ ନ୍ଯୁନତମ ହୋଇଥାଏ"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "ଅବରୂଦ୍ଧY"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y ସହୟୋଗୀକୁ କାର୍ୟ୍ଯସ୍ଥାନ ଅଂଚଳକୁ ଅବରୁଦ୍ଧକର"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "ଉଇଣ୍ଡୋର ସରଭର-ପଟ ସ୍ଥାନକୁ ଅପଡେଟ କର ନାହିଁ ୟେଉଁପର୍ୟ୍ଯନ୍ତ ଘୁଞ୍ଚାଇବା ଶେଷ ହୋଇ ନାହିଁ ।"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "ଉଇଣ୍ଡୋ ଘୁଞ୍ଚାଇବା ଆରମ୍ଭ କର"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "ଆଳସ୍ଯ ସ୍ଥାପନ କରିବା"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "ଉଇଣ୍ଡୋକୁ ଘୁଞ୍ଚାଅ"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "ଉଇଣ୍ଡୋକୁ ଘୁଞ୍ଚାଅ"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "ଘୁଞ୍ଚାୟାଉଥିବା ଉଇଣ୍ଡୋର ଅସ୍ବଚ୍ଛତା ସ୍ତର"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "ଟାଣିବା ବେଳେ ସର୍ବାଧିକ ଉଇଣ୍ଡୋକୁ ଛିନ୍ନକରିବା ବନ୍ଦକର ଏବଂ ସ୍ବତଃ ଅଣ-ସର୍ବାଧିକ କର "
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "ସର୍ବାଧିକ କରାୟାଇଥିବା ଉଇଣ୍ଡୋକୁ ଛିନ୍ନ କର"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "ଉଇଣ୍ଡୋକୁ ଘୁଞ୍ଚାଇବା ଆରମ୍ଭକର"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "ଉଜ୍ବଳତା"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "ଉଜ୍ବଳତା"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "ଉଜ୍ବଳତା"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "ଉଜ୍ବଳତା"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "ଅସ୍ବଚ୍ଛତା ହ୍ରାସକର"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "ଅସ୍ବଚ୍ଛତାକୁ ବୃଦ୍ଧିକର"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "ଅସ୍ବଚ୍ଛତା ପରିବର୍ତ୍ତନ ସୋପାନ"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "ଅସ୍ବଚ୍ଛତା ପରିବର୍ତ୍ତନ ସୋପାନ"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "ଅସ୍ବଚ୍ଛତା ସୋପାନ"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "ଘୁଞ୍ଚାୟାଉଥିବା ଉଇଣ୍ଡୋର ଅସ୍ବଚ୍ଛତା ସ୍ତର"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "ଘୁର୍ଣ୍ଣନ ସମଯରେ ଅସ୍ବଚ୍ଛତା"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "ସଂପୂର୍ଣ୍ଣ ମିଶ୍ରଣ"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଂକରଣଗୁଡିକ"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "ଉଇଣ୍ଡୋ ଗୁଡିକୁ ଅଂକନକର"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଡିଫଲ୍ଟରେ ସ୍ଥାପିତ ହେବା ଉଚିତ"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "ଉଇଣ୍ଡୋଗୁଡିକ ୟାହାକି ଡିଫଲ୍ଟରେ ସ୍ବଚ୍ଛ ହେବା ଉଚିତ"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଡିଫଲ୍ଟରେ ସ୍ଥାପିତ ହେବା ଉଚିତ"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "ଉଇଣ୍ଡୋ ସ୍ଥାପନ ପାଇଁ ଉପୟୋଗ ହେବାକୁ ଥିବା ଆଲଗୋରିଥମ"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "କ୍ଯାସକେଡ"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "କେନ୍ଦ୍ରିତ"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "ଉଇଣ୍ଡୋ ପ୍ରବନ୍ଧନ"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "ଲକ୍ଷ୍ଯ ବାଧାଦେବା ଉଇଣ୍ଡୋ"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "ଦିଗବଳାଯ ଦୃଶ୍ଯପୋର୍ଟ ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "ଉଇଣ୍ଡୋ ସ୍ଥାପିତକର"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "ଅଂକନ କରିବା ସମଯରେ ଉଇଣ୍ଡୋକୁ ଗୋଟିଏ ଉପୟୁକ୍ତ ସ୍ଥାନରେ ସ୍ଥାପିତ କର"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "ସ୍ଥାପନ ମୋଡ"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "ସ୍ଥାପିତ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "କ୍ରମହୀନ"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"ଉଇଣ୍ଡୋ ଗୁଡିକ କେଉଁଠାରେ ମାପ ହେବେ ମନୋନୀତ କରେ ୟଦି ବହୁବିଧ ଆଉଟପୁଟ ଉପକରଣ ଉପୟୋଗ ହୋଇଥାଆନ୍ତି ।"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "ସ୍ଫୁର୍ତ୍ତି"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "ସବୁ ଆଉଟପୁଟ ଉପକରଣରେ"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "ଦଣ୍ଡରୂପୀ ଦୃଶ୍ଯପୋର୍ଟ ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "ଦୃଶ୍ଯପୋର୍ଟ ସ୍ଥାପିତ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "ଉଇଣ୍ଡୋ ସ୍ଥାପନ ଚାରିପଟେକାମକରେ"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଡିଫଲ୍ଟରେ ସ୍ଥାପିତ ହେବା ଉଚିତ"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଡିଫଲ୍ଟରେ ଗୋଟିଏ ନିର୍ଦ୍ଦିଷ୍ଟ ଦୃଶ୍ଯପୋର୍ଟରେ ସ୍ଥାପିତ ହେବା ଉଚିତ"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ଉଇଣ୍ଡୋ ଅଳଂକରଣଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "ଚାରିପଟେକାମକରେ"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X ଦୃଶ୍ଯପୋର୍ଟ ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X ସ୍ଥାନ ମୂଲ୍ଯଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y ଦୃଶ୍ଯପୋର୍ଟ ସ୍ଥାନଗୁଡିକ"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y ସ୍ଥାନ ମୂଲ୍ଯଗୁଡିକ"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png ଚିତ୍ର ଲୋଡ କାରୀ"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "ରିଜେକ୍ସ ମେଳଖାଇବା"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "ରିଜେକ୍ସ ଉଇଣ୍ଡୋ ମେଳଖାଇବା"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "ସୀମାନ୍ତ ରଙ୍ଗ"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "ବୋର୍ଡର ରଙ୍ଗ ବାହ୍ଯରେଖା ଏବଂ ଆଯତାକାର ପୁନଃଆକାର ମୋଡଗୁଡିକ ପାଇଁ ଉପୟୋଗ ହୋଇଥାଏ "
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "ଡିଫଲ୍ଟ ପୁନଃଆକାର ମୋଡ"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "ଡିଫଲ୍ଟ ମୋଡ ଉଇଣ୍ଡୋ ପୁନଃଆକାର ଦେବା ପାଇଁ ଉପୟୋଗ ହୋଇଥାଏ"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "ରଙ୍ଗ ପୁରଣକର"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "ଆଯତାକାର ପୁନଃଆକାର ମୋଡ ପାଇଁ ପୁରଣ ରଙ୍ଗ ଉପୟୋଗ ହୋଇଥାଏ"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "ସାମାନ୍ଯ ଉଇଣ୍ଡୋ ପୁନଃଆକାରଦେବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "ବାହ୍ଯରେଖା ଉଇଣ୍ଡୋ ପୁନଃଆକାରଦେବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "ଆଯତକ୍ଷେତ୍ର ଉଇଣ୍ଡୋ ପୁନଃଆକାରଦେବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "ବିସ୍ତାରିତ ଉଇଣ୍ଡୋ ପୁନଃଆକାରଦେବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "ଉଇଣ୍ଡୋ ପୁନଃଆକାରଦେବା ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "ସାମାନ୍ଯ ପୁନଃଆକାର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "ବାହ୍ଯରେଖା"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "ବାହ୍ଯରେଖା ପୁନଃଆକାର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "ଆଯତାକାର"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "ଆଯତାକାର ପୁନଃଆକାର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାରଦିଅ"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାରଦିଅ"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାର ଦେବା ଆରମ୍ଭକର"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "ଉଇଣ୍ଡୋକୁ ବିସ୍ତାର କରିବା ଦ୍ବାରା ଏହାକୁ ପୁନଃଆକାର ଦେବା ଆରମ୍ଭ କର"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "ସାମାନ୍ଯ ଭାବରେ ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାର ଦେବା ଆରମ୍ଭକର"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "ବାହ୍ଯରେଖା ସହିତ ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାର ଦେବା ଆରମ୍ଭକର"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "ଆଯତାକାର ସହିତ ଉଇଣ୍ଡୋକୁ ପୁନଃଆକାର ଦେବା ଆରମ୍ଭକର"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "ବିସ୍ତାରିତ"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "ପୁନଃଆକାର ଉଇଣ୍ଡୋଗୁଡିକୁ ଟାଣିଲମ୍ବାକର"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "ଉଇଣ୍ଡୋ ୟାହା ପାଇଁ ସାମାନ୍ଯ ପୁନଃଆକାର ଉପୟୋଗ ହେବା ଉଚିତ"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "ଉଇଣ୍ଡୋ ୟାହା ପାଇଁ ବାହ୍ଯରେଖା ପୁନଃଆକାର ଉପୟୋଗ ହେବା ଉଚିତ"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "ଉଇଣ୍ଡୋ ୟାହା ପାଇଁ ଆଯତାକାର ପୁନଃଆକାର ଉପୟୋଗ ହେବା ଉଚିତ"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "ଉଇଣ୍ଡୋ ୟାହା ପାଇଁ ବିସ୍ତାରିତ ପୁନଃଆକାର ଉପୟୋଗ ହେବା ଉଚିତ"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "ଧାର ବଦଳ DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "ଧାର ବଦଳ ଘୁଞ୍ଚିବା"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "ଧାର ବଦଳ ପଏଣ୍ଟର"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "ସମଯ ବଦଳକର"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "ବାମ ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କର ଏବଂ ପଏଣ୍ଟରକୁ ବଙ୍କାକର"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "ସ୍କ୍ରିନର ଧାରକୁ ବସ୍ତୁକୁ ଟାଣିବା ବେଳେ ପରବର୍ତ୍ତୀ ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କର"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "ସ୍କ୍ରିନର ଧାରକୁ ପଏଣ୍ଟରକୁ ଘୁଞ୍ଚାଇବା ବେଳେ ପରବର୍ତ୍ତୀ ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କର"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "ଉଇଣ୍ଡୋକୁ ସ୍କ୍ରିନର ଧାରକୁ ଘୁଞ୍ଚାଇବା ବେଳେ ପରବର୍ତ୍ତୀ ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କର"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "ଡାହାଣ ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କର ଏବଂ ପଏଣ୍ଟରକୁ ବଙ୍କାକର"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "ପଏଣ୍ଟର ଚଳପ୍ରଚଳ ପାଇଁ Y ଅକ୍ଷକୁ ଓଲଟାଅ"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "ପଏଣ୍ଟର ଓଲଟାଅ Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "ପଏଣ୍ଟର ସଂବେଦନଶୀଳତା"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "ଘୁରାଇବାରେ ଉଠାଅ"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "ଘୁରାଇବା ବେଳେ ଉଇଣ୍ଡୋକୁ ଉତ୍ଥାନ କର"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "ଘନକ୍ଷେତ୍ରକୁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "ଫ୍ଲିପ ବାମକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "ଫ୍ଲିପ ଡାହାଣକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "ବାମକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ବାମକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "ଡାହାଣକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ଡାହାଣକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "କୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "୧୦କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୧୦କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "୧୧କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୧୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "୧୨କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୧୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "୨କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "୩କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୩କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "୪କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୪କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "୫କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୫କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "୬କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୬କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "୭କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୭କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "୮କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୮କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "୯କୁ ସମ୍ମୁଖୀନ ହେବାପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୯କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "ଘନକ୍ଷେତ୍ରକୁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "ଡେସ୍କଟପ କ୍ଯୁବ୍କୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "ବାମକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "ବାମକୁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "ଡାହାଣକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "ଡାହାଣକୁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "୧୦କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "୧୦କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "୧୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "୧୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "୧୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ "
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "୧୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "୩କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "୩କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "୪କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "୪କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "୫କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "୫କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "୬କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "୬କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "୭କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "୭କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "୮କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "୮କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "୯କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "୯କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ଘୁରାଅ ଏବଂ ସହିତ ସକ୍ରିଯ ଉଇଣ୍ଡୋକୁ ଆଣ "
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "ଦୃଶ୍ଯପୋର୍ଟକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "ଉଇଣ୍ଡୋକୁ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "ଉଇଣ୍ଡୋ ସହିତ ଘୁରାଅ"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "ଘୁର୍ଣ୍ଣନ ଗତିବର୍ଦ୍ଧନ"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "ଘୂର୍ଣ୍ଣନ ଗତି"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "ଘୁର୍ଣ୍ଣନ ସମଯସୋପାନ"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "ଘୁର୍ଣ୍ଣନ ଜୁମ"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "ପଏଣ୍ଟର ଚାଳନା ର ସମ୍ବେଦନଶୀଳତା"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ଉପର ମୂହଁକୁ ଘନକ୍ଷେତ୍ରର ଘୁର୍ଣ୍ଣନ ଛିନ୍ନକର"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ଉପର ମୂହଁକୁ ଘନକ୍ଷେତ୍ରର ଘୁର୍ଣ୍ଣନ ଛିନ୍ନକର"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ଉପର ମୂହଁକୁ ଛିନ୍ନକର"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ଉପର ମୂହଁକୁ ଛିନ୍ନକର"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "ଘୁର୍ଣ୍ଣନ ଆରମ୍ଭକର"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "ଦୃଶ୍ଯପୋର୍ଟକୁ ବଦଳ କରିବା ପୂର୍ବରୁ ସମଯଶେଷ"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "ଜୁମକର(ବଡକର)"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "ଶତକଡାରେ ଅସ୍ବଚ୍ଛତାର ପରିମାଣ"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "ବଡ"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "ଡେସ୍କଟପକୁ ଦେଖାଇବା ପାଇଁ ଡେସ୍କଟପକୁ କ୍ଲିକ କର"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "ପୃଷ୍ଠଭୂମିକୁ ଗାଢକର"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ମାପିବା ବେଳେ ପୃଷ୍ଠଭୂମିକୁ ଗାଢ କର"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "ଚିହ୍ନ"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "ମାପ ବେଳେ ୟେବେ ଡେସ୍କଟପ କ୍ଲିକ ହୋଇଥାଏ ଡେସ୍କଟପ ଦେଖାଅ ମୋଡକୁ ପ୍ରବେଶ କର"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "ହୋଭର ସମଯ"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "ଉଇଣ୍ଡୋ ଗୋଟାଇବାକୁ ଆରମ୍ଭକର"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "ସବୁ ଉଇଣ୍ଡୋ ପାଇଁ ଉଇଣ୍ଡୋ ପିକ୍କର ପ୍ରାରମ୍ଭକର"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "ଉଇଣ୍ଡୋ ସମୂହ ପାଇଁ ଉଇଣ୍ଡୋ ପିକ୍କର ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "ଚଳିତ ଆଉଟପୁଟରେ ଉଇଣ୍ଡୋ ପାଇଁ ଉଇଣ୍ଡୋ ପିକ୍କର ପ୍ରାରମ୍ଭ କର"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "ବିରଚନା ଏବଂ ଆରମ୍ଭ ସବୁ ଉଇଣ୍ଡୋକୁ ରୂପାନ୍ତରିତକରୁଛି "
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "ବିରଚନା ଏବଂ ଆରମ୍ଭ ଉଇଣ୍ଡୋ ସମୂହକୁ ରୂପାନ୍ତରିତ କରୁଛି"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "ବିରଚନା ଏବଂ ଆରମ୍ଭ ଉଇଣ୍ଡୋକୁ ରୂପାନ୍ତରିତ କରୁଛି"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "ବିରଚନା ଏବଂ ଆରମ୍ଭ ଚଳିତ ଆଉଟପୁଟରେ ଉଇଣ୍ଡୋକୁ ରୂପାନ୍ତରିତ କରୁଛି"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "ସବୁ ଆଉଟପୁଟ ଉପକରଣରେ"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "ଚଳିତ ଆଉଟପୁଟ ଉପକରଣରେ"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "ବିସ୍ତୃତକରିବା ଆଇକନ"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "ଥରେ ସେଗୁଡିକ ମାପ ହେବା ପରେ ଉଇଣ୍ଡୋରେ ଗୋଟିଏ ଆଇକନକୁ ବିସ୍ତୃତକର"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "ମାପକ"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ମାପ"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "ଗତି ମାପ"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "ସମଯସୋପାନକୁ ମାପ"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ମାପ"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"ଉଇଣ୍ଡୋ ଗୁଡିକ କେଉଁଠାରେ ମାପ ହେବେ ମନୋନୀତ କରେ ୟଦି ବହୁବିଧ ଆଉଟପୁଟ ଉପକରଣ ଉପୟୋଗ ହୋଇଥାଆନ୍ତି ।"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "ଉଇଣ୍ଡୋଗୁଡିକ ମଧ୍ଯରେ ଅନ୍ତର"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "ଅନ୍ତରଦେବା"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "ସମଯ (in ms)ମାପ ମୋଡ ପୂର୍ବରୁ ନଷ୍ଟ ହୋଇଥାଏ ୟେବେ ଗୋଟିଏ ଉଇଣ୍ଡୋ ଉପରେ ଦୋଳାଯମାନ ହୁଏ "
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ମାପ ମୋଡରେ ମାପ ହେବା ଉଚିତ"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "ଏହି ପ୍ରଯୋଗରେ ସ୍ବଯଂଚାଳିତଭାବରେ ସ୍କ୍ରିନସଟ ଖୋଲ"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "ବିବରଣୀପଞ୍ଜିକା"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "ଆଯତାକାର ସ୍କ୍ରିସଟକୁ ଆରମ୍ଭକର"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "ପ୍ରାରମ୍ଭକରିବା ପ୍ରଯୋଗ"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "ଏହି ବିବରଣୀପଞ୍ଜିକାରେ ସ୍କ୍ରିନସଟ ଚିତ୍ରଗୁଡିକୁ ରଖ"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "ସ୍କ୍ରିନ ସଟ"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "ସ୍କ୍ରିନସଟ ପ୍ଲଗଇନ"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg ଚିତ୍ର ଲୋଡକାରୀ"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "ଶତକଡାରେ ଉଜ୍ବଳତାର ପରିମାଣ"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "ଶତକଡାରେ ସଂପୂର୍ଣ୍ଣମିଶ୍ରଣର ପରିମାଣ"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "ପ୍ରଯୋଗ ଅଦଳବଦଳକାରୀ"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "ସ୍ବତଃଘୁର୍ଣ୍ଣନ"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "ଆଗକୁ ଆଣ"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "ମନୋନୀତ ଉଇଣ୍ଡୋକୁ ଆଗକୁ ଆଣ"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ଅଦଳବଦଳ କରିବା ବେଳେ ଦୂରତା ଡେସ୍କଟପ ଜୁମ ଆଉଟ ହେବା ଉଚିତ"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "ଆଇକନ"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "ନ୍ଯୁନତମହୋଇଥିବା"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ଡେସ୍କଟପ ସମତଳ"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ(ସବୁ ଉଇଣ୍ଡୋ)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ(ପପ୍ଅପ ନାହିଁ)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "ପପ୍ ଅପ ବଦଳକାରୀ ୟଦି ଦୃଶ୍ଯମାନ ନ ଥାଏ ଏବଂ ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"ପପ୍ ଅପ ବଦଳକାରୀ ୟଦି ଦୃଶ୍ଯମାନ ନ ଥାଏ ଏବଂ ସବୁ ଉଇଣ୍ଡୋ ମଧ୍ଯରୁ ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "ପପ୍ ଅପ ବଦଳକାରୀ ୟଦି ଦୃଶ୍ଯମାନ ନ ଥାଏ ଏବଂ ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"ପପ୍ ଅପ ବଦଳକାରୀ ୟଦି ଦୃଶ୍ଯମାନ ନ ଥାଏ ଏବଂ ସବୁ ଉଇଣ୍ଡୋ ମଧ୍ଯରୁ ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ସ୍ଲାଇଡ"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ( ସବୁ ଉଇଣ୍ଡୋ)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋ(ପପ୍ଅପ ନାହିଁ)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "ବଦଳ କରିବା ବେଳେ ମନୋନୀତ ଉଇଣ୍ଡୋକୁ ଘୁରାଅ"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "ପପ୍ ଅପ ଉଇଣ୍ଡୋକୁ ବିନା ଦେଖାଇ ପରବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "डेइमण शुरू कर रहा हैं।"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "ପପ୍ ଅପ ଉଇଣ୍ଡୋକୁ ବିନା ଦେଖାଇ ପୂର୍ବବର୍ତ୍ତୀ ଉଇଣ୍ଡୋକୁ ମନୋନୀତକର"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "ଥମନେଇଲ ନିକଟରେ ଥିବା ଆଇକନକୁ ଦେଖାଅ"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "ନ୍ଯୁନତମ ହୋଇଥିବା ଉଇଣ୍ଡୋକୁ ଦେଖାଅ"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "ଅଦଳବଦଳକାରୀ ଗତି"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "ଅଦଳବଦଳକାରୀ ସମଯସୋପାନ"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "ଉଇଣ୍ଡୋ ଅଦଳବଦଳକାରୀ"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ବଦଳକାରୀରେ ଦେଖାଇବା ଉଚିତ"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 ରଙ୍ଗସ୍ଥାନ ସମର୍ଥନ ୟୋଗାଇଦିଅ"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "ଭିଡିଓ ପୃଷ୍ଠଗାଯନ"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "ଭିଡିଓ ପୃଷ୍ଠଗାଯନ"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 ରଙ୍ଗସ୍ଥାନ"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "ରେଖା ୟୋଗକର"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "ବିନ୍ଦୁ ୟୋଗକର"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "ବିଭିନ୍ନ ଡେସ୍କଟପ କାର୍ୟ୍ଯକୁ ପାଣି ପ୍ରଭାବ ୟୋଗକର"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "ପ୍ରତ୍ଯେକ ବର୍ଷା ବିନ୍ଦୁ ମଧ୍ଯରେ ବିଳମ୍ବ(in ms) "
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "ପଏଣ୍ଟର ପାଣି ପ୍ରଭାବଗୁଡିକୁ ସକ୍ଷମ କର"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "ରେଖା"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "ଅଫ୍ ସେଟ ମାପକ"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "ବିନ୍ଦୁ"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "ବର୍ଷା ବିଳମ୍ବ"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "ଶୀର୍ଷକ ତରଙ୍ଗ"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "ବର୍ଷାକୁ ଟେଗଲକର"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "ବର୍ଷା ପ୍ରଭାବକୁ ଟେଗଲକର"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "ପୋଛିବା ଟୋଗଲକର"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "ପୋଛିବା ପ୍ରଭାବକୁ ଟେଗଲକର"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "ପାଣି ପ୍ରଭାବ"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "ପାଣି ଅଫ୍ସେଟ ମାପକ"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "ଉଇଣ୍ଡୋ ଶୀର୍ଷକରୁ ତରଙ୍ଗ ପ୍ରଭାବ"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "ଲକ୍ଷ୍ଯ ପ୍ରଭାବ"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "ଲକ୍ଷ୍ଯ ଉଇଣ୍ଡୋ ପ୍ରଭାବ"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "ଲକ୍ଷ୍ଯ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "ଘର୍ଷଣ"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "ଉଇଣ୍ଡୋ ଟାଣିନିଅ"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "ରିଜୋଲ୍ଯୁସନ"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "ଓଲଟାହୋଇଥିବା ଉଇଣ୍ଡୋ ଛିନ୍ନକରିବା "
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "ଉଇଣ୍ଡୋ ସିଭର କର"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "ପ୍ରଭାବକୁ ଅଂକନକର"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "ଉଇଣ୍ଡୋ ପ୍ରଭାବକୁ ଅଂକନକର"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "ଉଇଣ୍ଡୋ ଗୁଡିକୁ ଅଂକନକର"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "ପ୍ରଭାବକୁ ସର୍ବାଧିକ କର"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "ନ୍ଯୁନତମ ଗ୍ରୀଡ ଆକାର"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "ନ୍ଯୁନତମ ଭର୍ଟେକ୍ସ ଗ୍ରୀଡ ଆକାର"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ଘୁଞ୍ଚାଅ"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "ଥରିବା"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "ଛିନ୍ନକରିବା ଓଲଟାଗଲା"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "ଛିନ୍ନ ଉଇଣ୍ଡୋ"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "ସ୍ପ୍ରିଙ୍ଗ ଘର୍ଷଣ"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "ସ୍ପ୍ରିଙ୍ଗ K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "ସ୍ପ୍ରିଙ୍ଗ କନଷ୍ଟାଣ୍ଟ"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "ଉଇଣ୍ଡୋ ଛିନ୍ନକରିବାକୁ ଟେଗଲକର"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "ଅସ୍ଥିର ଉଇଣ୍ଡୋ ପ୍ରଭାବ ପାଇଁ ସ୍ପିଙ୍ଗ ମୋଡେଲ ଉପୟୋଗକର "
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "ଭର୍ଟେକ୍ସ ଗ୍ରୀଡ ରିଡୋଲ୍ଯୁସନ"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଲକ୍ଷ୍ଯ କେନ୍ଦ୍ରିତ ହେବା ବେଳେ ଅସ୍ଥିର ହେବା ଉଚିତ"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ୟେବେ ଟଣାୟାଏ ଅସ୍ଥିର ହେବା ଉଚିତ"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଅଂକନ ହେବା ବେଳେ ଅସ୍ଥିର ହେବା ଉଚିତ"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "ଉଇଣ୍ଡୋ ୟାହାକି ଘୁଞ୍ଚାଇବା ବେଳେ ଅସ୍ଥିର ହେବା ଉଚିତ"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "ଉଇଣ୍ଡୋକୁ ସର୍ବାଧିକ କିମ୍ବା ଅଣ-ସର୍ବାଧିକ କରିବା ବେଳେ ଅସ୍ଥିର ପ୍ରଭାବ"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "ଅସ୍ଥିର ଉଇଣ୍ଡୋ"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "ଫିଲ୍ଟର ରୌଖୀକ:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "ୟେବେ ବଡ ହୋଇଥାଏ ରୈଖୀକ ଫିଲ୍ଟର ଉପୟୋଗକର"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "ଡେସ୍କଟପ ବଡକର"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "ବଡକର"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "ଛୋଟ କର"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "ଜୁମ ପାନ"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "ଜୁମ ଗତି"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "ଜୁମ ସମଯସୋପାନ"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ଜୁମ ଏବଂ ପ୍ଯାନ ଡେସ୍କଟପ ଘନକ୍ଷେତ୍ର"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "ଜୁମ କାରଣ"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "ଜୁମ ପାନ "
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "ଆଦେଶ ରେଖା ୧"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "ଚଳାଅ ଆଦେଶ ୧"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "ସ୍କ୍ରିନସଟ ଆଦେଶ ରେଖା"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "ସ୍କ୍ରିନସଟ ଆଦେଶ ରେଖା"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛତା ହ୍ରାସକର"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛତା ବୃଦ୍ଧିକର"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "ଉଇଣ୍ଡୋ ପାଇଁ ଅସ୍ବଚ୍ଛତା ମୂଲ୍ଯଗୁଡିକ ୟାହାକି ଡିଫଲ୍ଟରେ ସ୍ବଚ୍ଛ ହେବା ଉଚିତ"
+
+#~ msgid "Opacity window values"
+#~ msgstr "ଅସ୍ବଚ୍ଛତା ଉଇଣ୍ଡୋ ମୂଲ୍ଯଗୁଡିକ"
+
+#~ msgid "Opacity windows"
+#~ msgstr "ଅସ୍ବଚ୍ଛତା ଉଇଣ୍ଡୋ"
+
+#~ msgid "Background Images"
+#~ msgstr "ପୃଷ୍ଠଭୂମି ଚିତ୍ରଗୁଡିକ"
+
+#~ msgid "Background images"
+#~ msgstr "ପୃଷ୍ଠଭୂମି ଚିତ୍ରଗୁଡିକ"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "ଗୋଟିଏ ସମତଳରେ ଉଇଣ୍ଡୋକୁ ସ୍ଥାପନ କର"
+
+#~ msgid "Plane Down"
+#~ msgstr "ସମତଳ ତଳକୁ"
+
+#~ msgid "Plane Left"
+#~ msgstr "ସମତଳ ବାମକୁ"
+
+#~ msgid "Plane Right"
+#~ msgstr "ସମତଳ ଡାହାଣକୁ"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "୧୦କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "୧୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "୧୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "୩କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "୪କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "୫କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "୬କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "୭କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "୮କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "୯କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane Up"
+#~ msgstr "ସମତଳ ଉପର"
+
+#~ msgid "Plane down"
+#~ msgstr "ସମତଳ ତଳକୁ"
+
+#~ msgid "Plane left"
+#~ msgstr "ସମତଳ ବାମକୁ"
+
+#~ msgid "Plane right"
+#~ msgstr "ସମତଳ ବାମକୁ"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "୧୦କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "୧୧କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "୧୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "୨କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "୩କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "୪କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "୫କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "୬କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "୭କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "୮କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "୯କୁ ସମ୍ମୁଖୀନ ହେବା ପାଇଁ ସମତଳ"
+
+#~ msgid "Plane up"
+#~ msgstr "ସମତଳ ଉପର"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "ଡେସ୍କଟପ ଉଇଣ୍ଡୋ ଅସ୍ବଚ୍ଛାତା ଫିକା ହେବା ସମଯ ।"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "टोण डायलिन्क (&T)"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "विन्डो मैनेजर"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "क्रिया"
+
+#~ msgid "Unknown"
+#~ msgstr "अनंजान"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "अवधि"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "किसी को लोग न करें"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "त्रिज्या"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "निम्नतम &GID"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "डेसक्टाप"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "लोकल टाइम"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "लोकल टाइम"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "क्रिया"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "स्टेपिगं"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "फिल्टर सैट करें"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "सेर्वर सार"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "windows"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "छोडं दिया \n"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "टाइम"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "डेसक्टाप"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "कमांड:"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "कमांड:"
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "संभरक"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "कोर्निश"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "फ्लोपी डिस्क"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "डेइमण शुरू कर रहा हैं।"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "टर्मिनल"
diff --git a/po/pa.po b/po/pa.po
new file mode 100644
index 0000000..97629d0
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,3872 @@
+# translation of compiz.po to Punjabi
+# Hindi message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Prasanth Kurian <prasanth.kurian@agreeya.com>
+#
+# A S Alam <apbrar@gmail.com>, 2007.
+# Amanpreet Singh Alam <aalam@users.sf.net>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2007-12-15 09:26+0530\n"
+"Last-Translator: Amanpreet Singh Alam <aalam@users.sf.net>\n"
+"Language-Team: American English <punjabi-users@llist.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KAider 0.1\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "ਵੇਹੜਾ"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "ਝਰੋਖਾ ਪਰਬੰਧਕ"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "ਕੰਮਪਿਜ਼"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "ਕੋਈ ਨਹੀਂ"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "ਸੰਭਾਲੋ"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "ਸਵੈ-ਚਾਲਤ"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "ਝਰੋਖਾ ਪਰਬੰਧਕ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "ਜਦੋਂ ਮਾਊਂਸ ਵੀਲ ਨੂੰ ਇੱਕ ਵਿੰਡੋ ਟਾਇਟਲ ਬਾਰ ਉੱਤੇ ਘੁੰਮਾਉਣ ਦੌਰਾਨ ਲੈਣ ਲਈ ਐਕਸ਼ਨ ਹੈ।"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "ਚੁਣੇ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Win&dows ਭਾਗ ਹਟਾਓ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Win&dows ਭਾਗ ਹਟਾਓ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "ਮੇਟਾਸਿਟੀ ਥੀਮ ਧੁੰਦਲਾਪਨ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "ਮੇਟਾਸਿਟੀ ਥੀਮ ਧੁੰਦਲਾਪਨ ਸ਼ੇਡ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਲਈ ਮੇਟਾਸਿਟੀ ਥੀਮ ਸਜਾਵਟ ਨਾਲ ਵਰਤਣ ਲਈ ਧੁੰਦਲਾਪਨ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "ਮੇਟਾਸਿਟੀ ਥੀਮ ਸਜਾਵਟ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਧੁੰਦਲਾਪਨ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "ਧੁੰਦਲੇਪਨ ਤੋਂ ਪਾਰਦਰਸ਼ ਲਈ ਸ਼ੈਡ ਐਕਟਿਵ ਵਿੰਡੋ ਮੇਟਾਸਿਟੀ ਥੀਮ ਸਜਾਵਟ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "ਧੁੰਦਲੇਪਨ ਤੋਂ ਪਾਰਦਰਸ਼ ਲਈ ਵਿੰਡੋ ਸ਼ੈਡੋ ਮੇਟਾਸਿਟੀ ਥੀਮ ਸਜਾਵਟ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "ਟਾਇਟਲ ਬਾਰ ਮਾਊਸ ਵੀਲ ਐਕਸ਼ਨ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "ਵਿੰਡੋ ਸਜਾਵਟ ਲਈ ਵਰਤਣ ਲਈ ਬਲਰ ਦੀ ਟਾਈਪ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "ਮੇਟਾਸਿਟੀ ਥੀਮ ਵਰਤੋਂ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "ਵਿੰਡੋ ਸਜਾਵਟ ਡਰਾਇੰਗ ਦੌਰਾਨ ਮੇਟਾਸਿਟੀ ਥੀਮ ਵਰਤੋਂ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "ਵਿੰਡੋ ਅਣ-ਵੱਧੋ-ਵੱਧ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "ਵਿੰਡੋ ਅਧਿਕਤਮ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+#, fuzzy
+msgid "Minimize Window"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "ਰੰਗ"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "ਐਨਾਟੇਟ ਸਟਰੋਕ ਰੰਗ"
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "ਸਰਗਰਮ ਪਰੋਫਾਇਲ"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "XF86Clear"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "ਡਰਾਅ"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "ਟੂਲ ਰਾਹੀਂ ਡਰਾਅ ਕਰੋ"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "ਐਨਾਟੇਸ਼ਨ ਲਈ ਭਰਨ ਰੰਗ"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "ਲਾਈਨ ਚੌੜਾਈ"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "ਐਨਾਟੇਸ਼ਨ ਲਈ ਲਾਈਨ ਚੌੜਾਈ"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "ਐਨਾਟੇਸ਼ਨ ਸਟਰੋਕ ਰੰਗ"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "ਸਟਰੋਕ ਚੌੜਾਈ"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "ਐਨਾਟੇਸ਼ਨ ਲਈ ਸਟਰੋਕ ਚੌੜਾਈ"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "ਫਿਲਟਰ:"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "ਫਿਲਟਰ ਸੈਟ(&S)"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "ਚੁਣੇ"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "ਵਿੰਡੋ ਦੇ ਪਾਰਦਰਸ਼ੀ ਭਾਗਾਂ ਪਿੱਛੇ ਬਲਰ ਕਰੋ"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "ਬਲਰ ਵਿੰਡੋ, ਜਿੰਨ੍ਹਾਂ ਨੂੰ ਫੋਕਸ ਨਹੀਂ ਹੋ ਸਕਦਾ "
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "ਹੋਰ ਵਿੰਡੋ ਵਲੋਂ ਵੇਖੇ ਜਾਂਦੇ ਸਕਰੀਨ ਭਾਗ ਬਲਰ ਨਾ ਕਰੋ"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "ਬਲਰ ਵਾਸਤੇ ਵਰਤਣ ਲਈ ਫਿਲਟਰ ਢੰਗ"
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "ਰੂਸੀ"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "ਰੂਸੀ ਸੰਘ"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "ਰੂਸੀ"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "ਰੂਸੀ ਸੰਘ"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "ਰੂਸੀ"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "ਲੀਮਾ"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "ਲੀਮਾ"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "ਮਿਪਮੈਪ ਵੇਰਵਾ ਦਾ ਲੈਵਲ"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "ਪਲਸ"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "ਪਲਸ ਪਰਭਾਵ"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਫੋਕਸ ਬਲਰ ਰਾਹੀਂ ਪਰਭਾਵਿਤ ਹੋਵੇ"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਡਿਫਾਲਟ ਐਲਫਾ ਵਰਤੇ"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "ਆਉਟਪੁੱਟ ਕਲੋਨ ਕਰੋ"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Init"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "ਆਉਟਪੁੱਟ ਕਲੋਨ ਹੈਂਡਲਰ"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command0 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command1 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command10 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command11 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command2 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command3 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command6 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command7 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command8 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command9 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command0 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command1 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command10 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command11 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command2 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command3 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command6 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command7 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command8 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command9 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command0 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command1 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command10 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command11 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ "
+"ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command2 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command3 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command5 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command6 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command7 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command8 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"ਇੱਕ ਕੀ-ਬਾਈਡਿੰਗ, ਜੋ ਕਿ ਉਦੋਂ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ, ਜਦੋਂ command9 ਰਾਹੀਂ ਪਛਾਣੀ ਸ਼ੈੱਲ ਕਮਾਂਡ ਰਾਹੀਂ ਚੱਲਦੀ ਹੈ।"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "ਜਦੋਂ run_command0 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "ਜਦੋਂ run_command1 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "ਜਦੋਂ run_command10 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "ਜਦੋਂ run_command11 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "ਜਦੋਂ run_command2 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "ਜਦੋਂ run_command3 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "ਜਦੋਂ run_command4 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "ਜਦੋਂ run_command5 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "ਜਦੋਂ run_command6 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "ਜਦੋਂ run_command7 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "ਜਦੋਂ run_command8 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "ਜਦੋਂ run_command9 ਹੋਵੇ ਤਾਂ ਸ਼ੈਲ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "ਕਮਾਂਡ '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "ਕਮਾਂਡ '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "ਕਮਾਂਡ '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "ਕਮਾਂਡ '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "ਸਰਗਰਮ ਪਰੋਫਾਇਲ"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "ਪੂਰੀ ਸਕਰੀਨ ਵਿੰਡੋਜ਼ ਦੀ ਡਰਾਇੰਗ ਨੂੰ ਆਫ਼-ਸਕਰੀਨ ਪਿਕਸਮੈਪ ਨੂੰ ਰੀ-ਡਿਰੈਕਟ ਨਾ ਕਰਨ ਲਈ ਮਨਜ਼ੂਰੀ"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "ਸੁਣਨਯੋਗ ਘੰਟੀ"
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "ਫਾਇਲ ਸਿਸਟਮ"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "ਸਵੈ-ਚਾਲਤ"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "ਆਟੋ-ਉਭਾਰਨ ਅੰਤਰਾਲ"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "ਆਉਟਪੁੱਟ ਜੰਤਰਾਂ ਦੀ ਆਟੋਮੈਟਿਕ ਖੋਜ"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "ਤਾਜ਼ਾ ਦਰ ਲਈ ਆਟੋਮੈਟਿਕ ਖੋਜ"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "ਉੱਤਮ"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "ਫੋਕਸ ਲਈ ਕਲਿੱਕ ਕਰੋ"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "ਵਿੰਡੋ ਲਈ ਇੰਪੁੱਟ ਫੋਕਸ ਲੈਣ ਲਈ ਕਲਿੱਕ ਕਰੋ"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਬੰਦ ਕਰੋ"
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "ਮੂਲ ਹਿੱਸਾ"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "ਮੂਲ ਡੋਮੇਨ"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "ਆਉਟਪੁੱਟ ਖੋਜੋ"
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "ਅੱਪਡੇਟ ਲਈ ਚੁਣੋ"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "ਤੇਜ਼"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "ਫੋਕਸ ਤੋਂ ਬਚਾਅ ਵਿੰਡੋ"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "ਫੋਕਸ ਤੋਂ ਬਚਾਅ ਵਿੰਡੋ"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "ਆਮ ਚੋਣਾਂ"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "ਆਮ ਕੰਪਿਜ਼ ਚੋਣਾਂ"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "ਚੰਗਾ"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "ਗ਼ੈਰ-ਟਾਸਕਬਾਰ ਵਿੰਡੋ ਓਹਲੇ"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "ਸਭ ਵਿੰਡੋ ਓਹਲੇ ਕਰੋ ਅਤੇ ਡੈਸਕਟਾਪ ਫੋਕਸ ਕਰੋ"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "ਜਦੋਂ ਡੈਸਕਟਾਪ ਮੋਡ ਵਿੱਚ ਜਾਣ ਲੱਗੋ ਤਾਂ ਟਾਸਕਬਾਰ ਵਿੱਚ ਨਾ ਮੌਜੂਦ ਵਿੰਡੋ ਓਹਲੇ"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "ਜਦੋਂ ਵੱਧੋ-ਵੱਧ ਹੋਵੇ ਤਾਂ ਹਿੰਟ ਅਣਡਿੱਠੇ"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "ਜਦੋਂ ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਹੋਵੇ ਤਾਂ ਵਾਧਾ ਸਾਈਜ਼ ਅਤੇ ਅਨੁਪਾਤ ਹਿੰਟ ਅਣਡਿੱਠੇ"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "ਚੁਣੇ ਵਿੰਡੋ ਉਭਾਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅੰਤਰਾਲ"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "ਪਿੰਗ ਸੁਨੇਹਿਆਂ ਦੌਰਾਨ ਅੰਤਰਾਲ"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "ਸਵੈ-ਮੁਅੱਤਲ ਯੋਗ"
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "ਲਾਗਿੰਗ"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "ਖੋਜੇ ਪਰਿੰਟਰ ਹੀ ਵੇਖਾਓ"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr " ਆਉਟਪੁੱਟ ਜੰਤਰਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ ਲਾਈਨਾਂ ਦੀ ਲਿਸਟ"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Windows"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "ਵਿੰਡੋ ਨੂੰ ਹੋਰ ਵਿੰਡੋ ਦੇ ਹੇਠਾਂ ਭੇਜੋ"
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "ਵੱਧੋ-ਵੱਧ ਐਕਟਿਵ ਵਿੰਡੋ"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "ਵੱਧੋ-ਵੱਧ ਐਕਟਿਵ ਵਿੰਡੋ ਹਰੀਜ਼ਟਲ"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "ਵੱਧੋ-ਵੱਧ ਐਕਟਿਵ ਵਿੰਡੋ ਵਰਟੀਕਲ"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਘੱਟੋ-ਘੱਟ"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "ਸਧਾਰਨ"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "ਵਰਟੀਕਲ ਝਪਕ ਪੀਰੀਅਡ ਦੌਰਾਨ ਹੀ ਸਕਰੀਨ ਅੱਪਡੇਟ ਕਰੋ"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "ਆਉਟਪੁੱਟ"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "ਵਕਫਾ"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "ਰੇਡੀਓ ਘੜੀ(&R)"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "ਚੁਣੇ ਵਿੰਡੋ ਅੰਤਰਾਲ ਬਾਅਦ ਉਭਾਰੋ"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "ਵਿੰਡੋ ਨੂੰ ਹੋਰ ਵਿੰਡੋਜ਼ ਉੱਤੇ ਉਭਾਰੋ"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "ਵਿੰਡੋ ਉਭਾਰੋ, ਜਦੋਂ ਕਲਿੱਕ ਕੀਤਾ ਜਾਵੇ"
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "ਤਾਜ਼ਾ"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "ਹਰੀਜੱਟਲ ਵੁਰਚੁਅਲ ਸਾਈਜ਼ ਲਈ ਸਕਰੀਨ ਸਾਈਜ਼ ਮਲਟੀਪਲਾਇਰ"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "ਵਰਟੀਕਲ ਵੁਰਚੁਅਲ ਸਾਈਜ਼ ਲਈ ਸਕਰੀਨ ਸਾਈਜ਼ ਮਲਟੀਪਲਾਇਰ"
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "ਸਾਰੇ ਭਾਗ ਵਿਖਾਓ"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "ਸਮਾਰਟ"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "VBlank ਨਾਲ ਸੈਕਰੋਨਾਈਜ਼"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "ਫਿਲਟਰ ਸੈਟ(&S)"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "ਫਿਲਟਰ ਸੈਟ(&S)"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "ਫਿਲਟਰ ਸੈਟ(&S)"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "ਰੇਟ, ਜਿਸ ਮੁਤਾਬਕ ਸਕਰੀਨ ਨੂੰ ਰੀ-ਡਰਾਅ ਕੀਤਾ ਜਾਵੇ (ਟਾਈਮ/ਸਕਿੰਟ)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਹਰੀਜ਼ਟਲ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਵਰਟੀਕਲ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "ਵਿੰਡੋ ਸ਼ੇਡ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਹਰੀਜੱਟਲ ਵੱਧੋ-ਵੱਧ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਵਰਟੀਕਲ ਵੱਧੋ-ਵੱਧ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "ਸਰਗਰਮ ਵਿੰਡੋ ਸ਼ੇਡ ਬਦਲੋ"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "ਹੌਲੀ ਐਨੀਮੇਸ਼ਨ ਲਈ ਟਾਗਲ ਵਰਤੋਂ"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "ਐਕਟਿਵ ਵਿੰਡੋ ਅਣ-ਵੱਧੋ-ਵੱਧ"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "ਪੂਰੀ-ਸਕਰੀਨ ਵਿੰਡੋ ਗ਼ੈਰ-ਡਿਰੈਕਸ਼ਨ"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "ਜਦੋਂ ਸਕਰੀਨ ਟਰਾਂਸਫਰਮ ਕੀਤੀ ਜਾਵੇ ਤਾਂ ਹਲਕੀ ਲਾਈਟ ਵਰਤੋਂ"
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "ਵਿੰਡੋ ਮੇਨੂ ਬਟਨ ਬਾਈਡਿੰਗ"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "ਵਿੰਡੋ ਮੇਨੂ ਕੀ ਬਾਈਡਿੰਗ"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D ਪ੍ਰਵੇਸ਼ਕ:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "ਚਿੱਤਰ ਅਡਜੱਸਟ ਕਰੋ"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "ਉੱਤੇ ਚਿੱਤਰ ਨੂੰ ਘੁੰਮਾਉਣ ਲਈ ਅਡਜੱਸਟ ਕਰੋ"
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "ਤਕਨੀਕੀ ਚੋਣ"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "ਸਕਾਈਡੋਮ ਐਨੀਮੇਟ"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "ਜਦੋਂ ਕਿਊਬ ਘੁੰਮੇ ਤਾਂ ਸਕਾਈਡੋਮ ਐਨੀਮੇਟ ਕਰੋ"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "ਸਵੈ-ਚਾਲਤ"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "ਕਿਊਬ ਦੇ ਉੱਤੇ ਅਤੇ ਤਲ ਸਾਈਡਾਂ ਦਾ ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "ਤਲ ਰੰਗ -ਸਕਾਈਡੋਮੇ ਰੋਕਣ ਲਈ-ਫਾਲਬੈਕ ਗਰੇਡੀਐਂਟ ਵਾਸਤੇ ਵਰਤਣ ਲਈ ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "ਟਾਪ ਰੰਗ -ਸਕਾਈਡੋਮੇ ਰੋਕਣ ਲਈ-ਫਾਲਬੈਕ ਗਰੇਡੀਐਂਟ ਵਾਸਤੇ ਵਰਤਣ ਲਈ ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D ਪ੍ਰਵੇਸ਼ਕ:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "ਚੁਣੇ"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "ਵੱਧ ਕੁਆਲਟੀ ਸਕੇਲਿੰਗ ਲਈ ਜਦੋਂ ਵੀ ਸੰਭਵ ਹੋਵੇ mip-ਮੈਪ ਬਣਾਓ"
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "ਪਿਛਲਾ ਕਰਨਲ"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "ਅਸਫਲ ਫਾਇਲਾਂ"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "ਸਕਾਈਡੋਮ ਲਈ ਟੈਕਸਟ ਵਾਂਗ ਵਰਤਣ ਲਈ ਚਿੱਤਰ"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "ਘਣ ਪਾਰਦਰਸਤਾ ਤਾਂ ਹੀ ਸ਼ੁਰੂ ਕਰੋ, ਜੇ ਘੁੰਮਾਉਣਾ ਮਾਊਂਸ ਨਾਕਲ ਹੋਵੇ।"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "ਕਿਊਬ ਅੰਦਰ"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "ਕਿਊਬ ਅੰਦਰ"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "PNG ਅਤੇ SVG ਫਾਇਲਾਂ ਦੀ ਲਿਸਟ, ਜੋ ਕਿ ਕਿਊਬ ਦੇ ਟਾਪ ਫੇਸ ਉੱਤੇ ਰੈਂਡਰ ਕੀਤੇ ਜਾਣੇ ਹਨ"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "ਮਲਟੀ ਆਉਟਪੁੱਟ ਮੋਡ"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "ਮਲਟੀਪਲ ਕਿਊਬ"
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "ਨਵਾਂ ਅਕਾਰ"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "ਵੱਡੇ ਕਿਊਬ ਉੱਤੇ"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "ਘੁੰਮਾਉਣ ਦੌਰਾਨ ਧੁੰਦਲਾਪਨ"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "ਜਦੋਂ ਨਾ ਘੁੰਮੇ ਤਾਂ ਧੁੰਦਲਾਪਨ"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "ਡੈਸਕਟਾਪ ਵਿੰਡੋ ਦਾ ਧੁੰਦਲਾਪਨ, ਜਦੋਂ ਘੁੰਮਦਾ ਹੋਵੇ"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "ਜਦੋਂ ਘੁੰਮਦਾ ਨਾ ਹੋਵੇ ਤਾਂ ਡੈਸਕਟਾਪ ਵਿੰਡੋ ਧੁੰਦਲਾਪਨ"
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "ਪਿਛਲਾ ਕਰਨਲ"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "ਰੈਂਡਮ ਸਕਾਈਡੋਮ"
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "ਚਿੱਤਰਾਂ ਨੂੰ ਕਿਊਬ ਦਾ ਉੱਤੇ ਫੇਸ ਢੱਕਣ ਲਈ ਸਕੇਲ ਕਰੋ"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "ਚੁਣੋ ਕਿ ਘਣ ਨੂੰ ਕਿਵੇਂ ਵੇਖਾਇਆ ਜਾਵੇ, ਜਦੋਂ ਮਲਟੀਪਲ ਆਉਟਪੁੱਟ ਜੰਤਰ ਵਰਤੇ ਜਾਣ।"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "ਸਕਾਈਡੋਮ"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "ਸਕਾਈਡੋਮੇ ਗਰੇਡੀਐਂਟ ਅੰਤ ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "ਸਕਾਈਡੋਮੇ ਗਰੇਡੀਐਂਟ ਸ਼ੁਰੂ ਰੰਗ"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "ਸਕਾਈਡੋਮ ਚਿੱਤਰ"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "ਚੁਣੇ"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "ਕੇਵਲ ਮਾਊਂਸ ਘੁੰਮਾਉਣ ਨਾਲ ਹੀ ਪਾਰਦਰਸ਼ੀ"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "ਅਣ-ਫੋਲਡ"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "ਕਿਊਬ ਅਣਫੋਲਡ"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus ਕੰਟਰੋਲ ਬੈਕਐਂਡ"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "ਸਜਾਵਟ ਟੈਕਸਟ ਲਈ ਤਿਆਰ ਕਰਨ ਲਈ ਮਿਪਮੈਪ ਮਨਜ਼ੂਰ"
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "ਕਮਾਂਡ: "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "ਸਜਾਵਟ ਕਮਾਂਡ ਲਾਇਨ, ਜੋ ਕਿ ਕਿਸੇ ਸਜਾਵਟ ਨਾ ਚੱਲਣ ਦੀ ਹਾਲਤ ਵਿੱਚ ਚਲਾਈ ਜਾਵੇ"
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "ਅਰਧ-ਵਿਆਸ"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "ਅਰਧ-ਵਿਆਸ"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "ਅਰਧ-ਵਿਆਸ"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind ਚੋਣ"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "ਵਿੰਡੋ, ਜਿਸ ਦੀ ਸਜਾਵਟ ਕਰਨੀ ਹੈ"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "ਵਿੰਡੋ, ਜਿਸ ਦੀ ਸ਼ੈਡੋ ਹੋਵੇ"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "ਸ਼ਾਮਲ"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "ਮੌਕੇ ਤੇ"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "ਘੱਟੋ-ਘੱਟ/ਖੋਲ੍ਹਣ/ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਫੇਡ ਆਨ"
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "ਚੁਣੇ"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "ਮੌਕੇ ਤੇ"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "ਵਿੰਡੋ ਘੱਟੋ-ਘੱਟ/ਖੋਲ੍ਹਣ/ਬੰਦ ਕਰਨ ਦੇ ਈਵੈਂਟ ਸਮੇਂ ਫੇਡ ਪਰਭਾਵ"
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "ਫਾਇਲ ਸਿਸਟਮ"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "ਜਦੋਂ ਮੈਪਿੰਗ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋ ਫੇਡ ਇਨ ਅਤੇ ਜਦੋਂ ਅਣ-ਮੈਪ ਹੋਵੇ ਤਾਂ ਵਿੰਡ ਫੇਡ ਆਉਟ"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "ਟੱਚ-ਸਕਰੀਨ"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "ਸਿਸਟਮ ਬੀਪ ਉੱਤੇ ਪੂਰੀ ਸਕਰੀਨ ਫੇਡ ਪਰਭਾਵ"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "ਦਿੱਖ ਬਿੱਲ"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "ਵਿੰਡੋਜ਼, ਜੋ ਕਿ ਸਕੇਲ ਮੋਡ 'ਚ ਸਕੇਲ ਕਰਨੀਆਂ ਹਨ"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਫੇਡ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "ਸੰਪਰਕ ਸ਼ਾਮਿਲ"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "ਸੰਪਰਕ ਸ਼ਾਮਿਲ"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "ਯੂਜ਼ਰ-ਸਪੇਸ ਫਾਇਲ ਸਿਸਟਮ"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "ਯੂਜ਼ਰ-ਸਪੇਸ ਫਾਇਲ ਸਿਸਟਮ"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf ਕੰਟਰੋਲ ਬੈਕਐਂਡ"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib ਮੇਨ ਲੂਪ ਸਹਿਯੋਗ"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "ਇੱਕ ਟਰਮੀਨਲ ਖੋਲ੍ਹੋ"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+#, fuzzy
+msgid "Run Dialog"
+msgstr "ਟੋਨ ਡਾਇਲ(&T)"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+#, fuzzy
+msgid "Show Main Menu"
+msgstr "ਬੂਟ ਸੂਚੀ ਵੇਖਾਓ(&S)"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ ਡਾਈਲਾਗ ਵੇਖੋ"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+#, fuzzy
+msgid "Show the main menu"
+msgstr "ਬੂਟ ਸੂਚੀ ਵੇਖਾਓ(&S)"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "ਇੱਕ ਸਕਰੀਨ-ਸ਼ਾਟ ਲਵੋ"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "ਇੱਕ ਵਿੰਡੋ ਦਾ ਇੱਕ ਸਕਰੀਨ-ਸ਼ਾਟ ਲਵੋ"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "ਵਿੰਡੋ ਸਕਰੀਨ-ਸ਼ਾਟ ਕਮਾਂਡ ਲਾਈਨ"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "ਕੋਈ ਲਾਗ ਨਾ ਕਰੋ"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini ਫਲੈਟ ਫਾਇਲ ਬੈਕਐਂਡ"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "ਫਾਇਲ ਬਦਲਣ ਨੋਟੀਫਿਕੇਸ਼ਨ ਪਲੱਗਇਨ"
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "ਕੋਈ ਲਾਗ ਨਾ ਕਰੋ"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig ਕੰਟਰੋਲ ਬੈਕਐਂਡ"
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "ਸ਼ੇਡ ਵਿਰੋਧ"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "ਸ਼ੇਡ ਵਿਰੋਧ"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "ਵਿੰਡੋ ਟਰਾਂਸਫਰਮ ਕਰੋ, ਜਦੋਂ ਉਹ ਘੱਟੋ-ਘੱਟ ਅਤੇ ਅਣ-ਘੱਟੋ-ਘੱਟ ਹੋਣ"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਘੱਟੋ-ਘੱਟ ਕਰਨ ਦੌਰਾਨ ਟਰਾਂਸਫਰਮ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "ਸ਼ਾਮਲ"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "ਵਰਕਸਪੇਸ ਏਰੀਏ ਲਈ ਕਨਸਟਰੇਨ Y ਧੁਰਾ"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "ਸਰਵਰ ਨਾ ਅੱਪਡੇਟ ਨਾ ਕਰੋ-ਵਿੰਡੋ ਦੀ ਸਾਇਡ ਸਥਿਤੀ, ਜਦੋਂ ਕਿ ਘੁੰਮਾਉਣਾ ਮੁੱਕੇ"
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "ਹੇਠਾਂ ਜਾਓ(&D)"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "ਹੇਠਾਂ ਜਾਓ(&D)"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "ਜਦੋਂ ਡਰੈਗ ਕੀਤਾ ਜਾਵੇ ਤਾਂ ਵੱਧੋ-ਵੱਧ ਵਿੰਡੋਜ਼ ਨੂੰ ਸਨੈਪ-ਆਫ਼ ਅਤੇ ਆਟੋ ਅਣ-ਵੱਧੋ-ਵੱਧ ਕਰੋ"
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "ਬਰਿੱਜ"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "ਬਰਿੱਜ"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "ਬਰਿੱਜ"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "ਬਰਿੱਜ"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "ਧੁੰਦਲਾਪਨ ਘਟਾਓ"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "ਧੁੰਦਲਾਪਨ ਵਧਾਓ"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "ਉਸਟਾਨ (ਪੋਸਟ 1500)"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "ਉਸਟਾਨ (ਪੋਸਟ 1500)"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "ਧੁੰਦਲਾਪਨ ਸਟੈਪ"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "ਘੁੰਮਾਉਣ ਦੌਰਾਨ ਧੁੰਦਲਾਪਨ"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "ਅੰਤਰਾਲ"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind ਚੋਣ"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "ਵਿੰਡੋ. ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਸਥਿਤ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "ਵਿੰਡੋ,. ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਪਾਰਦਰਸ਼ੀ ਹੋਵੇ"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "ਵਿੰਡੋ. ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਸਥਿਤ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "ਵਿੰਡੋ ਸਥਿਤੀ ਬਦਲਣ ਵਾਸਤੇ ਐਲੋਗਰਥਿਮ"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "ਕੈਸਕੇਡ"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "ਸੈਂਟਰਡ"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "ਝਰੋਖਾ ਪਰਬੰਧਕ"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "ਫੋਕਸ ਤੋਂ ਬਚਾਅ ਵਿੰਡੋ"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "ਜਦੋਂ ਮੈਪ ਕੀਤਾ ਜਾਵੇ ਤਾਂ ਵਿੰਡੋ ਨੂੰ ਢੁੱਕਵੀਆਂ ਥਾਵਾਂ ਉੱਤੇ ਰੱਖੋ"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "ਸਥਿਤੀ ਰੱਖਣ ਮੋਡ"
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "ਰੈਂਡਮ"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "ਚੁਣੋ, ਜਿੱਥੇ ਵਿੰਡੋ ਸਕੇਲ ਕਰਨੀ ਹੈ, ਜਦੋਂ ਕਿ ਕਈ ਆਉਟਪੁੱਟ ਜੰਤਰ ਚੁਣੇ ਜਾਂਦੇ ਹਨ।"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "ਸਮਾਰਟ"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "ਸਭ ਆਉਟਪੁੱਟ ਜੰਤਰਾਂ ਉੱਤੇ"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind ਚੋਣ"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "ਵਿੰਡੋ. ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਸਥਿਤ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਖਾਸ ਵਿਊਪੋਰਟ ਵਿੱਚ ਰੱਖੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind ਚੋਣ"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "ਵਰਕਸਮੂਹ(&W)"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X ਸਥਿਤੀ ਮੁੱਲ"
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "ਫ਼ਰਜ਼ੀ ਜੰਤਰ"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y ਸਥਿਤੀ ਮੁੱਲ"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png ਚਿੱਤਰ ਲੋਡਰ"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Regex ਮੇਲ ਕਰੋ"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Regex ਵਿੰਡੋ ਮੇਲ ਕਰੋ"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "ਰੰਗ"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "ਬਾਰਡਰ ਰੰਗ, ਜੋ ਕਿ ਆਉਟਲਾਈਨ ਅਤੇ ਚਤੁਰਭੁਜ ਰੀਸਾਇਜ਼ ਮੋਡ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "ਡਿਫਾਲਟ ਰੀਸਾਇਜ਼ ਮੋਡ"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "ਵਿੰਡੋ ਮੁੜ-ਆਕਾਰ ਕਰਨ ਦੌਰਾਨ ਵਰਤਣ ਲਈ ਡਿਫਾਲਟ ਮੋਡ"
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "ਰੰਗ"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "ਚਤੁਰਭੁਜ ਮੁੜ-ਆਕਾਰ ਮੋਡ ਲਈ ਭਰਨ ਵਾਸਤੇ ਰੰਗ"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "ਰੰਗ"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "ਚਤੁਰਭੁਜ"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "ਮੁੜ-ਆਕਾਰ(&s)"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "ਖਿੱਚੋ"
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਨਾਰਮਲ ਮੁੜ-ਸਾਈਜ਼ ਲਈ ਵਰਤਣੀ ਹੈ"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਆਉਟਲਾਈਨ ਮੁੜ-ਸਾਈਜ਼ ਲਈ ਵਰਤਣਾ ਹੈ"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਆਉਟਲਾਈਨ ਮੁੜ-ਸਾਈਜ਼ ਲਈ ਵਰਤਣਾ ਹੈ"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਮੁੜ-ਸਾਈਜ਼ ਤਾਣੀ ਜਾਣ ਲਈ ਵਰਤੀ ਜਾਵੇਗੀ"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "ਕੋਨਾ ਫਲਿਪ DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "ਕੋਨਾ ਫਲਿ ਚਾਲ"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "ਕੋਨਾ ਫਲਿਪ ਪੁਆਇੰਟਰ"
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "ਮੌਕੇ ਤੇ"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "ਖੱਬੇ ਵੇਖਣ-ਪੋਰਟ ਲਈ ਫਲਿੱਪ ਅਤੇ ਸਮੇਟ ਪੁਆਇੰਟਰ"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "ਅੱਗੇ ਵੇਖੋ-ਪੋਰਟ ਲਈ ਫਲਿਪ ਕਰੋ, ਜਦੋਂ ਕਿ ਡਰੈਗ ਕੀਤਾ ਆਬਜੈਕਟ ਸਕਰੀਨ ਕੋਨੇ ਉੱਤੇ ਜਾਵੇ"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "ਅੱਗੇ ਵੇਖੋ-ਪੋਰਟ ਲਈ ਫਲਿਪ ਕਰੋ, ਜਦੋਂ ਕਿ ਪੁਆਇੰਟਰ ਸਕਰੀਨ ਕੋਨੇ ਉੱਤੇ ਜਾਵੇ"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "ਅੱਗੇ ਵੇਖੋ-ਪੋਰਟ ਲਈ ਫਲਿਪ ਕਰੋ, ਜਦੋਂ ਕਿ ਵਿੰਡੋ ਸਕਰੀਨ ਕੋਨੇ ਉੱਤੇ ਜਾਵੇ"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "ਸੱਜਾ ਵੇਖਣ-ਪੋਰਟ ਲਈ ਝਟਕੋ ਅਤੇ ਪੁਆਇੰਟਰ ਸਮੇਟੋ"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "ਪੁਆਇੰਟਰ ਚਾਲ ਲਈ ਉਲਟ Y ਧੁਰਾ"
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "%1 ਲਈ ਸੂਚਕ"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "ਪਰਿੰਟਰ ਵੇਰਵਾ(&D)"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "ਘੁੰਮਾਉਣ ਉੱਤੇ ਉਭਾਰੋ"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "ਜਦੋਂ ਘੁੰਮਾਈ ਜਾਵੇ ਤਾਂ ਵਿੰਡੋ ਉਭਾਰੋ"
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "ਸੱਜੇ"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "ਸੱਜੇ"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "ਸੱਜੇ"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "ਸੱਜੇ"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D ਪ੍ਰਵੇਸ਼ਕ:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "ਪੁਆਇੰਟਰ ਚਾਲ ਲਈ ਸੰਵੇਦਨਸ਼ੀਲਤਾ"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "ਘਣ ਘੁੰਮਾਉਣ ਟਾਪ ਫੇਸ ਲਈ ਸਨੈਪ"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "ਘਣ ਘੁੰਮਾਉਣ ਟਾਪ ਫੇਸ ਲਈ ਸਨੈਪ"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "ਟਾਪ ਫੇਸ ਲਈ ਸਨੈਪ"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "ਟਾਪ ਫੇਸ ਲਈ ਸਨੈਪ"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "ਖੋਜ ਸ਼ੁਰੂ"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "ਫਲਿਪਿਗ ਵੇਖਣ-ਪੋਰਟ ਤੋਂ ਪਹਿਲਾਂ ਟਾਈਮਆਉਟ"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "ਲਾਗਆਉਟ"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "ਫੀਸਦੀ ਵਿੱਚ ਧੁੰਦਲਾਪਨ ਮਾਤਰਾ"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "ਵੱਡਾ"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "ਡੈਸਕਟਾਪ ਵੇਖਣ ਲਈ ਡੈਸਕਟਾਪ ਕਲਿੱਕ ਕਰੋ"
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "ਪਿੱਠਭੂਮੀ"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "ਬੈਕਗਰਾਊਂਡ ਗੂੜ੍ਹਾਪਨ, ਜਦੋਂ ਵਿੰਡੋ ਸਕੇਲ ਕੀਤੀ ਜਾਵੇ"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "ਨਿਸ਼ਾਨ"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "ਜਦੋਂ ਸਕੇਲ ਦੌਰਾਨ ਡੈਸਕਟਾਪ ਕਲਿੱਕ ਕੀਤਾ ਜਾਵੇ ਤਾਂ ਡੈਸਕਟਾਪ ਵੇਖੋ ਮੋਡ ਦਿਓ"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "ਹੋਵਰ ਟਾਈਮ"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "ਸ਼ੁਰੂਆਤੀ RAM ਡਿਸਕ"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "ਲੇਆਉਟ ਅਤੇ ਸਭ ਵਿੰਡੋਜ਼ ਲਈ ਟਰਾਸਫਰਮੇਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "ਲੇਆਉਟ ਅਤੇ ਵਿੰਡੋ ਲਈ ਟਰਾਸਫਰਮੇਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "ਵਿੰਡੋ ਲੇਆਉਟ ਅਤੇ ਟਰਾਂਸਫਰਮੇਸ਼ਨ ਸਟਾਰਟ"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "ਮੌਜੂਦਾ ਆਉਟਪੁੱਟ ਉੱਤੇ ਲੇਆਉਟ ਅਤੇ ਸਭ ਵਿੰਡੋਜ਼ ਲਈ ਟਰਾਸਫਰਮੇਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "ਸਭ ਆਉਟਪੁੱਟ ਜੰਤਰਾਂ ਉੱਤੇ"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "ਮੌਜੂਦਾ ਆਉਟਪੁੱਟ ਜੰਤਰ ਉੱਤੇ"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "ਓਵਰਲੇ ਆਈਕਾਨ"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "ਵਿੰਡੋ ਉੱਤੇ ਇੱਕ ਆਈਕਾਨ ਰੱਖੋ, ਜਦੋਂ ਉਹ ਸਕੇਲ ਕੀਤੇ ਜਾਣ"
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "ਸੰਭਾਲੋ"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "ਚੁਣੋ, ਜਿੱਥੇ ਵਿੰਡੋ ਸਕੇਲ ਕਰਨੀ ਹੈ, ਜਦੋਂ ਕਿ ਕਈ ਆਉਟਪੁੱਟ ਜੰਤਰ ਚੁਣੇ ਜਾਂਦੇ ਹਨ।"
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "ਸਪੇਨ"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "ਸਕੇਲ ਮੋਡ ਖਤਮ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਟਾਈਮ (ms ਵਿੱਚ), ਜਦੋਂ ਕਿ ਹੋਵਰ ਵਿੰਡੋ ਉੱਤੇ ਹੋਵੇ"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "ਵਿੰਡੋਜ਼, ਜੋ ਕਿ ਸਕੇਲ ਮੋਡ 'ਚ ਸਕੇਲ ਕਰਨੀਆਂ ਹਨ"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "ਇਹ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਆਟੋਮੈਟਿਕ ਹੀ ਸਕਰੀਨਸ਼ਾਟ ਖੋਲ੍ਹੋ"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "ਡਾਇਰੈਕਟਰੀ\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Init"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "ਇੱਕ ਕਾਰਜ ਚਲਾਓ"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "ਇਹ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਕਰੀਨ-ਸ਼ਾਟ ਚਿੱਤਰ ਰੱਖੋ"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "ਸਕਰੀਨ"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg ਚਿੱਤਰ ਲੋਡਰ"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "ਫੀਸਦੀ ਵਿੱਚ ਚਮਕ ਦੀ ਮਾਤਰਾ"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "ਫੀਸਦੀ ਵਿੱਚ ਸੰਤ੍ਰਿਪਤਾ ਦੀ ਮਾਤਰਾ"
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "ਕਾਰਜ ਕਰਮ"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "ਸਵੈ-ਚਾਲਤ"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "ਬੂਟ ਦੌਰਾਨ"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "ਚੁਣੀ ਵਿੰਡੋ ਅੱਗੇ ਲਿਆਵੋ"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "ਜਦੋਂ ਵਿੰਡੋ ਨੂੰ ਸਵਿੱਚ ਕੀਤਾ ਜਾਵੇ ਤਾਂ ਦੂਰੀ ਡੈਸਕਟਾਪ ਨੂੰ ਜ਼ੂਮ ਆਉਟ ਕੀਤਾ ਜਾਵੇਗਾ"
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "ਆਈਕਾਨ"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "ਪੋਪਅੱਪ ਸਵਿੱਚ, ਜੇ ਨਾ ਦਿੱਸੇ ਅਤੇ ਅਗਲੀ ਵਿੰਡੋ ਚੁਣੋ"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "ਪੋਪ-ਅੱਪ ਸਵਿੱਚਰ, ਜੇ ਉਪਲੱਬਧ ਨਾ ਹੋਵੇ ਅਤੇ ਸਭ ਵਿੰਡੋ ਵਿੱਚੋਂ ਅਗਲੀ ਵਿੰਡੋ ਚੁਣੋ"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "ਪੋਪਅੱਪ ਸਵਿੱਚਰ, ਜੇ ਉਪਲੱਬਧ ਨਾ ਹੋਵੇ ਅਤੇ ਪਿਛਲੀ ਵਿੰਡੋ ਚੁਣੇ"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "ਪੋਪਅੱਪ ਸਵਿੱਚਰ, ਜੇ ਉਪਲੱਬਧ ਨਾ ਹੋਵੇ ਅਤੇ ਸਭ ਵਿੰਡੋ ਵਿੱਚੋਂ ਪਿਛਲੀ ਚੁਣੇ"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "ਪਿਛਲਾ ਕਰਨਲ"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "ਚੁਣੀ ਵਿੰਡੋ ਨੂੰ ਘੁੰਮਾਓ, ਜਦੋਂ ਕਿ ਸਵਿੱਚ ਕਰਨਾ ਹੋਵੇ"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "ਪੋਪਅੱਪ ਵਿੰਡੋ ਵੇਖਾਏ ਬਿਨਾਂ ਹੀ ਅਗਲੀ ਵਿੰਡੋ ਚੁਣੋ"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "ਪੋਪਅੱਪ ਵਿੰਡੋ ਵੇਖਾਏ ਬਿਨਾਂ ਹੀ ਪਿਛਲੀ ਵਿੰਡੋ ਚੁਣੋ"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "ਥੰਮਨੇਲ ਲਈ ਅੱਗੇ ਆਈਕਾਨ ਵੇਖੋ"
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਸਵਿੱਚਰ ਵਿੱਚ ਵੇਖਾਈਆਂ ਜਾਣ"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 ਕਲਰਸਪੇਸ ਸਹਿਯੋਗ ਦਿੰਦੀ ਹੈ"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "ਵੀਡਿਓ ਪਲੇਅਬੈਕ"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "ਵੀਡਿਓ ਪਲੇਅਬੈਕ"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 ਕਲਰਸਪੇਸ/"
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "ਸਬੰਧ ਸ਼ਾਮਲ(&A)"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "ਸੰਪਰਕ ਸ਼ਾਮਿਲ"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "ਵੱਖ ਵੱਖ ਡੈਸਕਟਾਪ ਐਕਸ਼ਨਾਂ ਲਈ ਪਾਣੀ ਪਰਭਾਵ ਸ਼ਾਮਲ ਕਰੋ"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "ਹਰੇਕ ਕਣੀ ਵਿੱਚ ਅੰਤਰ (ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "ਪੁਆਇੰਟਰ ਪਾਣੀ ਪਰਭਾਵ ਯੋਗ ਕਰੋ"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "ਲਾਈਨ"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "ਆਫਸੈੱਟ ਸਕੇਲ"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "ਬਿੰਦੂ"
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "ਵਕਫਾ"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "ਟਾਇਟਲ ਵੇਵ"
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "ਟੋਕਨ ਰਿੰਗ"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "ਟੋਕਨ ਰਿੰਗ"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "ਟੋਕਨ ਰਿੰਗ"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "ਟੋਕਨ ਰਿੰਗ"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "ਪਾਣੀ ਪਰਭਾਵ"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "ਪਾਣੀ ਆਫਸੈੱਟ ਸਕੇਲ"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "ਵਿੰਡੋ ਟਾਇਟਲ ਤੋਂ ਵੇਵ ਪਰਭਾਵ"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "ਫੋਕਸ ਪਰਭਾਵ"
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "ਕਾਰਵਾਈ"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "ਰੈਜ਼ੋਲੇਸ਼ਨ"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "ਉਲਟ ਵਿੰਡੋ ਸਨੈਪਿੰਗ"
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "ਵੱਧ-ਤੋਂ-ਵੱਧ ਅਕਰ"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "ਵੱਧ-ਤੋਂ-ਵੱਧ ਅਕਰ"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "ਹੇਠਾਂ ਜਾਓ(&D)"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "ਡਰਾਇਵਰ"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "ਉਲਟ ਕੀਤਾ ਸਨੈਪ"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Window&s ਸਮੇਟੋ"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "ਕਾਰਵਾਈ"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "ਸਟੀਪਿੰਗ"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "ਸਟੀਪਿੰਗ"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "Win&dows ਹਟਾਓ"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "ਝੂਲਣ ਵਿੰਡੋ ਪਰਭਾਵ ਲਈ ਸਪਰਿੰਗ ਮਾਡਲ ਵਰਤੋਂ"
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "ਸਰਵਰ ਰੈਜ਼ੋਲੂਸ਼ਨ"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "ਵਿੰਡੋ, ਜੋ ਫੋਕਸ ਹੋਣ ਦੇ ਦੌਰਾਨ ਵੋਬਲ ਕਰੋ"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਲੈਣ ਦੇ ਦੌਰਾਨ ਵੋਬਲ ਹੋਵੇ"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਮੈਪ ਕਰਨ ਦੇ ਦੌਰਾਨ ਵੋਬਲ ਹੋਵੇ"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "ਵਿੰਡੋ, ਜੋ ਕਿ ਭੇਜਣ ਦੇ ਦੌਰਾਨ ਵੋਬਲ ਹੋਵੇ"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "ਜਦੋਂ ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਅਤੇ ਅਣ-ਵੱਧੋ-ਵੱਧ ਹੋਵੇ ਤਾਂ ਝੂਲੇ ਪਰਭਾਵ"
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windows"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "ਫਿਲਟਰ:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "ਜ਼ੂਮ ਇਨ ਕਰਨ ਦੇ ਦੌਰਾਨ ਲੀਨੀਅਰ ਫਿਲਟਰ ਵਰਤੋਂ"
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "ਵੇਹੜਾ"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "ਲਾਗਆਉਟ"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "ਲਾਗਆਉਟ"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "ਲਾਗਆਉਟ"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "ਚੁਣੇ"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "ਜਾਂਚ"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "ਜ਼ੂਮ ਅਤੇ ਪੈਨ ਡੈਸਕਟਾਪ ਘਣ"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "ਲਾਗਆਉਟ"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "ਲਾਗਆਉਟ"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "ਕਮਾਂਡ: "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "ਕਮਾਂਡ '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "ਕਮਾਂਡ ਲਾਇਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।"
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "Win&dows ਭਾਗ ਹਟਾਓ"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "ਵਿੰਡੋ ਧੁੰਦਲਾਪਨ ਵਧਾਓ"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਧੁੰਦਲੇਪਨ ਮੁੱਲ, ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੀ ਅਲਪ-ਪਾਰਦਰਸ਼ੀ ਹੋਵੇ"
+
+#~ msgid "Opacity window values"
+#~ msgstr "ਧੁੰਦਲਾਪਨ ਵਿੰਡੋ ਮੁੱਲ"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#~ msgid "Background Images"
+#~ msgstr "ਬੈਕਗਰਾਊਂਡ ਚਿੱਤਰ"
+
+#~ msgid "Background images"
+#~ msgstr "ਬੈਕਗਰਾਊਂਡ ਚਿੱਤਰ"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "ਸੱਜੇ"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "ਰਿਮੋਟ ਸਬਨੈੱਟ"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "ਸੱਜੇ"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "ਡੈਸਕਟਾਪ ਵਿੰਡੋ ਧੁੰਦਲਾਪਨ ਫੇਡ ਟਾਈਮ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "ਸੰਦ"
+
+#~ msgid "Menu"
+#~ msgstr "ਮੇਨੂ"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "ਸਹੂਲਤ ਡਿਸਕ..."
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "ਟੋਨ ਡਾਇਲ(&T)"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "ਝਰੋਖਾ ਪਰਬੰਧਕ"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "ਮੇਨੂ"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "ਸੰਦ"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "ਕਾਰਵਾਈ"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "ਟੱਚ-ਸਕਰੀਨ"
+
+#~ msgid "Unknown"
+#~ msgstr "ਅਣਜਾਣ"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "ਅੰਤਰਾਲ"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "ਕੋਈ ਲਾਗ ਨਾ ਕਰੋ"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "ਘੱਟ ਸਮਰੱਥਾ(&L)"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "ਅਰਧ-ਵਿਆਸ"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D ਪਰਵੇਸ਼ਕ:"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D ਪਰਵੇਸ਼ਕ:"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "ਜਾਂਚ"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "ਰੂਸੀ ਸੰਘ"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "ਰੂਸੀ"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Window&s ਸਮੇਟੋ"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Window&s ਸਮੇਟੋ"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "ਵੱਧ-ਤੋਂ-ਵੱਧ ਅਕਰ"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "ਵੇਹੜਾ"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "ਉਸਟਾਨ (ਪੋਸਟ 1500)"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D ਪਰਵੇਸ਼ਕ:"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "ਜਾਂਚ"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "ਸਥਾਨਕ ਸਮਾਂ"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Win&dows ਹਟਾਓ"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "ਕਾਰਵਾਈ"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ਸਟੀਪਿੰਗ"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "ਫਿਲਟਰ ਸੈਟ(&S)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "ਸਰਵਰ ਰੈਜ਼ੋਲੂਸ਼ਨ"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "ਚੁਣੇ"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "ਜਾਂਚ"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "ਲਾਗਆਉਟ"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "ਸਕਰੀਨ ਘੁੰਮਾਓ"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "ਕਮਾਂਡ: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "ਕਮਾਂਡ: "
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "ਉਪਲੱਬਧਕਰਤਾ ਕਿਸਮ"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "ਕੋਰਨਿਸ਼"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "ਫਲਾਪੀ ਡਿਸਕ"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "ਡੈਮਨ ਚਲਾ ਰਿਹਾ ਹੈ।"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "ਟਰਮੀਨਲ"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..3e215bc
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,3829 @@
+# translation of compiz.po to
+# Polish message file for compiz.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Maciej Warnecki <maciekw5@gmail.com>, 2007.
+# wadim dziedzic <nikdo@aviary.pl>
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-10-26 22:59+0100\n"
+"Last-Translator: Michal Kaluzniak <the_hooltay@o2.pl>\n"
+"Language-Team: <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Pulpit"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Zarządzanie oknem"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Brak"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Cieniuj"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maksymalizuj"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maksymalizuj okno w poziomie"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maksymalizuj okno w pionie"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Zminimalizowane"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatyczne wysuwanie okien"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Niski"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menu okna"
+
+# I find my translation easier to understand
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Akcja przy obrocie kółka myszy nad paskiem tytułowym okna."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Typ rozmycia"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Nieprzezroczystość aktywnego okna z motywem Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Nieprzezroczystość cienia aktywnego okna z motywem Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Nieprzezroczystość motywu Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Nieprzezroczystośc cienia motywu Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Nieprzezroczystość dla aktywnych okien z dekoracjami motywu Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Nieprezroczystość dekoracji motywu Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Cieniuj aktywne okna z motywem Metacity od nieprzezroczystych do "
+"półprzezroczystych"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Cieniuj okna z dekoracjami motywu metacity od nieprzezroczystych do "
+"przejrzystych"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Akcja podjęta przy naciśnięciu kółka myszy na pasku tytulowym"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Typ rozmycia używany dla dekoracji okien"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Używaj motywu Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Używaj motywu Metacity podczas rysowania dekoracji okien"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Zamknij okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Cofnij maksymalizację okna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maksymalizuj okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Zminimalizuj okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Stwórz powyżej"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Przyklej"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+#, fuzzy
+msgid "Unshade"
+msgstr "Odcieniuj"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Nie twórz powyżej"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Odklej"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Okno \"%s\" nie odpowiada."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "Wymuszenie zamknięcia aplikacji spowoduje utratę niezapisanych zmian."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Wymuś Zamknięcie"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Rysowanie"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Kolor wypełnienia"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Kolor pędzla"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Wtyczka rysowania"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Czyść"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Rysuj"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Rysowanie na pulpicie"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Kolor wypełnienia dla rysowania"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Inicjuj"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Rozpocznij rysowanie"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Rozpoczyna usuwanie rysunków"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Rozpocznij usuwanie"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Szerokość linii"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Szerokość linii przy rysowaniu"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Kolor pędzla przy rysowaniu"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Szerokość pędzla"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Szerokość pędzla przy rysowaniu"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Rozmycie alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Rozmycie alfa okien"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtr rozmycia"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Zamknięcie rozmycia"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Nasycenie rozmycia"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Prędkość rozmycia"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Rozmywaj okna"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Rozmycie za przezroczystymi częściami okien"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Nasycenie rozmycia"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Rozmywanie okien"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Rozmywaj nieaktywne okna"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Wyłącz rozmywanie fragmentów ekranu zajmowanych przez inne okna."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Metoda filtrowania dla rozmycia"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Rozmycie ostrości"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Rozmycie ostrości okien"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Rozmycie Gaussa"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Promień rozmycia Gaussa"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Siła rozmycia Gaussa"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Promień rozmycia Gaussa"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Siła rozmycia Gaussa"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Pozyskaj niezależne tekstury"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmapa"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Poziom szczegółów mipmapy"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Poziom szczegółów mipmapy"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulsowanie"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efekt pulsowania"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Używaj dostępnych jednostek tekstur, by poyskać jak najwięcej niezależnych "
+"tekstur"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Szybkość rozmywania okien"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Okna, które mają być poddane rozmyciu ostrości"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Okna, które mają używać rozmycia alfa"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Klonowanie wyjścia"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Rozpocznij klonowanie zaznaczenia"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Zewnętrzna obsługa klonowania"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Linia poleceń 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Linia poleceń 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Linia poleceń 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Linia poleceń 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Linia poleceń 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Linia poleceń 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Linia poleceń 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Linia poleceń 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Linia poleceń 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Linia poleceń 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Linia poleceń 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Linia poleceń 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Polecenie do wykonania w powłoce po wywołaniu run_command%d"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Polecenie"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Wykonaj polecenie 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Wykonaj polecenie 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Wykonaj polecenie 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Wykonaj polecenie 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Wykonaj polecenie 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Wykonaj polecenie 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Wykonaj polecenie 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Wykonaj polecenie 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Wykonaj polecenie 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Wykonaj polecenie 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Wykonaj polecenie 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Wykonaj polecenie 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Włączone wtyczki"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Zezwól na to, by rysowanie okien pełnoekranowych nie było przekierowywane do "
+"obrazków rastrowych poza ekranem"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Dzwonek systemowy"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Dzwonek systemowy"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatyczne wysuwanie okien"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Opóźnienie automatycznego wysuwania okien"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatyczne wykrywanie urządzeń wyjściowych"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatyczne wykrywanie częstotliwości odświeżania"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Najlepszy"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Kliknij by wybrać"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Kliknięcie okna ogniskuje na nim wprowadzanie"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Zamknij aktywne okno"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Domyślna ikona"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Obraz domyślnej ikony okna"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Kostka pulpitu"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Wykryj wyjścia"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Wykryj częstotliwość odświeżania"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Czas jaki musi spędzić wskaźnik na krawędzi ekranu zanim zostanie wykonana "
+"akcja"
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Opóźnienie zapadki krawędzi"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Szybki"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Stopień zapobiegania skupienia"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "Zapobieganie skupieniu okien"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Zapobieganie skupieniu okien"
+
+#: ../metadata/core.xml.in.in.h:27
+#, fuzzy
+msgid "Force independent output painting."
+msgstr "Wymuś niezależne wyjście malowania"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opcje Ogólne"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Ogólne opcje Compiza"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Dobry"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ukryj okna spoza paska zadań"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Schowaj wszystkie okna i wybierz pulpit"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "Ukrywa okna spoza paska zadań w trybie pokazywania pulpitu"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Wysokość"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Poziomy rozmiar wirtualny"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Jeśli możliwe używaj kompresji dla tekstur przekonwertowanych z obrazków"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignoruj podpowiedzi dla zmaksymalizowanych okien"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignorowanie podpowiedzi zwiększenia rozmiaru i proporcji gdy okno jest "
+"zmaksymalizowane"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Odstęp czasu przed podniesieniem wskazanych okien"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Odstęp czasu pomiędzy wiadomościami ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "Stopień zapobiegania wykradania ostrości"
+
+# Zmieniłem z "Błyskawica" na "Oświetlenie":
+# lightNing=Błyskawica
+# lighting=Oświetlenie, cieniowanie
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Oświetlenie"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista aktualnie włączonych wtyczek"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista opisów urządzeń wyjściowych"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Niski"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Obniż okno"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Przenieś okno pod pozostałe"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maksymalizuj okno w poziomie"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maksymalizuj okno w pionie"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maksymalizuj aktywne okno"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maksymalizuj aktywne okno w poziomie"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maksymalizuj aktywne okno w pionie"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimalizuj aktywne okno"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normalne"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Ilość pulpitów"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Ilość wirtualnych pulpitów"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Wyłączenie"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Odświeżaj ekran tylko podczas okresu poziomego wygaszania"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Wyjścia"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Radzenie sobie z zachodzącymi na siebie wyjściami"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Rysuj każde urządzenie wyjściowe niezaleźnie, nawet jeśli zachodzą one na "
+"siebie"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Opóźnienie ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferuj większe wyjście"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferuj mniejsze wyjście"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Podnieś przy kliknięciu"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Podnieś okno"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Podnieś wskazane okno po interwale"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Podnosi okno ponad pozostałe"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Podnieś okna po kliknięciu"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Częstotliwość odświeżania"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Mnożnik rozmiaru ekranu dla poziomego wirtualnego rozmiaru"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Mnożnik rozmiaru ekranu dla pionowego wirtualnego rozmiaru"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Pokaż pulpit"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Powolne animacje"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "\"sprytny\" tryb"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synchronizuj z VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Kompresja tekstur"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtr tekstury"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrowanie tekstur"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Częstotliwość przerysowywania ekranu (razy na sekundę)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Przełącz maksymalizację okna"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Przełącz maksymalizację poziomą okna"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Przełącz maksymalizację pionową okna"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Przełącz przyciemnianie okna"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Przełącza maksymalizację aktywnego okna"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Przełącz maksymalizację poziomą aktywnego okna"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Przełącz maksymalizację poziomą aktywnego okna"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Przełącza przyciemnianie aktywnego okna"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Wyłącz powolne animacje"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Cofnij maksymalizację aktywnego okna"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Cofnij przekierowanie okien pełnoekranowych"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Używaj rozproszonego światła podczas przekształceń ekranu"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Pionowy rozmiar wirtualny"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Bardzo wysoko"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+"Które z zachodzących na siebie urządzonych wyjściowych powinny być "
+"preferowne?"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Przypisanie przycisku do menu okien"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Przypisanie klawisza do menu okien"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Akceleracja"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Dostosuj obraz"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Dostosuj obrazek górnej ściany kostki do obrotu"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Przejdź do następnej klatki"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animacja tła dla kostki"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animacja tła dla kostki podczas jej obracania"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatycznie"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Kolor górnej i dolnej ściany kostki"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Dolny kolor przejścia tonalnego w tle kostki pulpitów"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Góny kolor przejścia tonalnego w tle kostki pulpitów"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kolor kostki"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kolor kostki"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Kostka pulpitu"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Przyspieszenie zwijania"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Szybkość zwijania"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Opóźnienie zwijania"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "O ile to możliwe, generuj mitmapy dla lepszej jakości skalowania"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Przejdź do poprzedniej klatki"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Pliki obrazków"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Obrazek, który ma być używany jako tekstura tła dla kostki"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Kostka będzie przezroczysta tylko jeśli jest obracana za pomocą kursora"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Wewnątrz kostki"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Wewnątrz kostki"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista plików PNG i SVG, które mają być wyświetlane na górnej ścianie kostki"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Tryb wielu urządzeń wyjściowych"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Wiele kostek"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Następna klatka"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Jedna duża kostka"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Nieprzezroczystość kostki podczas obracania "
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Nieprzezroczystość kostki kiedy nie jest obracana"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Nieprzezroczystość pulpitu podczas obracania kostki"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Nieprzezroczystość pulpitu kiedy kostka nie jest obracana"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Umieszczaj okna na kostce"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Poprzednia klatka"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Wyświetlaj tło dla kostki"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Skaluj obrazek"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Skaluj obrazki przykrywające górną ścianę kostki"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Decyduje jak kostka jest wyświetlana jeśli używanych jest kilka uzrądzeń "
+"wyjściowych"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Tło dla kostki"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Końcowy kolor gradientu tła kostki"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Początkowy kolor gradientu tła kostki"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Obrazek tła dla kostki"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Szybkość"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Opóźnienie"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Przezroczystość tylko podczas obracania kursora"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Odsłoń"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Odsłoń kostkę"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Wsteczna kontrola Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Pozwól tworzyć mipmapy dla tekstur dekoracji"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Polecenie"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekoracje okien"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Polecenie dekoratora wykonywane gdy dekorator nie jest uruchomiony"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Przesunięcie cienia w osi X"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Przesunięcie cienia w osi Y"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Kolor cienia"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Nieprzezroczystość cienia"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Promień cienia"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Kolor cienia"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Przesunięcie cienia - współrzędna X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Przesunięcie cienia - współrzędna Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "NIeprzezroczystość cienia"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Promień cienia"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Cienie okien"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Dekoracja okna"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Dekoracje okna"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Typy okien, które mają być dekorowane"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Typy okien, które mają posiadać cień"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Jasność (w %) nieodpowiadających okien"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Stała prędkość"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Stały czas"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Przyciemnienie nieodpowiadających okien"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Przyciemnienie okien, które nie odpowiadają na polecenia menadżera okien"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Sposób zanikania"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Ściemnianie podczas minimalizacji/otwierania/zamykania"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Szybkość rozjaśniania /ściemniania"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Czas przenikania"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+"Efekt rozjaśniania/ściemniania podczas minimalizacji/otwarcia/zamknięcia "
+"okien"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efekt ściemniania przy dzwonku systemowym"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Okna powinny płynnie rozjaśniać się podczas mapowania i płynnie przyciemniać "
+"się podczas odmapowania."
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Przyciemniaj/rozjaśniaj okna"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Płynne rozjaśnianie/przyciemnianie okien"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Pełnoekranowy wizualny dzwonek systemowy"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Pełnoekranowy efekt przyciemnienia przy dzwonku systemowym"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Nasycenie (w %) nieodpowiadających okien"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Jasność nieodpowiadających okien"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Nasycenie nieodpowiadających okien"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Wizualny dzwonek systemowy"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Sposób zanikania okien"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Szybkość zanikania okien w trybie \"Stała prędkość\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Czas zanikania okien (w ms) w trybie \"Stała prędkość\""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Typy okien, które powinny być poddawane rozjaśnieniu/ściemnieniu"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Punkt montowania"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Punkt montowania"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "System plików użytkownika"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "System plików użytkownika"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "Gconf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Wsteczna kontrola GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "Glib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Wsparcie głównego węzła GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Otwiera terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Dialog Uruchom"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Polecenie terminala"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Polecenie zrzutu ekranu"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Wyświetl menu główne"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Wyświetl okno dialogowe \"Uruchom program\""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Wyświetl menu główne"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Pobierz zrzut ekranu"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Pobierz zrzut okna"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Polecenie terminala"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Polecenie zrzutu okna"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Wtyczka powiadamiania o zmianie pliku"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Wsteczna kontrola Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efekt minimalizacji"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimalizuj okna"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Szybkość minimalizacji"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Opóźnienie minimalizacji"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Opór przyciemniania"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Opór cieniowania"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Przekształcaj okna podczas minimalizacji i cofania minimalizacji"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Typy okien, które mają być transformowane podczas minimalizacji"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Ogranicz Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Ogranicz współrzędną Y do obszaru roboczego"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Nie aktualizuj strony okien serwera dopóki nie przestanie się ich poruszać"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Rozpocznij przenoszenie okna"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Leniwe pozycjonowanie"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Przenieś okno"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Przenieś okno"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Nieprzezroczystość"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Poziom nieprzezroczystości przesuwanych okien"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Odepnij i automatycznie cofnij maksymalizację okien podczas przesuwania"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Odepnij zmaksymalizowane okna"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Rozpocznij przenoszenie okna"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Jasność"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Jasność"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Jasność"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Jasność"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Jasność (w %) nieodpowiadających okien"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Zmniejsz nieprzezroczystość"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Zwiększ nieprzezroczystość"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Krok zmiany nieprzezroczystości"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Krok zmiany nieprzezroczystości"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Krok nieprzezroczystości"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Poziom nieprzezroczystości przesuwanych okien"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Nieprzezroczystość kostki podczas obracania "
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Nasycenie"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Nasycenie"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Nasycenie"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Nasycenie"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Nasycenie (w %) nieodpowiadających okien"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Dekoracje okna"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Rodzaje okien"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Rodzaje mapowanych okien"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Typy okien, które powinny być standardowo ułożone"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Typy okien, które standardowo mają być półprzezroczyste"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Typy okien, które powinny być standardowo ułożone"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algorytm używany do rozmieszczenia okien"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskada"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Wyśrodkowany"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Zarządzanie oknem"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Wymuś ułożenie okien"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Poziome pozycje wirtualnych pulpitów"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Utrzymuj na pulpicie"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Utrzymuj wskazane okna na pulpicie , nawet jeśli ich pozycja będzie się "
+"różnić od ich określonej pozycji"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Rozmieść okna"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Ułuż w poprzek wszystkich wyjść"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Podczas mapowania umieszczaj okna we właściwych miejscach"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Try rozmieszczenia"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Ułożone okna"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Losowy"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Określa jak powino się zachowywać rozmieszczenie okien jeśli jest używanych "
+"wiele urządzeń wyjścia."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligentny"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Użyj aktywnego urządzenia wyjściowego"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Użyj urządzednia wyjściowego na wybranym oknie"
+
+#: ../metadata/place.xml.in.h:21
+#, fuzzy
+msgid "Use output device with pointer"
+msgstr "Użyj urządzenia wyjściowego z kursorem myszy"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Pionowe pozycje wirtualych pulpitów"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Ułożone okna wirtualych pulpitów"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Obejścia problemów z rozmieszczeniem okien"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Typy okien, które powinny być standardowo ułożone"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Typy okien, które powinny być ułożone na wybranych wirtualnych pulpitach "
+"standardowo"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Okna, które powinny być rozmieszczone \"na siłę\", nawet jeśli wskazują, że "
+"menadżer okien pominie rozmieszczanie ich"
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Dekoracje okna"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Obejścia problemów"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Pozycje X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Pozycje wirtualnych pulpitów osi X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Wartości dla pozycji X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Pozycje Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Pozycje wirtualnych pulpitów osi Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Wartości dla pozycji Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Wtyczka ładująca obrazki .png"
+
+#: ../metadata/regex.xml.in.h:1
+#, fuzzy
+msgid "Regex Matching"
+msgstr "Przełącz przypinanie okien"
+
+#: ../metadata/regex.xml.in.h:2
+#, fuzzy
+msgid "Regex window matching"
+msgstr "Przełącz przypinanie okien"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Kolor brzegów"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Kolor brzegów używany dla trybow zmiany rozmiarów z obrysem oraz z obrysem i "
+"wypenieniem"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Domyślny ryb zmiany zmiaru"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Domyślny tryb używany podczas zmiany rozmiaru okna"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Kolor wypełniania"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Kolor wypełnienia dla prostokątnego trybu zmiany wielkości"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Rozpocznij normalną zmianę rozmiarów okna"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Rozpocznij zmianę rozmiarów zewnętrznego okna"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Rozpocznij prostokątną zmianę rozmiarów okna"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Rozpocznij zmianę rozmiarów okna poprzez rozciąganie"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Rozpocznij zmianę rozmiarów okna"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Normalna zmiana rozmiaru okna"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Kontur"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Zmiana rozmiaru konturu okna"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Prostokąt"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Prostokątna zmiana rozmiaru okna"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Zmień rozmiar okna"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Zmień rozmiar okna"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Rozpocznij zmianę rozmiaru okna"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Rozpocznij zmianę rozmiaru okna poprzez rozciąganie"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Rozpocznij normalną zmianę rozmiarów okna"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Rozpocznij zmianę rozmiaru okna poprzez kontur okna"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Rozpocznij prostokątną zmianę rozmiaru okna"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Rozciągnij"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Zmień rozmiar okna poprzez rozciąganie"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Typy okien, których rozmiar ma być zmieniany w standardowy sposób"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Typy okien, których rozmiar ma być zmieniany poprzez kontur okna"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Typy okien, których rozmiar ma być zmieniany w prostokątny sposób"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Typy okien, których rozmiar ma być zmieniany poprzez rozciąganie"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Przełączanie krawędziami - przeciągnij i upuść"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Przełączanie krawędziami - przenoszenie"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Przełączanie widoków za pomocą wskaźnika"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Czas przełączania"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Przewróć do lewego pulpitu i zakrzyw kursor"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Przewróć do następnego pulpitu podczas przeciągania obiektów na krawędź "
+"ekranu"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Przewróć do następnego pulpitu podczas przesuwania wskaźnika na krawędź "
+"ekranu"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Przewróć do następnego pulpitu podczas przesuwania okien na krawędź ekranu"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Przewróć do prawego wirtualnego pulpitu i zakrzyw kursor"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Odwróć oś Y dla ruchu wskaźnika"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Odwrócenie osi Y dla wskaźnika"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Czułość wskaźnika"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Podnoś podczas obracania "
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Podnoś okna podczas obracania"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Obróć kostkę"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Obróć i przełącz w lewo"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Obróć i przełącz w prawo"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Obróć w lewo"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Obróć w lewo z oknem"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Obróć w prawo"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Obróć w prawo z oknem"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Obróć do"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Obróć do ściany 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Obróć do ściany 1 z oknem"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Obróć do ściany 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Obróć do ściany 10 z oknem"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Obróć do ściany 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Obróć do ściany 11 z oknem"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Obróć do ściany 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Obróć do ściany 12 z oknem"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Obróć do ściany 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Obróć do ściany 2 z oknem"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Obróć do ściany 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Obróć do ściany 3 z oknem"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Obróć do ściany 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Obróć do ściany 4 z oknem"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Obróć do ściany 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Obróć do ściany 5 z oknem"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Obróć do ściany 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Obróć do ściany 6 z oknem"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Obróć do ściany 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Obróć do ściany 7 z oknem"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Obróć do ściany 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Obróć do ściany 8 z oknem"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Obróć do ściany 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Obróć do ściany 9 z oknem"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Obróć kostkę"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Obróć kostkę pulpitu"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Obróć w lewo"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Obróć w lewo i przenieś aktywne okno"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Obróć w prawo"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Obróć w prawo i przenieś aktywne okno"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Obrót do ściany 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Obróć do ściany 1 z oknem"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Obrót do ściany 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Obrót do ściany 1 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Obrót do ściany 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Obrót do ściany 10 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Obrót do ściany 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Obrót do ściany 11 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Obrót do ściany 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Obrót do ściany 12 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Obrót do ściany 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Obrót do ściany 2 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Obrót do ściany 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Obrót do ściany 3 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Obrót do ściany 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Obrót do ściany 4 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Obrót do ściany 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Obrót do ściany 5 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Obrót do ściany 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Obrót do ściany 6 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Obrót do ściany 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Obrót do ściany 7 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Obrót do ściany 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Obrót do ściany 8 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Obrót do ściany 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Obrót do ściany 9 i przeniesienie tam aktywnego okna"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Obraca do pulpitu"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Obracaj okno"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Obraca z oknem"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Przyspieszenie obrotu"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Szybkość obrotu"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Opóźnienie obrotu"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Przybliżenie obrotu"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Czułość ruchu wskaźnika"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Przypnij obrót kostki do dolnej ściany"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Przypnij obrót kostki do górnej ściany"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Przypnij do dolnej ściany"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Przypnij do górnej ściany"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Rozpocznij obrót"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Czas przed przełączeniem wirtualnych pulpitów"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Powiększenie"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Stopień nieprzezroczystości w procentach"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Duży"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Naciśnij na Pulpit by pokazać Pulpit"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Przyciemnij tło"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Przyciemnij tło podczas skalowania okien"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblemat"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "Pokaż Pulpit kiedy kliknie się na Pulpit podczas Szybkiego Wyboru"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Czas wyboru okna"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Rozpocznij przeglądanie okien"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Rozpocznij przeglądanie wszystkich okien"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Rozpocznij przeglądanie grupy okien"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Inicjuj wybór okien dla okien z bieżącego wyjścia"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Rozmieść i zacznij przekształcać okna"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Rozmieść i zacznij przekształcać grupę okien"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Rozmieść i zacznij przekształcać okna"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Rozmieść i zacznij przekształcać okna w bieżącym widoku"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Na wszystkich urządzeniach wyjściowych"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Na aktualnym urządzeniu wyjściowym"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Ikona okna"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Nałóż ikonę na okna podczas Szybkiego Wyboru"
+
+# To NIE jest skalowanie - zmiana rozmiaru
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Szybki Wybór"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Szybki Wybór Okien"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Szybkość szybkiego wyboru"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Krok czasu szybkiego wyboru"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Szybki wybór okien"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Decyduje gdzie okna są umieszczane do wyboru jeśli jest używanych wiele "
+"urządzeń wyjścia"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Odstęp między oknami"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Odstępy"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Czas (w ms) zatrzymania kursora nad oknem, po którym zakończony będzie tryb "
+"skalowania"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Typy okien, które mają być poddawane szybkiemu wyborowi w tym trybie"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Automatycznie otwiera zrzut ekrany w tym programie"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Katalog"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Rozpocznik prostokątny zrzut ekranu"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Uruchom program"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Umieszcza zrzuty ekranu w tym katalogu"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Zrzut ekranu"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Wtyczka zrzutów ekranu"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Wtyczka ładująca obrazki .svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Stopień jasności w procentach"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Stopień nasycenia w procentach"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Przełącznik aplikacji"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automatycznie obracaj"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Przenieś na pierwszy plan"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Przenoś wybrane okno na wierzch"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Oddalenie pulpitu podczas przełączania okien"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Zminimalizowane"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Następny panel"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Następne okno"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Następne okno (wszystkie okna)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Następne okno (bez pop-upów)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Okno przełączania gdy niewidoczne i wybór następnego okna"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Okno przełączania gdy niewidoczne i wybór następnego okna spośród wszystkich"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Okno przełączania gdy niewidoczne i wybór poprzedniego okna"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Okno przełączania gdy niewidoczne i wybór poprzedniego okna spośród "
+"wszystkich"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Poprzedni panel"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Poprzednie okno"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Poprzednie okno (wszystkie okna)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Poprzednie okno (bez pop-upów)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Obracaj do wybranego okna podczas przełączania"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Wybierz następny typ panelu okna"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Wybierz następne okno bez pokazywania wyskakującego okienka."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Wybierz poprzedni typ panelu okna"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Wybierz poprzednie okno bez pokazywania wyskakującego okienka."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Wyświetl ikonę obok miniaturki"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Wyświetl zminimalizowan okna"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Szybkość przełącznika"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Krok czasu przełącznika"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Zmieniacz okien"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Typy okien, które mają być pokazywane w zmieniaczu"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Zapewnij wsparcie dla przestrzeni kolorów YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Odtwarzanie video"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Odtwarzanie video"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Przestrzeń kolorów YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Dodaj linię"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Dodaj punkt"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Dodaje efekty wodne do różnych operacji na pulpicie"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Opóźnienie (w ms) pomiędzy każdą kroplą deszczu"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Włącz wodne efekty wskaźnika"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linia"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Skala przesunięcia"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punkt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Opóźnienie deszczu"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Fala tytułu"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Przełącz deszcz"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Przełącz efekt deszczu"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Przełącz wycieraczkę"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Przełącza efekt wycieraczki"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efekt wodny"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Skala przesunięcia wody"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efekt fali od tytułu okna"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efekt wybierania"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efekt wybierania okna"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Rodzaje wybieranych okien"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Tarcie"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Rodzaje chwytanych okien"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Rozdzielczość siatki"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Odwrócone przyciąganie okien"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Potrząsaj oknami"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efekt mapowania"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efekt mapowania okna"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Rodzaje mapowanych okien"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efekt maksymalizacji"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimalny wymiar siatki"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimalny rozmiar siatki werteksu"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Przenieś okna"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Drgania"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Odwróć przyciąganie"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Przypnij okna"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Współczynnik tarcia"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Współczynik sprężystości"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Współczynnik sprężystości"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Przełącz przypinanie okien"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Wykorzystaj model sprężysty dla efektu drgających okien"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Rozdzielczość siatki werteksu"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Typy okien, które mają drgać po aktywacji"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Typy okien, które mają drgać po chwyceniu"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Typy okien, które mają drgać po mapowaniu"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Typy okien, które mają drgać podczas przesuwania"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efekt drgania podczas maksymalizacji i demaksymalizacji okien"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Drgające okna"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtruj liniowo"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Używaj filtru liniowego podczas powiększania"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Powiększanie pulpitu"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Powiększ"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Pomniejsz"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Powiększ"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Szybkość przybliżania"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Opóźnienie przybliżania"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Powiększ i przesuń kostkę pulpitu"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Współczynnik przybliżania"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Powiększ"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Linia poleceń 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Wykonaj polecenie 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Polecenie zrzutu ekranu"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Polecenie zrzutu ekranu"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Zmniejsz nieprzezroczystość okna"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Zwiększ nieprzezroczystość okna"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Wartości nieprzezroczystości okien które powinny być domyślnie "
+#~ "półprzezroczyste"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Wartości nieprzezroczystości okien"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Nieprzezroczystość okien"
+
+#~ msgid "Background Images"
+#~ msgstr "Obrazki tła"
+
+#~ msgid "Background images"
+#~ msgstr "Obrazki tła"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Umieszczaj okna na płaszczyźnie"
+
+#~ msgid "Plane Down"
+#~ msgstr "Płaszczyzna dolna"
+
+#~ msgid "Plane Left"
+#~ msgstr "Lewa płaszczyzna"
+
+#~ msgid "Plane Right"
+#~ msgstr "Prawa płaszczyzna"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Płaszczyzna do ściany 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Płaszczyzna do ściany 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Płaszczyzna do ściany 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Płaszczyzna do ściany 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Płaszczyzna do ściany 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Płaszczyzna do ściany 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Płaszczyzna do ściany 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Płaszczyzna do ściany 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Płaszczyzna do ściany 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Płaszczyzna do ściany 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Płaszczyzna do ściany 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Płaszczyzna do ściany 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Płaszczyzna górna"
+
+#~ msgid "Plane down"
+#~ msgstr "Płaszczyzna u dołu"
+
+#~ msgid "Plane left"
+#~ msgstr "Płaszczyzna z lewej strony"
+
+#~ msgid "Plane right"
+#~ msgstr "Płaszczyzna z prawej strony"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Płaszczyzna do ściany 1"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Płaszczyzna do ściany 10"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Płaszczyzna do ściany 11"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Płaszczyzna do ściany 12"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Płaszczyzna do ściany 2"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Płaszczyzna do ściany 3"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Płaszczyzna do ściany 4"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Płaszczyzna do ściany 5"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Płaszczyzna do ściany 6"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Płaszczyzna do ściany 7"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Płaszczyzna do ściany 8"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Płaszczyzna do ściany 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Płaszczyzna u góry"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Czas zanikania nieprzezroczystości okna pulpitu"
+
+#~ msgid "Open window menu"
+#~ msgstr "Otwórz menu okna"
+
+#~ msgid "Dock"
+#~ msgstr "Obszar dokowania"
+
+#~ msgid "Toolbar"
+#~ msgstr "Pasek narzędzi"
+
+#~ msgid "Menu"
+#~ msgstr "Menu"
+
+#~ msgid "Utility"
+#~ msgstr "Narzędziowe"
+
+#~ msgid "Splash"
+#~ msgstr "Splash"
+
+#~ msgid "Dialog"
+#~ msgstr "Okno dialogowe"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "Menu"
+
+#~ msgid "PopupMenu"
+#~ msgstr "Menu kontekstowe"
+
+#~ msgid "Tooltip"
+#~ msgstr "Podpowiedź"
+
+#~ msgid "Notification"
+#~ msgstr "Powiadomienie"
+
+#~ msgid "Combo"
+#~ msgstr "Menu rozwijalne"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "Okno modalne"
+
+#~ msgid "Fullscreen"
+#~ msgstr "Pełny ekran"
+
+#~ msgid "Unknown"
+#~ msgstr "Nieznane"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Skrót klawiaturowy, który spowoduje uruchomienie polecenia command%d"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "Stopień jasności w procentach"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "Stopień nieprzezroczystości w procentach"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "Stopień nasycenia w procentach"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Nasycenie"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "Opóźnienie (w ms) pomiędzy każdą kroplą deszczu"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr "Oddalenie pulpitu podczas przełączania okien"
+
+#~ msgid "Do not modify"
+#~ msgstr "Bez zmian"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "Przesunięcie cienia w osi X"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "Przesunięcie cienia w osi Y"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "Nieprzezroczystość cienia"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Promień cienia"
+
+#, fuzzy
+#~ msgid "Filter method used for blurring (4xBilinear, Gaussian, Mipmap)"
+#~ msgstr "Metoda filtrowania dla rozmycia"
+
+#, fuzzy
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "Efekt wybierania okna"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Zapobieganie uaktywnianiu"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Przyspieszenie zwijania"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Szybkość zwijania"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie zwijania"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Promień dla rozmycia gaussowskiego"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Rozmywanie gaussowskie"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "Interwał przed podnoszeniem wskazanych okien"
+
+#, fuzzy
+#~ msgid "Interval between ping messages (1000-30000)"
+#~ msgstr "Czas pomiędzy wiadomościami ping"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "Rozmieść i zacznij przekształcać okna w bieżącym widoku"
+
+#, fuzzy
+#~ msgid "Line width for annotations (0.0-100.0)"
+#~ msgstr "Szerokość linii przy rysowaniu"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Efekt mapowania okna"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "Szybkość minimalizacji"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie minimalizacji"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Minimalny rozmiar siatki werteksu"
+
+#, fuzzy
+#~ msgid "Mipmap level-of-detail (0.0-5.0)"
+#~ msgstr "Poziom szczegółów mipmapy"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Ilość wirtualnych pulpitów"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "Krok zmiany nieprzezroczystości"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Poziom nieprzezroczystości przesuwanych okien"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Poziom nieprzezroczystości przesuwanych okien"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "Nakładanie ikony na skalowane okna"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "Wtyczki, które muszą zostać załadowane przed"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "Wtyczki wymagane przez ten element"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Okno przełączania gdy niewidoczne i wybór następnego okna spośród "
+#~ "wszystkich"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Okno przełączania gdy niewidoczne i wybór następnego okna spośród "
+#~ "wszystkich"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr ""
+#~ "Okno przełączania gdy niewidoczne i wybór poprzedniego okna spośród "
+#~ "wszystkich"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr ""
+#~ "Okno przełączania gdy niewidoczne i wybór poprzedniego okna spośród "
+#~ "wszystkich"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Przyspieszenie obrotu"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Szybkość obrotu"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie obrotu"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "Szybkość skalowania"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie skalowania"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "Mnożnik poziomego rozmiaru ekranu dla rozmiaru wirtualnego"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "Mnożnik pionowego rozmiaru ekranu dla rozmiaru wirtualnego"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "Czułość ruchu wskaźnika"
+
+#, fuzzy
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "Opór cieniowania"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Odstęp między oknami"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Współczynnik tarcia"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Współczynnik sprężystości"
+
+#, fuzzy
+#~ msgid "Stroke width for annotations (0.0-20.0)"
+#~ msgstr "Szerokość pędzla przy rysowaniu"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Szybkość przełącznika"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie przełącznika"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "Filtrowanie tekstur"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "Częstotliwość przerysowywania ekranu (razy na sekundę)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr ""
+#~ "Czas (w ms) zatrzymania kursora nad oknem, po którym zakończony będzie "
+#~ "tryb skalowania"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "Czas przed przełączeniem widoku"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "Używaj filtru liniowego podczas powiększania"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rozdzielczość siatki werteksu"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "Skala przesunięcia wody"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Szybkość rozmywania okien"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Szybkość płynnego pojawiania się/zanikania okien"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "Typy okien, które mają być rozmywane"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "Typy okien, które mają być rozmywane"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "Typy okien, które mają zanikać"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "Typy okien, które mają zanikać"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "Typy okien, które mają być skalowane w trybie skalowania"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "Typy okien, które mają być pokazywane do zmieniania"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "Typy okien, które mają być transformowane podczas minimalizacji"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "Typy okien, które mają być rozmywane"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "Typy okien, które mają drgać po aktywacji"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "Typy okien, które mają drgać po chwyceniu"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "Typy okien, które mają drgać po mapowaniu"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "Typy okien, które mają drgać podczas przesuwania"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Szybkość przybliżania"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Opóźnienie przybliżania"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Współczynnik przybliżania"
+
+#~ msgid "."
+#~ msgstr ","
+
+#~ msgid "Plane To Face %d"
+#~ msgstr "Płaszczyzna do ściany %d"
+
+#~ msgid "Plane to face %d"
+#~ msgstr "Płaszczyzna do ściany %d"
+
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Płaszczyzna do ściany %d z oknem"
+
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "Płaszczyzna do ściany %d i przeniesienie tam aktywnego okna"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Obróć do ściany %d"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "Obrót do ściany %d"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "Obróć do ściany %d z oknem"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "Obrót do ściany %d i przeniesienie tam aktywnego okna"
+
+#~ msgid "Move Window Types"
+#~ msgstr "Rodzaje przenoszonych okien"
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..128ca0b
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,3369 @@
+# Compiz Core Portuguese Translation.
+# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Novell Language <language@novell.com>, 2006,2007.
+# Joel Calado <joelcalado@gmail.com>, 2007.
+# Nicolau Gonçalves <excentriko@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2009-01-15 13:50+0200\n"
+"Last-Translator: Nicolau Gonçalves <excentriko@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Ambiente de trabalho"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Gestão de Janelas"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nenhum"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Encolher"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Maximizar Horizontalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Maximizar Verticalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Elevar"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Baixar"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menu da Janela"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Acção a tomar quando se move a roda do rato no título de uma janela."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tipo de desfocagem"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacidade da janela activa no tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Opacidade da sombra da janela activa no tema do metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacidade do tema do metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Opacidade da sombra do tema do metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opacidade a usar para janelas activas com decorações metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacidade a usar para decorações do metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Sombrear decoração de janelas activas com temas metacity de opaco para "
+"transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Sombrear decoração de janelas com temas metacity de opaco para transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Acção da roda do rato no título da janela"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipo de desfocagem usado para as decorações"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Usar tema do metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Usar tema do metacity ao desenhar as decorações das janelas"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Fechar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Desmaximizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Colocar no Topo"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Stick"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Desencolher"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Retirar do Topo"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Unstick"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "A janela \"%s\" não está a responder."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forçar a aplicação a terminar causará perda de alterações não guardadas."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forçar saída"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anotar"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Cor de preenchimento das anotações"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Cor do pincel das anotações"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Plugin de anotações"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Limpar"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Desenhar"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Desenhar usando uma ferramenta"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Cor de preenchimento para anotações"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Iniciar"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Iniciar desenho de anotação"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Iniciar apagador de anotação"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Iniciar apagador"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Esperssura da linha"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Espessura da linha para anotações"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Cor do pincel para anotações"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Largura do pincel"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Largura do pincel para anotações"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Desfocagem Alpha"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alpha-desfocar janelas"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtro de desfocagem"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Oclusão da desfocagem"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturação da desfocagem"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Velocidade de desfocagem"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Desfocar janelas"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Desfocar por trás de partes transparentes de janelas"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturação da desfocagem"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Desfocar janelas"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Desfocar janelas que não tenham foco"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Desactivar desfocagem de regiões de ecrã obscurecidas por outras janelas."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Método de filtragem usado para desfocar"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Desfocar com base no foco"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Desfocar janelas com base na janela actual"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussiano"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Raio gaussiano"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Força gaussiana"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Raio gaussiano"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Força gaussiana"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Obtenção de texturas independentes"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Nível de detalhe mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulso"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efeito de pulso"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Usar as unidades de textura disponíveis para obter o maior número possível "
+"de texturas independentes."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Velocidade de desfocagem das janelas"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Janelas que devem ser afectadas por desfocagem de foco"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Janelas que devem usar alfa-desfocagem por omissão"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Clonar saída"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Iniciar selecção de clone"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Gestor de clonagem de saídas"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Um atalho de teclado que, quando acionado, executa o comando shell "
+"identificado pelo comando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Atalhos"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Linha de comando 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Linha de comando 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Linha de comando 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Linha de comando 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Linha de comando 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Linha de comando 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Linha de comando 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Linha de comando 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Linha de comando 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Linha de comando 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Linha de comando 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Linha de comando 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command0 for accionado"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command1 for acionado"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command10 for acionado"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command11 for acionado"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command2 for acionado"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command3 for acionado"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command4 for acionado"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command5 for acionado"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command6 for acionado"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command7 for acionado"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command8 for acionado"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Linha de comando a ser executada no shell quando run_command9 for acionado"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Comandos"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Atalhos"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Teclas de atalho"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Executar comando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Executar comando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Executar comando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Executar comando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Executar comando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Executar comando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Executar comando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Executar comando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Executar comando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Executar comando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Executar comando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Executar comando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Plug-ins Ativos"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permitir que o desenho das janelas em tela inteira não seja redirecionado "
+"para pixmaps fora da tela"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Campainha Audível"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Bip audível do sistema"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Elevação Automática"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Atraso na Elevação Automática"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detecção automática de dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detecção automática da taxa de atualização"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Melhor"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Clique para Posicionar o Foco"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "O clique na janela transfere o foco para ela"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Fechar a janela activa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Ícone Padrão"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Imagem do ícone padrão da janela"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Tamanho da Área de Trabalho"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detectar Saídas"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detectar Taxa de Atualização"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Definições do Ecrã"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Tempo que o cursor do rato deve estar na margem do ecrã antes de executar "
+"uma acção de margem."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Tempo Activação Margem"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rápido"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Comportamento de Focar e Elevar"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Nível Prevenção Foco"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Janelas em Prevenção de Destaque"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Janelas em prevenção de destaque"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forçar desenho independente dos dispositivos de saída."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opções Gerais"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opções gerais do compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bom"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ocultar Janelas Ignorar Barra de Tarefas"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Esconder todas as janelas e colocar foco na área de trabalho"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Ocultar as janelas que não estão na barra de tarefas ao entrar no modo "
+"mostrar área de trabalho"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Alto"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Tamanho Virtual Horizontal"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Se disponível, usar compressão para texturas convertidas de imagens"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorar dicas quando maximizada"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Ignorar incremento de tamanho e aspecto quando a janela é maximizada"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervalo antes da elevação das janelas selecionadas"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervalo entre mensagens ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Teclas de atalho"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Nível de prevenção de roubo de foco"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Iluminação"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista de plug-ins atualmente ativos"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista de strings descrevendo os dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Baixo"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Baixar a Janela"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Janela mais baixa sob as demais janelas"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximizar Janela Horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximizar Janela Verticalmente"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximizar janela activa"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximizar janela activa horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximizar janela activa verticalmente"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimizar janela activa"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Número de áreas de trabalho"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Número de ambientes virtuais"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Desligado"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Apenas efectuar actualizações de ecrã durante o período de limpeza vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Saídas"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Gestão Saídas Sobrepostas"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Desenhar cada dispositivo de saída independentemente, mesmo que os "
+"dispositivos de saída se sobreponham"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Atraso de ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferir saída maior"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferir saída menor"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Elevar com um Clique"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Elevar janela"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Elevar janelas selecionadas após intervalo"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Elevar janela acima das restantes"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Elevar janelas quando clicadas"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Taxa de Atualização"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicador de tamanho horizontal de ecrã para tamanho virtual"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicador de tamanho vertical de ecrã para tamanho virtual"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Mostrar Área de Trabalho"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animações Lentas"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Modo inteligente"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizar a VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compressão Texturas"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtro de Textura"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtro de texturas"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Taxa em que o ecrã é redesenhado (vezes/segundo)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Alternar Janela Maximizada"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Alternar Janela Maximizada Horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Alternar Janela Maximizada Verticalmente"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Alternar Janela Sombreada"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Alternar janela activa maximizada"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Alternar janela activa maximizada horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Alternar janela activa maximizada verticalmente"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Alternar janela activa sombreada"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Alternar uso de animações lentas"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Restaurar janela activa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Anular redirecionamento de janelas de tela inteira"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Usar luz difusa quando a tela for transformada"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Tamanho Vertical Virtual"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Elevado"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Qual dos dispositivos de saída sobrepostos deve ser preferido"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Botão de atalho para menu da janela"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tecla de atalho para menu da janela"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Aceleração"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ajustar Imagem"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ajustar imagem do topo à rotação"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avançar para o slide seguinte"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animar Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animar skydome ao girar o cubo"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Aparência"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Comportamento"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Cor dos lados superior e inferior do cubo"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Cor a utilizar para o fundo do gradiente por omissão do skydome"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Cor a utilizar para o topo do gradiente por omissão do skydome"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Topos Cubo"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Cor do Cubo"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cubo da Área de Trabalho"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Aceleração de dobragem"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocidade de dobragem"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Timestep de dobragem"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Gerar mapas quando possível para dimensionamento de melhor qualidade"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Voltar ao slide anterior"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Arquivos de imagem"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imagem a usar como textura no skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Iniciar transparência do cubo apenas se a rotação por conduzida pelo rato."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Dentro do Cubo"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Dentro do cubo"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista de arquivos PNG e SVG que devem ser renderizados na face superior do "
+"cubo"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modo de Multi Saída"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Múltiplos cubos"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Próximo Slide"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Um cubo grande"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacidade Durante Rotação"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacidade Enquanto Não Roda"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacidade do ambiente de trabalho ao rodar."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacidade do ambiente de trabalho quando estático."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Colocar janelas no cubo"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Slide Anterior"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Renderizar skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Dimensionar imagem"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Dimensionar imagens para cobertura da face superior do cubo"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Selecciona como o cubo é desenhado se existirem múltiplos dispositivos de "
+"saída."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Cor Final do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Cor Inicial do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imagem do Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocidade"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Espaço de tempo"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparência apenas ao rodar com o rato"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Cubo Transparente"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Desdobrar"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Desdobrar cubo"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Backend de controlo Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permitir a geração de mipmaps para texturas da decoração"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Janelas a decorar"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Linha de comando a executar se não estiver nenhum decorador a correr"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Deslocamento X da sombra"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Deslocamento Y da sombra"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacidade da sombra"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Raio da sombra"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Deslocamento X da Sombra"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Deslocamento Y da Sombra"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacidade da Sombra"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Raio da Sombra"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Janelas com sombra"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decoração da Janela"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decorações das janelas"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Janelas que devem ser decoradas"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Janelas que devem ter sombra"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Luminosidade (em %) de janelas que não respondem"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Velocidade constante"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Tempo constante"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Escurecer Janelas que Não Respondem"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "Escurece janelas que não respondem aos pedidos do gestor de janelas"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Velocidade de Esmaecimento"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Desvanecer ao Minimizar/Abrir/Fechar"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocidade de Esmaecimento"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Tempo de Esmaecimento"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efeito de desvanecimento ao eventos de minimizar/abrir/fechar janelas"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efeito de esmaecimento no bip do sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Avivar janelas quando houver mapeamento e esmaecê-las quando não houver "
+"mapeamento"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Desvanecer janelas"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Janelas Esmaecidas"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Campainha Visual de Tela Inteira"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Efeito de esmaecimento de tela inteira ao som de bip do sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Saturação (em %) de janelas que não respondem"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Luminosidade Janelas que Não Respondem"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Saturação Janelas que Não Respondem"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Campainha Visual"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Modo de esvaecimento das janelas"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+"Velocidade de esmaecimento das janelas, em modo \"Velocidade constante\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+"Tempo de esmaecimento (em ms) das janelas, em modo \"Velocidade constante\""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Janelas que devem desvanecer"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Ponto Montagem"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Ponto de montagem"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Sistema de Ficheiros Userspace"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Sistema de ficheiros userspace"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Backend de controlo do GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Suprte ao loop principal do GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Abrir um terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Caixa de Diálogo Executar"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Executar comando de terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Linha de comando para capturar ecrã"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Mostrar Menu Principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Mostrar caixa de diálogo Executar Aplicativo"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Mostrar o menu principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Efetuar uma captura de tela"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Efetuar captura de tela de uma janela"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Linha de comando do terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Linha de comando para captura de tela de janelas"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Backend de ficheiro simples ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Plugin de notificação de ficheiros"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Backend de controlo Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimizar Efeito"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimizar Janelas"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Velocidade de minimização"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Timestep de minimização"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistência de Sombra"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistência ao sombrear"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformar janelas quando elas forem minimizadas e desminimizadas"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Janelas que devem ser transformadas quando minimizadas"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Restringir Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Restringir a coordenada Y conforme a área de trabalho"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Não actualizar a posição das janelas no lado do servidor até acabar de mover"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Iniciar Movimento de Janelas"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Posicionamento preguiçoso"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mover Janela"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Mover janela"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nível de opacidade das janelas em movimento"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Janelas maximizadas quebradas e automaticamente desmaximizadas ao arrastar"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Janelas maximizadas quebradas"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Iniciar movimento da janela"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Luminosidade (em %) de janelas que não respondem"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Reduzir Opacidade"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Aumentar Opacidade"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Etapa de mudança de opacidade"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Etapa de mudança de opacidade"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Etapa de Opacidade"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nível de opacidade das janelas em movimento"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacidade Durante Rotação"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Saturação (em %) de janelas que não respondem"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decorações das janelas"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Valores de opacidade da janela"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Criar Janelas"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Janelas que devem ser posicionadas por omissão"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Janelas que devem ser translúcidas por omissão"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Janelas que devem ser posicionadas por omissão"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmo usado para dispor janelas"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascata"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrado"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Posicionamento Fixo de Janelas"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Forçar Colacação Janelas"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Posições horizontais"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Manter Na Área Trabalho"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+"Manter janelas colocadas na área de trabalho, mesmo que isso signifique que "
+"a posição possa diferir da posição especificada"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Colocar Janelas"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Colocar em todos os dispositivos de saída"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Colocar janelas nas posições apropriadas quando houver mapeamento"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Modo de disposição"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Janelas posicionadas"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aleatório"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Selecciona como a colocação de janelas se deve comportar se estiverem "
+"seleccionados múltiplos dispositivos de saída."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligente"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Usar dispositivo de saída activo"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Usar dispositivo de saída da janela com foco"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Usar dispositivo de saída com cursor"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Posições verticais"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Janelas posicionadas no viewport"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Soluções para colocação de janelas"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Janelas que devem ser posicionadas por omissão"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Janelas que devem ser posicionadas em viewports específicos por omissão"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Janelas que devem ser posicionadas, mesmo que indiquem que o gestor de "
+"janelas deve evitar posicioná-las."
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Janelas com posições fixas"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Janelas com viewport fixo"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Soluções"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Posições X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Posições X do viewport"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valores de posição X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Posições Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Posições Y do viewport"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valores de posição Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Carregar imagens png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Filtragem Regex"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Filtro regex de janelas"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Atalhos"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Cor da borda"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Cor do contorno usado para o modo contorno e rectangular de redimensionameto"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Modo de redimensionamento por omissão"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Modo a usar por omissão para redimensionamento de janelas"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Cor de preenchimento"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+"Cor de preenchimento usada para o modo rectangular de redimensionamento"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Iniciar Redimensionamento Normal de Janelas"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Iniciar Redimensionamento esqueleto de Janelas"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Iniciar Redimensionamento Rectangular de Janelas"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Iniciar Redimensionamento Esticado de Janelas"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Iniciar Redimensionamento de Janelas"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Redimensionamento Normal de Janelas"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Contorno"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Redimensionar janelas pelo contorno"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rectângulo"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Redimensionar Janelas rectangularmente"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Redimensionar Janela"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Redimensionar janela"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Iniciar redimensionamento da janela"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Iniciar redimensionamento da janela esticando-a"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Iniciar redimensionamento normal da janela"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Iniciar redimensionamento da janela usando o contorno"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Iniciar redimensionamento da janela usando um rectângulo"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Esticar"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Redimensionar janelas esticando-as"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Janelas que devem usar redimensionamento normal"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Janelas que devem usar redimensionamento pelo contorno"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Janelas que devem usar redimensionamento rectangular"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Janelas que devem usar redimensionamento por esticamento"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Movimento de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Ponteiro de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Tempo de Inversão"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Rodar para o viewport da esquerda e manter ponteiro"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Inverter para o viewport seguinte ao arrastar o objeto para a borda da tela"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Inverter para o viewport seguinte ao mover o ponteiro para a borda da tela"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Inverter para o viewport seguinte ao mover a janela para a borda da tela"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Rodar para o viewport da direita e manter ponteiro"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverter o eixo Y para movimento do ponteiro"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Inverter Y com o Ponteiro"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilidade do Ponteiro"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Elevar ao rodar"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Elevar janelas ao rodar"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Girar Cubo"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Rodar para a Esquerda"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Rodar para a Direita"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Girar para a Esquerda"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Girar para a Esquerda com Janela"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Girar para a Direita"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Girar para a Direita com Janela"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Rodar para"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Rodar para Face 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Rodar para Face 1 com Janela"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Girar para a Face 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Girar para a Face 10 com Janela"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Girar para a Face 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Girar para a Face 11 com Janela"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Girar para a Face 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Girar para a Face 12 com Janela"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Girar para a Face 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Girar para a Face 2 com Janela"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Girar para a Face 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Girar para a Face 3 com Janela"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Girar para a Face 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Girar para a Face 4 com Janela"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Girar para a Face 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Girar para a Face 5 com Janela"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Girar para a Face 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Girar para a Face 6 com Janela"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Girar para a Face 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Girar para a Face 7 com Janela"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Girar para a Face 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Girar para a Face 8 com Janela"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Girar para a Face 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Girar para a Face 9 com Janela"
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Girar cubo"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Girar cubo da área de trabalho"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Girar para a esquerda"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Rodar para a esquerda e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Girar para a direita"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Rodar para a direita e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Rodar para face do cubo"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Rodar para face do cubo arrastando janela"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Rodar para a face 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Rodar para a face 1 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Girar para a face 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Girar para a face 10 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Girar para a face 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Girar para a face 11 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Girar para a face 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Girar para a face 12 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Girar para a face 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Girar para a face 2 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Girar para a face 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Girar para a face 3 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Girar para a face 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Girar para a face 4 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Girar para a face 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Girar para a face 5 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Girar para a face 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Girar para a face 6 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Girar para a face 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Girar para a face 7 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Girar para a face 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Girar para a face 8 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Girar para a face 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Girar para a face 9 e trazer a janela activa junto"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Rodar para o viewport"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Rodar janela"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Rodar com janela"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Aceleração da Rotação"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocidade da Rotação"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Timestep da Rotação"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom da rotação"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilidade do movimento do ponteiro"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Fechar a Rotação do Cubo na Face Inferior"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Fechar a Rotação do Cubo na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Fechar na Face Inferior"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Fechar na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Iniciar Rotação"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tempo de espera até a rodar o viewport"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Volume de opacidade em percentagem"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grande"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Botão de Atalho Alternar Modo Dimensionamento"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Botão de atalho que alterna o modo de dimensionamento em vez de o activar "
+"quando premido ou desactivar quando libertado."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Clicar área de trabalho para Mostrar Área"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Escurecer Segundo Plano"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Escurecer segundo plano ao dimensionar janelas"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblema"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Entrar no modo Mostrar Área de Trabalho quando o ambiente é clicado durante "
+"o dimensionamento"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Tempo a pairar"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Iniciar Seletor de Janelas"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Iniciar Selector de Janelas para Todas as Janelas"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Iniciar Selector de Janelas para Grupo de Janelas"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Iniciar Selector de Janelas para Todas as Janelas na Saída Actual"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Tecla de Atalho Alternar Modo Dimensionamento"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Tecla de atalho que alterna o modo de dimensionamento em vez de o activar "
+"quando premida e desactivar quando libertada."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Criar layout de todas as janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Criar layout de grupo de janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Criar layout das janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Criar layout de janelas na saída actual e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Em todos os dispositivos de saída"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Apenas no dispositivo de saída actual"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Ícone de Instalação Sobreposta"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Sobrepor um ícone nas janelas quando elas são dimensionadas"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Dimensionar"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Janelas a dimensionar"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Velocidade de dimensionamento"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Etapa de dimensionamento"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Dimensionar janelas"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Selecciona onde as janelas são dimensionadas se existirem múltiplos "
+"dispositivos de saída."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espaço entre janelas"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espaçamento"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tempo (em ms) antes que o modo de dimensionar seja terminado ao pairar sobre "
+"uma janela"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Janelas a serem dimensionadas no modo dimensionar"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Abrir automaticamente captura de ecrã nesta aplicação"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Directório"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Captura de secção rectangular do ecrã"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Iniciar Aplicação"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Colocar capturas de ecrã neste directório"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Captura de ecrã"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Plugin de captura de ecrã"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Carregar imagens svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Quantidade de brilho em percentagem"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Quantidade de saturação em percentagem"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Alternador de Aplicativos"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Rodar Automaticamente"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Colocar em Primeiro Plano"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Colocar a janela selecionada em primeiro plano"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Distância a que o ambiente deve ficar reduzido ao alternar janelas"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ícone"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimizado"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Painel Seguinte"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Próxima janela"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Próxima Janela (Todas as janelas)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Próxima Janela (Sem popup)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Mostrar alternador se não estiver visível e seleccionar próxima janela"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Mostrar alternador se não estiver visível e seleccionar próxima janela de "
+"todas"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Mostrar alternador se não estiver visível e seleccionar janela anterior"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Mostrar alternador se não estiver visível e seleccionar janela anterior de "
+"todas"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Painel Anterior"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Janela anterior"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Janela anterior (Todas as janelas)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Janela anterior (Sem popup)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Rodar para a janela seleccionada ao alternar"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Seleccionar tipo de janela do painel seguinte."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Seleccionar próxima janela sem mostrar o popup de janelas."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Seleccionar tipo de janela do painel anterior."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Seleccionar janela anterior sem mostrar o popup de janelas."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Mostrar ícone ao lado da miniatura"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Mostrar janelas minimizadas"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocidade do alternador"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Timestep do alternador"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Janelas a alternar"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Janelas que devem ser mostradas no alternador"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Proporciona suporte para o espaço de cor YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Reprodução Vídeo"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Reprodução de vídeos"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Espaço cor YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Adicionar linha"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Adicionar ponto"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Adiciona efeitos de água a diferentes acções no ambiente de trabalho"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Atraso (em ms) entre cada queda de gota de chuva"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Activar efeitos de água no cursor"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linha"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Offset do escalamento"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Ponto"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Atraso Chuva"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Onda do título"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Alternar chuva"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Activar/desactivar efeito chuva"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Alternar limpapárabrisas"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Activar/desactivar efeito limpapárabrisas"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efeito Água"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Offset do escalamento durante efeito de água"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efeito de onda do título da janela"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efeito Foco"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efeito Focar Janela"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Focar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Fricção"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Agarrar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Resolução Grelha"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Inverter o efeito de atracção/resistência de janelas"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Faz tremer a janela"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efeito Criação"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efeito Criação Janela"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Criar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efeito Maximizar"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Tamanho Grelha Mínimo"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Tamanho Mínimo da Grelha de Esquinas"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Mover Janelas"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Tremer"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Atracção Invertida"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Atrair janelas"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fricção Mola"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Constante K Mola"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constante Mola"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Alternar atracção/resistència das janelas"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Usar um modelo de uma mola para o efeito de janelas gelatinosas"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Resolução Grelha Esquinas"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Janelas que devem ser gelatinosas quando focadas"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Janelas que devem ser gelatinosas quando agarradas"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Janelas que devem ser gelatinosas quando criadas"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Janelas que devem ser gelatinosas quando movidas"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efeito gelatina quando se maximizam e minimizam janelas"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Janelas Gelatinosas"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtro Linear"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Usar filtro linear quando magnificado"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom Área de Trabalho"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Mais Zoom"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Menos Zoom"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Mover Zoom"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocidade Zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Salto Temporal Zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Magnificar e deslocar o cubo da área de trabalho"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Fator de magnificação"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Deslocar zoom"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Linha de comando 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Executar comando 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Comandos para capturar ecrã"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Atalhos de teclado para capturar ecrã"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Reduzir opacidade da janela"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Aumentar opacidade da janela"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valores de opacidade para janelas que devem ser translúcidas por omissão"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacidade de janelas"
+
+#~ msgid "Background Images"
+#~ msgstr "Imagens de fundo"
+
+#~ msgid "Background images"
+#~ msgstr "Imagens de fundo"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Colocar janelas num plano"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plano Abaixo"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plano à esquerda"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plano à direita"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plano à Face 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plano à Face 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plano à Face 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plano à Face 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plano à Face 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plano à Face 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plano à Face 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plano à Face 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plano à Face 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plano à Face 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plano à Face 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plano à Face 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plano acima"
+
+#~ msgid "Plane down"
+#~ msgstr "Plano abaixo"
+
+#~ msgid "Plane left"
+#~ msgstr "Plano à esquerda"
+
+#~ msgid "Plane right"
+#~ msgstr "Plano á direita"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plano à face 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plano à face 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plano à face 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plano à face 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plano à face 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plano à face 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plano à face 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plano à face 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plano à face 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plano à face 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plano à face 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plano à face 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plano acima"
+
+#~ msgid "Desktop Window Opacity Fade Time.Fade Time"
+#~ msgstr ""
+#~ "Tempo de Desvanecimento da Opacidade do Ambiente de trabalho.Tempo de "
+#~ "desvanecimento"
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..dd5cca0
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,3374 @@
+# translation of compiz.po to Brazilian Portuguese
+# Compiz Core Brazilian Portuguese Translation.
+# Copyright (C) 2007 2007 SuSE Linux Products GmbH, Nuernberg
+# This file is distributed under the same license as the compiz package.
+#
+# Novell Language <language@novell.com>, 2006,2007.
+# Joel Calado <joelcalado@gmail.com>, 2007.
+# Nicolau Gonçalves <excentriko@gmail.com>, 2007.
+# Emerson Ribeiro de Mello <ribmello-compiz@yahoo.com.br>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-10-30 23:13+0100\n"
+"Last-Translator: Raylton P. Sousa <raylton.sousa@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Ambiente de trabalho"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Gerenciamento de janelas"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nenhum"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Dimensionar"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximizar"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximizar Janela Horizontalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximizar Janela Verticalmente"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimizado"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Elevação Automática"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menu da Janela"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Ação a ser tomada ao girar a roda do mouse sobre a barra de título da janela."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tipo de desfocagem"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacidade da janela ativa no tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Opacidade da sombra da janela ativa no tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacidade do tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Opacidade da sombra do tema Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opacidade a ser usada para janelas ativas com decorações metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacidade a ser usada para decorações metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Sombrear decoração de janelas ativas com temas metacity de opaco para "
+"transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Sombrear decoração de janelas com temas metacity de opaco para transparente"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Ação da roda do mouse no título da janela"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tipo de desfocagem usado para as decorações"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Usar tema metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Usar tema metacity ao desenhar as decorações das janelas"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Fechar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Desmaximizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizar Janela"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Fazer Acima"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Colar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Desfazer sombreamento"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Desfazer acima"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Descolar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "A janela \"% s\" não está respondendo."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forçar o fechamento deste aplicativo fará com que você perca todas as "
+"alterações não salvas "
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forçar Saida"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anotar"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Cor de preenchimento das anotações"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Cor do pincel das anotações"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Plugin de Anotações"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Limpar"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Desenhar"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Desenhar usando uma ferramenta"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Cor de preenchimento para anotações"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Iniciar"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Iniciar desenho de anotação"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Iniciar apagador de anotação"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Iniciar apagador"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Espessura da linha"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Espessura da linha para anotações"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Cor do pincel para anotações"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Largura do pincel"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Largura do pincel para anotações"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4X Bilinear"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Desfocagem Alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Desfocagem alfa das janelas"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtro de desfocagem"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Oclusão da desfocagem"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturação da desfocagem"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Velocidade de desfocagem"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Desfocar janelas"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Desfocar por trás de partes transparentes de janelas"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturação da desfocagem"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Desfocar janelas"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Desfocar janelas que não tenham foco"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Desativar desfocagem de regiões da tela obscurecidas por outras janelas."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Método de filtragem usado para desfocar"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Desfocar com base no foco"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Desfocar janelas com base na janela atual"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussiano"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Raio gaussiano"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Força gaussiana"
+
+# name for RUS
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Raio gaussiano"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Força gaussiana"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "MipMap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Nível de detalhe mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulso"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efeito de pulso"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Velocidade de desfocagem das janelas"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Janelas que serão afetadas por desfocagem de foco"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Janelas que devem usar desfocagem alfa por padrão"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Clonar saída"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Iniciar seleção de clone"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Gestor de clonagem de saídas"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Uma tecla de atalho que, quando acionado, executa o comando identificado "
+"pelo comando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Uma tecla de atalho que, quando acionado, executa o comando identificado "
+"pelo comando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Uma tecla de atalho que, quando acionado, executa o comando identificado "
+"pelo comando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Uma tecla de atalho que, quando acionada, executa o comando identificado "
+"pelo comando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Linha de comando 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Linha de comando 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Linha de comando 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Linha de comando 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Linha de comando 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Linha de comando 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Linha de comando 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Linha de comando 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Linha de comando 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Linha de comando 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Linha de comando 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Linha de comando 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Linha de comando a ser executada quando run_command0 for acionado"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Linha de comando a ser executada quando run_command1 for acionado"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Linha de comando a ser executada quando run_command10 for acionado"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Linha de comando a ser executada quando run_command11 for acionado"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Linha de comando a ser executada quando run_command2 for acionado"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Linha de comando a ser executada quando run_command3 for acionado"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Linha de comando a ser executada quando run_command4 for acionado"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Linha de comando a ser executada quando run_command5 for acionado"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Linha de comando a ser executada quando run_command6 for acionado"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Linha de comando a ser executada quando run_command7 for acionado"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Linha de comando a ser executada quando run_command8 for acionado"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Linha de comando a ser executada quando run_command9 for acionado"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Comando"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Executar comando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Executar comando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Executar comando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Executar comando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Executar comando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Executar comando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Executar comando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Executar comando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Executar comando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Executar comando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Executar comando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Executar comando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Plugins Ativos"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permitir que o desenho das janelas em tela inteira não seja redirecionado "
+"para pixmaps fora da tela"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Campainha Audível"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Bip audível do sistema "
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Elevação Automática"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Atraso na Elevação Automática"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detecção automática de dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detecção automática da taxa de atualização"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Melhor"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Clique para Posicionar o Foco"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "O clique na janela transfere o foco para ela"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Fechar a janela ativa"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Ícone Padrão"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Imagem do ícone padrão da janela"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Cubo da Área de Trabalho"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detectar Saídas"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detectar Taxa de Atualização"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rápido"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Janelas em Prevenção de Destaque"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Janelas em Prevenção de Destaque"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Janelas em prevenção de destaque"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opções Gerais"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opções gerais do compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bom"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ocultar Janelas Ignorar Barra de Tarefas"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Ocultar todas as janelas e enfocar área de trabalho"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Ocultar as janelas que não estão na barra de tarefas ao entrar no modo "
+"mostrar área de trabalho"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Tamanho Virtual Horizontal"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorar dicas quando maximizada"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Ignorar incremento de tamanho e aspecto quando a janela é maximizada"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervalo antes da elevação das janelas selecionadas"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervalo entre mensagens ping"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Iluminação"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista de plugins atualmente ativos"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista de caracteres descrevendo os dispositivos de saída"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Janela Mais Baixa"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Janela mais baixa sob as demais janelas"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximizar Janela Horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximizar Janela Verticalmente"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximizar janela ativa"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximizar janela ativa horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximizar janela ativa verticalmente"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimizar janela ativa"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Número de áreas de trabalho"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Número de ambientes virtuais"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Apenas efetuar atualizações de tela durante o período de limpeza vertical"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Saídas"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Atraso de ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Elevar com um Clique"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Elevar janela"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Elevar janelas selecionadas após intervalo"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Elevar janela acima das restantes"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Elevar janelas quando clicadas"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Taxa de Atualização"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicador de tamanho horizontal da tela para tamanho virtual"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicador de tamanho vertical da tela para tamanho virtual"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Mostrar Área de Trabalho"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Animações Lentas"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "Inteligente"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizar a VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Filtro de Texturas"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtro de Textura"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtro de Texturas"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Taxa em que a tela é redesenhada (vezes/segundo)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Alternar Janela Maximizada"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Alternar Janela Maximizada Horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Alternar Janela Maximizada Verticalmente"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Alternar Janela Sombreada"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Alternar janela ativa maximizada"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Alternar janela ativa maximizada horizontalmente"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Alternar janela ativa maximizada verticalmente"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Alternar janela ativa sombreada"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Alternar uso de animações lentas"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Desmaximizar janela ativa"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Anular redirecionamento de janelas de tela inteira"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Usar luz difusa quando a tela for transformada"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Tamanho Vertical Virtual"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Botão de atalho para menu da Janela"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tecla de atalho para menu da Janela"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Aceleração"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ajustar Imagem"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ajustar imagem do topo à rotação"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avançar para a próxima lâmina"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animar Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animar Skydome ao girar o cubo"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automático"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Cor dos lados superior e inferior do cubo"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Cor padrão a ser usada no fundo para o gradiente do skydome"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Cor padrão a ser usada no topo para o gradiente do skydome"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Cor do Cubo"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Cor do Cubo"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cubo da Área de Trabalho"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Aceleração de dobragem"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Velocidade de dobragem"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Intervalo de tempo de dobragem"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Gerar mapas quando possível para dimensionamento de melhor qualidade"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Voltar à lâmina anterior"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Arquivos de imagem"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imagem para usar como textura no skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Iniciar transparência do cubo apenas se a rotação for conduzida pelo mouse."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Dentro do Cubo"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Dentro do cubo"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista de arquivos PNG e SVG que devem ser renderizados na face superior do "
+"cubo"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Modo de Multi Saída"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Múltiplos cubos"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Próxima Lâmina"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Grande cubo"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacidade Durante Rotação"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacidade Enquanto Não Roda"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacidade do ambiente de trabalho ao rodar."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacidade do ambiente de trabalho quando estático."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Colocar janelas no cubo"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Lâmina Anterior"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Renderizar skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Dimensionar imagem"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Dimensionar imagens para cobertura da face superior do cubo"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Seleciona como o cubo é desenhado se existirem múltiplos dispositivos de "
+"saída."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Cor Final do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Cor Inicial do gradiente Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imagem do Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Velocidade"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Intervalo de tempo"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparência apenas ao rodar com o mouse"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Desdobrar"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Desdobrar cubo"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Programa interno de controle do Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permitir a geração de mipmaps para texturas da decoração"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Decoração das janelas"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Linha de comando a ser executada se nenhum decorador estiver em execução"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Deslocamento X da sombra"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Deslocamento Y da sombra"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacidade da sombra"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Raio da sombra"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Cor da sombra"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Deslocamento X da Sombra"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Deslocamento Y da Sombra"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacidade da Sombra"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Raio da Sombra"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Janelas com sombra"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decoração da Janela"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decorações das janelas"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Janelas que devem ser decoradas"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Janelas que devem ter sombra"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Velocidade da Rotação"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Restringir Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Redimensionamento Normal de Janelas"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Tempo de desvanecimento"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Desvanecer ao Minimizar/Abrir/Fechar"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Velocidade de Esmaecimento"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Tempo de desvanecimento"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efeito de desvanecimento ao eventos de minimizar/abrir/fechar janelas"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efeito de desvanecimento no bip do sistema"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Revitalizar janelas quando houver mapeamento e esmaecê-las quando não houver "
+"mapeamento"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Desvanecer janelas"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Janelas Desvanecidas"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Campainha Visual de Tela Inteira"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Efeito de desvanecimento de tela inteira ao som de bip do sistema"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Campainha Visual"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Velocidade de desvanecimento das janelas"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Janelas a serem dimensionadas no modo Dimensionar"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Janelas que devem desvanecer"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Ponto de montagem"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Ponto de Montagem"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Sistema de arquivos Userspace"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Sistema de arquivos userspace"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Programa interno de controle do GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Suporte ao loop principal do GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Abrir um terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Caixa de Diálogo Executar"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Linha de comando do terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Capturar tela a partir da linha de comando"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Mostrar Menu Principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Mostrar caixa de diálogo Executar Aplicativo"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Mostrar o menu principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Efetuar uma captura de tela"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Efetuar captura de tela de uma janela"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Linha de comando do terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Linha de comando para captura de tela de janelas"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Programa interno para arquivos ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Plugin de notificação de modificação de arquivos"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Programa interno de controle do Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efeito ao Minimizar"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimizar Janelas"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Velocidade de minimização"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Intervalo de tempo de minimização"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Resistência de Sombra"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Resistência ao Sombrear"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformar janelas quando elas forem minimizadas e desminimizadas"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Janelas que devem ser transformadas quando minimizadas"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Restringir Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Restringir a coordenada Y conforme a área de trabalho"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Não atualizar a posição das janelas no lado do servidor até acabar de mover"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Iniciar Movimento de Janelas"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Posicionamento preguiçoso"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mover Janela"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Mover janela"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nível de opacidade das janelas em movimento"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Janelas maximizadas quebradas e automaticamente desmaximizadas ao arrastar"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Janelas maximizadas quebradas"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Iniciar movimento da janela"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Brilho"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Reduzir Opacidade"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Aumentar Opacidade"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Etapa de mudança de opacidade"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Etapa de mudança de opacidade"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Etapa de Opacidade"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nível de opacidade das janelas em movimento"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacidade Durante Rotação"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Saturação"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decorações das janelas"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Valores de opacidade da janela"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Criar Janelas"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Janelas que devem ser posicionadas por padrão"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Janelas que devem ser translúcidas por padrão"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Janelas que devem ser posicionadas por padrão"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmo usado para a disposição das janelas"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascata"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centralizado"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Gerenciamento de janelas"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Janelas em Prevenção de Destaque"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Posições horizontais"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Colocar Janelas"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Colocar janelas nas posições apropriadas quando houver mapeamento"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Modo de disposição"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Janelas posicionadas"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aleatório"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Seleciona onde as janelas são dimensionadas se existirem múltiplos "
+"dispositivos de saída."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligente"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "Em todos os dispositivos de saída"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Posições verticais"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Janelas posicionadas na janela de visualização"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Soluções para disposição das janelas"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Janelas que devem ser posicionadas por padrão"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Janelas que devem ser posicionadas por padrão em janelas de visualização "
+"específicas"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Decorações das janelas"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Soluções"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Posições X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Posições X da janela de visualização"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valores da posição X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Posições Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Posições Y da janela de visualização"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valores da posição Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Carregar imagens Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Filtragem através de expressões regulares"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Filtragem de janelas através de expressões regulares"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Cor da borda"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Cor do contorno usado para o modo contorno e retangular de redimensionameto"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Modo padrão de redimensionamento"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Modo a usar por padrão para o redimensionamento de janelas"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Cor de preenchimento"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Cor de preenchimento usada para o modo retangular de redimensionamento"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Iniciar Redimensionamento Normal de Janelas"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Iniciar Redimensionamento do contorno de Janelas"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Iniciar Redimensionamento Retangular de Janelas"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Iniciar Redimensionamento Esticado de Janelas"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Iniciar Redimensionamento de Janelas"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Redimensionamento Normal de Janelas"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Contorno"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Redimensionar janelas pelo contorno"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Retângulo"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Redimensionar Janelas retangularmente"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Redimensionar Janela"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Redimensionar janela"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Iniciar redimensionamento da janela"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Iniciar redimensionamento da janela esticando-a"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Iniciar redimensionamento normal da janela"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Iniciar redimensionamento da janela usando o contorno"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Iniciar redimensionamento da janela usando um retângulo"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Esticar"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Redimensionar janelas esticando-as"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Janelas que devem usar redimensionamento normal"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Janelas que devem usar redimensionamento pelo contorno"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Janelas que devem usar redimensionamento retangular"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Janelas que devem usar redimensionamento por esticamento"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Movimento de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Ponteiro de Inversão de Bordas"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Tempo de Inversão"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Rodar para a janela de visualização da esquerda e manter ponteiro"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Inverter para janela de visualização seguinte ao arrastar o objeto para a "
+"borda da tela"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Inverter para a janela de visualização seguinte ao mover o ponteiro para a "
+"borda da tela"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Inverter para janela de visualização seguinte ao mover a janela para a borda "
+"da tela"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Rodar para janela de visualização da direita e manter ponteiro"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inverter o eixo Y para movimento do ponteiro"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Inverter Y com o Ponteiro"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Sensibilidade do Ponteiro"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Elevar ao rodar"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Elevar janelas ao rodar"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Girar Cubo"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Girar para a Esquerda"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Girar para a Direita"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Girar para a Esquerda"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Girar para a Esquerda com Janela"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Girar para a Direita"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Girar para a Direita com Janela"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Girar para"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Girar para Face 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Girar para Face 1 com Janela"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Girar para a Face 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Girar para a Face 10 com Janela"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Girar para a Face 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Girar para a Face 11 com Janela"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Girar para a Face 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Girar para a Face 12 com Janela"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Girar para a Face 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Girar para a Face 2 com Janela"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Girar para a Face 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Girar para a Face 3 com Janela"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Girar para a Face 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Girar para a Face 4 com Janela"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Girar para a Face 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Girar para a Face 5 com Janela"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Girar para a Face 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Girar para a Face 6 com Janela"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Girar para a Face 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Girar para a Face 7 com Janela"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Girar para a Face 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Girar para a Face 8 com Janela"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Girar para a Face 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Girar para a Face 9 com Janela"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Girar Cubo"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Girar cubo da área de trabalho"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Girar para a esquerda"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Girar para a esquerda e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Girar para a direita"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Girar para a direita e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Girar para a face 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Girar para Face 1 com Janela"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Girar para a face 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Girar para a face 1 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Girar para a face 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Girar para a face 10 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Girar para a face 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Girar para a face 11 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Girar para a face 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Girar para a face 12 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Girar para a face 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Girar para a face 2 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Girar para a face 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Girar para a face 3 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Girar para a face 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Girar para a face 4 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Girar para a face 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Girar para a face 5 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Girar para a face 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Girar para a face 6 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Girar para a face 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Girar para a face 7 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Girar para a face 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Girar para a face 8 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Girar para a face 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Girar para a face 9 e trazer a janela ativa junto"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Girar para a janela de visualização"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Girar janela"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Girar com janela"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Aceleração da Rotação"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Velocidade da Rotação"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Intervalo de tempo da Rotação"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Zoom da rotação"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilidade do movimento do ponteiro"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Fechar a Rotação do Cubo na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Fechar a Rotação do Cubo na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "Fechar na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Fechar na Face Superior"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Iniciar Rotação"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tempo de espera até a rodar a janela de visualização"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Volume de opacidade em percentagem"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Grande"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Clicar na área de trabalho para mostrar a área de trabalho"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Escurecer Segundo Plano"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Escurecer segundo plano ao dimensionar janelas"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblema"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Entrar no modo Mostrar Área de Trabalho quando o ambiente é clicado durante "
+"o dimensionamento"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Tempo a pairar"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Iniciar Seletor de Janelas"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Iniciar Selector de Janelas para Todas as Janelas"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Iniciar Selector de Janelas para Grupo de Janelas"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Iniciar Selector de Janelas para Todas as Janelas na Saída Atual"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Criar layout de todas as janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Criar layout de grupo de janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Criar layout das janelas e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Criar layout de janelas na saída atual e iniciar sua transformação"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Em todos os dispositivos de saída"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Apenas no dispositivo de saída atual"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Ícone de sobreposição"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Sobrepor um ícone nas janelas quando elas são dimensionadas"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Dimensionar"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Janelas a dimensionar"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Velocidade de Dimensionamento"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Etapa de dimensionamento"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Dimensionar janelas"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Seleciona onde as janelas são dimensionadas se existirem múltiplos "
+"dispositivos de saída."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Espaço entre janelas"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Espaçamento"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Tempo (em ms) antes que o modo de dimensionar seja terminado ao pairar sobre "
+"uma janela"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Janelas a serem dimensionadas no modo Dimensionar"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Abrir automaticamente captura de tela nesta aplicação"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Diretório"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Captura de uma parte retangular da tela"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Iniciar Aplicação"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Colocar capturas de telas neste diretório"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Capturar tela"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Plugin de captura de tela"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Carregar imagens svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Quantidade de brilho em percentagem"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Quantidade de saturação em percentagem"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Alternador de Aplicativos"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Rodar Automaticamente"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Colocar em Primeiro Plano"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Colocar a janela selecionada em primeiro plano"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Distância a que o ambiente deve ficar reduzido ao alternar janelas"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ícone"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimizado"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Plano da área de trabalho"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Próxima Janela"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Próxima Janela (Todas as janelas)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Próxima Janela (Sem popup)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Mostrar alternador se não estiver visível e selecionar próxima janela"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Mostrar alternador se não estiver visível e selecionar próxima janela de "
+"todas"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Mostrar alternador se não estiver visível e selecionar janela anterior"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Mostrar alternador se não estiver visível e selecionar janela anterior de "
+"todas"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Lâmina Anterior"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Janela anterior"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Janela anterior (Todas as janelas)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Janela anterior (Sem popup)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Rodar para a janela selecionada ao alternar"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Selecionar próxima janela sem mostrar o popup de janelas."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Selecionar janela anterior sem mostrar o popup de janelas."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Selecionar janela anterior sem mostrar o popup de janelas."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Mostrar ícone ao lado da miniatura"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Mostrar janelas minimizadas"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Velocidade do alternador"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Intervalo de tempo do alternador"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Janelas a alternar"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Janelas que devem ser mostradas no alternador"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Proporciona suporte para o espaço de cor YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Reprodução Vídeo"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Reprodução de vídeos"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Espaço cor YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Adicionar linha"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Adicionar ponto"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Adiciona efeitos de água a diferentes ações no ambiente de trabalho"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Atraso (em ms) entre cada queda de gota de chuva"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Ativar efeitos de água no cursor"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linha"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Distância do dimensionamento"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Ponto"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Atraso Chuva"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Onda do título"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Alternar chuva"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Ativar/desativar efeito chuva"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Ativar/desativar Limpador de parabrisas"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Ativar/desativar efeito Limpador de parabrisas"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efeito Água"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Distância do dimensionamento durante efeito de água"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efeito de onda do título da janela"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efeito Foco"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efeito Focar Janela"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Focar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Fricção"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Agarrar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Resolução da grade"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Inverter o efeito de atração/resistência de janelas"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Faz tremer a janela"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efeito Criação"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efeito Criação Janela"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Criar Janelas"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efeito Maximizar"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Tamanho mínimo da grade"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Tamanho mínimo do vértice da grade"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Mover Janelas"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Tremer"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Atração Invertida"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Atrair janelas"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fricção Mola"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Constante K Mola"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Constante Mola"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Alternar atração/resistência das janelas"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Usar um modelo de uma mola para o efeito de janelas gelatinosas"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Resolução do vértice da grade"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Janelas que devem ser gelatinosas quando focadas"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Janelas que devem ser gelatinosas quando agarradas"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Janelas que devem ser gelatinosas quando criadas"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Janelas que devem ser gelatinosas quando movidas"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efeito gelatina quando se maximizam e minimizam janelas"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Janelas Gelatinosas"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtro Linear"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Usar filtro linear quando ampliado"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zoom da Área de Trabalho"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Mais Zoom"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Menos Zoom"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Mover Zoom"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Velocidade do Zoom"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Intervalo de tempo do Zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Ampliar e deslocar o cubo da área de trabalho"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Fator de zoom"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Deslocar zoom"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Linha de comando 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Executar comando 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Capturar tela a partir da linha de comando"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Capturar tela a partir da linha de comando"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Reduzir opacidade da janela"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Aumentar opacidade da janela"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valores de opacidade para janelas que devem ser translúcidas por padrão"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacidade de janelas"
+
+#~ msgid "Background Images"
+#~ msgstr "Imagens de fundo"
+
+#~ msgid "Background images"
+#~ msgstr "Imagens de fundo"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Colocar janelas num plano"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plano Abaixo"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plano à esquerda"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plano à direita"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plano à Face 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plano à Face 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plano à Face 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plano à Face 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plano à Face 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plano à Face 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plano à Face 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plano à Face 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plano à Face 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plano à Face 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plano à Face 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plano à Face 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plano acima"
+
+#~ msgid "Plane down"
+#~ msgstr "Plano abaixo"
+
+#~ msgid "Plane left"
+#~ msgstr "Plano à esquerda"
+
+#~ msgid "Plane right"
+#~ msgstr "Plano á direita"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plano à face 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plano à face 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plano à face 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plano à face 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plano à face 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plano à face 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plano à face 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plano à face 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plano à face 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plano à face 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plano à face 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plano à face 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plano acima"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Tempo de desvanecimento da opacidade do ambiente de trabalho"
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..d8197ce
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,3639 @@
+# Traducerea compiz.po în Română
+#
+# Sergiu Bivol <sbivol87@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-05-19 19:29+0300\n"
+"Last-Translator: Sergiu Bivol <sbivol87@gmail.com>\n"
+"Language-Team: Română <kde-i18n-ro@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);;\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Birou"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Gestiune ferestre"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nimic"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Umbrește"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Tipul providerului"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximizează fereastra orizontal"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximizează fereastra vertical"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Tipul providerului"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Autoridicare"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Joasă"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Meniu fereastră"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Acțiunea de efectuat la derularea rotiței șoricelului deasupra barei de "
+"titlu."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Tip estompare"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Opacitatea ferestrei active în tematica Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Umbrirea opacității ferestrei active în tematica Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Opacitate în tematica Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Umbrirea opacității în tematica Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Opacitatea de utilizat pentru ferestrele active cu decorațiile tematicii "
+"Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacitatea de utilizat pentru decorațiile tematicii Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Umbrește ferestrele active cu decorațiile tematicii Metacity de la opac la "
+"străveziu"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Umbrește ferestrele cu decorațiile tematicii Metacity de la opac la străveziu"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Acțiune rotiță șoricel asupra barei de titlu"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tip de estompare utilizată pentru decorare ferestre"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Utilizare tematică Metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Utilizare tematică Metacity la desenarea decorațiilor ferestrelor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Închide fereastra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Demaximizează fereastra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximizează fereastra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimizează fereastra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Pune deasupra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Lipește"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Luminează"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Scoate deasupra"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Dezlipește"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Fereastra „%s” nu răspunde."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forțarea închiderii acestei aplicații va provoca pierderea modificărilor "
+"nesalvate."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forțează închiderea"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Adnotări"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Culoare de umplere a adnotării"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Culoare de ștanțare a adnotării"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Modúl Adnotare"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Curăță"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Desenează"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Desenează folosind unealta"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Culoarea de umplere a adnotărilor"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Inițiere"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Inițiază desenarea adnotării"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Inițiază ștergerea adnotării"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Inițiere ștergere"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Lățime linie"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Lățimea liniei pentru adnotări"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Culoare de ștanțare pentru adnotări"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Lățime ștanțare"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Lățimea ștanțării pentru adnotări"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBiliniar"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Estompare alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Estompare alfa ferestre"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filtru estompare"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Ocluziune estompare"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Saturație estompare"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Viteză estompare"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Estompare ferestre"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Estompează în spatele părților străvezii ale ferestrelor"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Saturația estompării"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Estompează ferestrele"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Estompează fereastra care nu este focalizată"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+"Dezactivează estomparea regiunilor de ecran obscurate de alte ferestre."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Metoda de filtrare utilizată pentru estompare"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Estompare la focalizare"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Estompare ferestre la focalizare"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gausian"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Rază gausiană"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Intensitate gausiană"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Raza gausiană"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Intensitatea gausiană"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Preluare independentă texturi"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Hartă MIP"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "NDD hartă MIP"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Nivel-de-detaliere a hărții MIP"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Puls"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efect de pulsare"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Utilizează unitățile de textură disponibile pentru a face cît mai multe "
+"preluări independente de textură."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Viteză estompare fereastră"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Ferestrele ce trebuiesc afectate de estomparea la focalizare"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Ferestrele ce trebuie să utilizeze implicit estompare alfa"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Clonare ieșire"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Inițiere selecție clonă"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Manipulant clonă ieșire"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă0”"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă1”"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă10”"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă11”"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă2”"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă3”"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă4”"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă5”"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă6”"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă7”"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă8”"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă9”"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă0”"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă1”"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă10”"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă11”"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă2”"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă3”"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă4”"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă5”"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă6”"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă7”"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă8”"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă9”"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă0”"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă1”"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă10”"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă11”"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă2”"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă3”"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă4”"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă5”"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă6”"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă7”"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă8”"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"O combinație de taste care va rula comanda de consolă identificată prin "
+"„comandă9”"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Linie de comandă 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Linie de comandă 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Linie de comandă 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Linie de comandă 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Linie de comandă 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Linie de comandă 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Linie de comandă 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Linie de comandă 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Linie de comandă 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Linie de comandă 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Linie de comandă 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Linie de comandă 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă0”"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă1”"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată "
+"„rulează_comandă10”"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată "
+"„rulează_comandă11”"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă2”"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă3”"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă4”"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă5”"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă6”"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă7”"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă8”"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Linia de comandă de executat în consolă cînd este invocată „rulează_comandă9”"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Comandă"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Execută comanda 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Execută comanda 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Execută comanda 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Execută comanda 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Execută comanda 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Execută comanda 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Execută comanda 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Execută comanda 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Execută comanda 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Execută comanda 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Execută comanda 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Execută comanda 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Module active"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Permite ca desenarea ferestrelor în ecran complet să nu fie redirecționată "
+"către hărți de pixeli"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Clopoțel sonor"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Bip de sistem sonorizat"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Autoridicare"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Întîrziere Autoridicare"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Detecție automată a dispozitivelor de ieșire"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Detecție automată a ratei de reîmprospătare"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Cea mai bună"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Clic pentru focalizare"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Clic pe fereastră mută focalizarea de intrare pe ea"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Închide fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Pictogramă implicită"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Pictograma implicită a ferestrei"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Cub de birou"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detectează ieșirile"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detectează rata de reîmprospătare"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Durata cît indicatorul trebuie să stea pe marginea ecranului înaintea "
+"efectuării unei acțiuni de margine."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Întîrziere declanșator margină"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rapidă"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Nivel de prevenire a focalizării"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Ferestre pentru prevenire focalizare"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Ferestrele pentru care se aplică prevenirea focalizării"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Forțează desenarea independentă a ieșirii."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Opțiuni generale"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Opțiuni generale Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bună"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Ascundere ferestre „Pășire bară de procese”"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Ascunde toate ferestrele și focalizează biroul"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Ascunde ferestrele de nu sînt în bara de procese la intrarea în regimul de "
+"afișare a biroului"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Înaltă"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Dimensiune virtuală orizontală"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Utilizează compresie pentru texturi convertite din imagini dacă e posibil"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignoră indiciile la maximizare"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Ignoră indiciile de mărire a dimensiunii și de aspect cînd fereastra este "
+"maximizată"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Interval înainte de ridicarea ferestrelor alese"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Interval între mesaje de verificare"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Nivelul de prevenire a furtului focalizării"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Iluminare"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista modulelor active la moment"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Listă de șiruri descriind dispozitivele de ieșire"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Joasă"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Coboară fereastra"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Coboară fereastra sub alte ferestre"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximizează fereastra orizontal"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximizează fereastra vertical"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximizează fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximizează orizontal fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximizează vertical fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimizează fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normală"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Număr de birouri"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Numărul de birouri virtuale"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Deconectat"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Actualizează ecranul numai în timpul golirii verticale"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Ieșiri"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Manipulant suprapunere ieșiri"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Desenează independent fiecare dispozitiv de ieșire, chiar dacă dispozitivele "
+"de ieșire se suprapun"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Întîrziere interogare"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Preferă ieșirea mai mare"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Preferă ieșirea mai mică"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Ridicare la clic"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Ridicare fereastră"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Ridicare ferestre alese după interval"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Ridicare fereastră deasupra celorlalte ferestre"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Ridică ferestrele la clic"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Rata de reîmprospătare"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Multiplicator dimensiune ecran pentru dimensiunea virtuală orizontală"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Multiplicator dimensiune ecran pentru dimensiunea virtuală verticală"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Afișare birou"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Afișare animații"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Regim inteligent"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Sincronizare la VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Compresie textură"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filtru textură"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrare textură"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Rata de redesenare a ecranului (ori/secundă)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Comută maximizare fereastră"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Comută maximizare orizontală fereastră"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Comută maximizare verticală fereastră"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Comută umbrire fereastră"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Comută maximizarea ferestrei active"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Comută maximizarea orizontală a ferestrei active"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Comută maximizarea verticală a ferestrei active"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Comută umbrirea ferestrei active"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Comută utilizarea animațiilor lente"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Demaximizează fereastra activă"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Dezredirecționează ferestrele în ecran comlpet"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Utilizare lumină difuză la transformarea ecranului"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Dimensiune virtuală verticală"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Foarte înaltă"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Care din dispozitivele de ieșire suprapuse să fie preferat"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Buton pentru meniu fereastră"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Tastă pentru meniu fereastră"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Accelerare"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Ajustează imaginea"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Ajustează imaginea feței de sus la rotație"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Avansează la următorul diapozitiv"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animare fundal"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animează imaginea de fond la rotirea cubului"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automat"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Culoarea părților de sus și de jos ale cubului"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Culoarea utilizată pentru marginea de jos a gradientului de rezervă al "
+"fundalului"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Culoarea utilizată pentru marginea de sus a gradientului de rezervă al "
+"fundalului"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Culoarea cubului"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Culoarea cubului"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Cub de birou"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Accelerație pliere"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Viteză pliere"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Pas de timp pliere"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Generare hărți MIP pentru calitate mai înaltă cînd e posibil"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Înapoi la diapozitivul precedent"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Fișiere imagine"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Imagine de utilizat ca textură de fond"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Inițiază transparența cubului doar dacă rotația e condusă de șoricel."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "În cub"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Vedere din interiorul cubului"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista fișierelor PNG și SVG ce trebuiesc afișate pe fața superioară a cubului"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Regim „Ieșiri multiple”"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Cuburi multiple"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Următorul diapozitiv"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Un cub mare"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacitate în timpul rotației"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacitate în afara rotației"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacitatea ferestrei biroului în timpul rotației."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacitatea ferestrei biroului în afara rotației."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Plasează ferestrele pe cub"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Diapoz. prec."
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Afișare fundal"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Scalare imagine"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Scalează imaginile pentru a acoperi fața superioară a cubului"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Alege cum să fie afișat cubul la utilizarea mai multor dispozitive de ieșire."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Fundal"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Culoare finală pentru gradient fundal"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Culoare inițială pentru gradient fundal"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Imagine fundal"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Viteză"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Pas de timp"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Transparență numai la rotire șoricel"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Depliază"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Depliază cubul"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Suport control Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Permite generarea de hărți MIP pentru texturi decorative"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Comandă"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Ferestre decorare"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Linia de comandă pentru decorator, executată dacă niciun decorator nu "
+"rulează deja"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Decalaj X pentru umbra lăsată"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Decalaj Y pentru umbra lăsată"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Culoare pentru umbra lăsată"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opacitate pentru umbra lăsată"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Rază pentru umbra lăsată"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Culoare umbră"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Decalaj X pentru umbră"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Decalaj Y pentru umbră"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Opacitate umbră"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Rază umbră"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Ferestre umbră"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Decorație fereastră"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Decorații fereastră"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Ferestrele ce trebuiesc decorate"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Ferestrele ce trebuie să aibă o umbră"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "&Testează"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Constrînge Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Data compilării:"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Decolorare la minimizare/deschidere/închidere"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Viteză decolorare"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Data compilării:"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efect de decolorare la minimizarea/deschiderea/închiderea ferestrelor"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efect decolorare la sunet de sistem"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Colorare ferestre la trecerea pe hartă și decolorare la scoaterea de pe hartă"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Decolorare ferestre"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Decolorarea ferestrelor"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Clopoțel vizibil în ecran complet"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Efect de decolorare la sunet de sistem în ecran complet"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Clopoțel vizibil"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Viteză decolorare fereastră"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Ferestrele ce trebuiesc scalate în regimul de scalare"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Ferestrele care trebuie să se decoloreze"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Punct de montare"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Punct de montare"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Sistem de fișiere în spațiul utilizatorului"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Sistem de fișiere în spațiul utilizatorului (fuse)"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Suport control GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Suport buclă principală GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Deschide o consolă"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Dialog ececuție"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Linie de comandă în terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Linie de comandă pentru captură de ecran"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Afișare meniu principal"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Afișare dialog de lansare aplicație"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Afișează meniul principal"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Fă o captură de ecran"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Face captura unei ferestre"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Linie de comandă în terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Linie de comandă pentru captură fereastră"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Suport fișier plan Ini"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Modúl de notificare a modificării fișierului"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Suport control Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efect de minimizare"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimizează ferestrele"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Viteză minimizare"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Pas de timp minimizare"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Rezistență la umbrire"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Rezistență la umbrire"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformare ferestre cînd sînt minimizate și deminimizate"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Ferestrele care trebuiesc transformate la minimizare"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Constrînge Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Constrînge coordonata Y la regiunea spațiului de lucru"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Nu actualiza în server poziția ferestrelor pînă cînd nu se încheie mutarea"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Inițierea mutării ferestrei"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Poziționare leneșă"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Mutare fereastră"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Mută fereastra"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacitate"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Nivel de opacitate al ferestrelor în mișcare"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Desprindere și demaximizare automată a ferestrelor maximizate la glisare"
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Inițializarea deplasării"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Luminozitate"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Luminozitate"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Luminozitate"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Luminozitate"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Reducere opacitate"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Mărire opacitate"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Pasul de modificare a opacității"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Pasul de modificare a opacității"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Pas opacitate"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Nivel de opacitate al ferestrelor în mișcare"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacitate în timpul rotației"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Pregătire"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Pregătire"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Pregătire"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Pregătire"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Decorații fereastră"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Window Manager"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Ferestre ce trebuiesc poziționate implicit"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Ferestre ce trebuie să fie străvezii implicit"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Ferestre ce trebuiesc poziționate implicit"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritm de utilizat pentru amplasarea ferestrelor"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Cascadă"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrat"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Gestiune ferestre"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Utilizatori virtuali"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/place.xml.in.h:12
+#, fuzzy
+msgid "Place across all outputs"
+msgstr "Preferă ieșirea mai mică"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+"Amplasează ferestrele pe poziții corespunzătoare la amplasarea pe hartă"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Rgim de amplasare"
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Aleator"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "Alege comportamentul amplasării în prezența ieșirilor multiple"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligent"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Folosește dispozitivul de ieșire activ"
+
+#: ../metadata/place.xml.in.h:20
+#, fuzzy
+msgid "Use output device of focussed window"
+msgstr "Folosește dispozitivul de ieșire cu indicatorul"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Folosește dispozitivul de ieșire cu indicatorul"
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Utilizatori virtuali"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Utilizatori virtuali"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Soluții de amplasare ferestre"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Ferestre ce trebuiesc poziționate implicit"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Ferestre ce trebuiesc poziționate implicit în anumite zone de vizualizare"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Ferestre ce ar trebui amplasate cu forța, chiar dacă ele îi indică "
+"gestionarului de ferestre să le evite."
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Decorații fereastră"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Soluții"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Poziții pe X"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Utilizatori virtuali"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Valori poziții pe X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Poziții pe Y"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Utilizatori virtuali"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Valori poziții pe Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Încărcător de imagini Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Potrivire ExpReg"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Potrivire ferestre cu o expresie regulată"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Culoare bordură"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Culoarea bordurii utilizate pentru regimurile de redimensionare dreptunghică "
+"și conturată"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Regim de redimensionare implicit"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Regimul implicit utilizat pentru redimensionarea ferestrelor"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Culoare de umplere"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+"Culoarea de umplere folosită pentru regimul de redimensionare dreptunghică"
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "India"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Contur"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Dreptunghi"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Începe redimensionarea"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Începe redimensionarea ferestrei, întinzînd-o"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Începe redimensionarea normal"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Începe redimensionarea cu contur"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Începe redimensionarea cu dreptunghi"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Întinde"
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Ferestre cu care se folosește redimensionarea normală"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Ferestre cu care se folosește redimensionarea cu contur"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Ferestre cu care se folosește redimensionarea cu dreptunghi"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Ferestre cu care se folosește redimensionarea prin întindere"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Întoarcere muchie – glisare"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Întoarcere muchie – deplasare"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Întoarcere muchie – indicator"
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "Data compilării:"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Întoarce spre fereastra de vizualizare stîngă și transferă indicatorul"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Întoarce spre următoarea fereastră de vizualizare la glisarea obiectului la "
+"marginea ecranului"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Întoarce spre următoarea fereastră de vizualizare la deplasarea "
+"indicatorului la marginea ecranului"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Întoarce spre următoarea fereastră de vizualizare la deplasarea ferestrei la "
+"marginea ecranului"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+"Întoarce spre fereastra de vizualizare dreaptă și transferă indicatorul"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Inversare axă Y pentru deplasare indicator"
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Pointer către %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Pointer către %1"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Ridicare la rotire"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Ridică fereastra la rotire"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Rotire cub"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Întoarcere spre stînga la rotire"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Întoarcere spre dreapta la rotire"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Rotire la stînga"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Rotire cub"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Desktop:"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Rotire la stînga"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Rotește la fereastra de vizualizare"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Tipul providerului"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Accelerare 3D:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "&Testează"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "&Testează"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "&Testează"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Sensibilitatea mișcării indicatorului"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Agățare rotație cub de fața inferioară"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Agățare rotație cub de fața superioară"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Agățare de fața inferioară"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Agățare de fața superioară"
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Opţiuni căutare"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Interval de timp pînă la întoarcerea ferestrei de vizualizare"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Lupă"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Opacitatea în procente"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Mare"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Clic pe birou pentru a fișa biroul"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Întunecare fundal"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Întunecă fundalul la scalarea ferestrelor"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblemă"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Intrare în regim Afișare birou cînd se face clic pe birou în timpul scalării"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Durată planare"
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Tipul providerului"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Inițiere Selector ferestre pentru toate ferestrele"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Inițiere Selector ferestre pentru grupul de ferestre"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Inițiere Selector ferestre pentru ferestrele ieșirii curente"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Aranjează și începe transformarea tuturor ferestrelor"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Aranjează și începe transformarea grupului de ferestre"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Aranjează și începe transformarea ferestrelor"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Aranjează și începe transformarea ferestrelor ieșirii curente"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Pe toate dispozitivele de ieșire"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Pe dispozitivul de ieșire curent"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Pictogramă suprapusă"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Suprapune o pictogramă pe ferestre odată ce sînt scalate"
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Stare"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "ora locală"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "ora locală"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Alege unde sînt scalate ferestrele dacă sînt utilizate mai multe dispozitive "
+"de ieșire."
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Spania"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Intervalul (în ms) înaintea terminării regimului de scalare la planarea "
+"deasupra unei ferestre"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Ferestrele ce trebuiesc scalate în regimul de scalare"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Deschide captura de ecran automat în această aplicație"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Director\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "India"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Lansare aplicație"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Pune capturile în acest director"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Captură de ecran"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Profil activ"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Încărcător de imagini Svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Luminozitatea în procente"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Saturația în procente"
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Ordinea de aplicare"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatic"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Acţiune"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Aduce fereastra aleasă în prim-plan"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Distanța la care să fie îndepărtat biroul în timpul comutării ferestrelor"
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Acţiune"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Desktop:"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Comutator-balon dacă nu este vizibil și alege următoarea fereastră"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Comutator-balon dacă nu este vizibil și alege următoarea fereastră dintre "
+"toate ferestrele"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Comutator-balon dacă nu este vizibil și alege fereastra precedentă"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Comutator-balon dacă nu este vizibil și alege fereastra precedentă dintre "
+"toate ferestrele"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Panoul precedent"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Rotește fereastra aleasă la comutare"
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Alege următoarea fereastră fără a afișa fereastra-balon."
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Alege fereastra precedentă fără a afișa fereastra-balon."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Afișare pictogramă lîngă miniatură"
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "ora locală"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "ora locală"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Ferestrele ce trebuiesc afișate în comutator"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Oferă suport pentru spațiu de culori YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Redare video"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Redare video"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Spațiu de culori YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Adaugă linie"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Adaugă punct"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Adaugă efecte acvatice pentru diferite acțiuni de birou"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Interval (în ms) între picături"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Activează efectele acvatice pentru indicator"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Linie"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Scală decalaj"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punct"
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "&Mail Relay"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Val pentru titlu"
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "&Activează statusul"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "&Activează statusul"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "&Activează statusul"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "&Activează statusul"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efect acvatic"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Scală decalaj Apă"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efect acvatic de la titlul ferestrei"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efect de focalizare"
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Acţiune"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Rezoluţie"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Agățare fereastră inversată"
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efect la amplasare pe hartă"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efect la maximizare"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Dimensiune minimă grilă"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Dimensiune minimă a grilei pe culmi"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Tremurare"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Agățare inversate"
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Acţiune"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Spania"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Spania"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "&Activează statusul"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Utilizare model de resort pentru efectul de legănare a ferestrei"
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Rezoluţia serverului"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Ferestre ce trebuie să se legene la focalizare"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Ferestre ce trebuie să se legene la înhățare"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Ferestre ce trebuie să se legene la amplasare pe hartă"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Ferestre ce trebuie să se legene la deplasare"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efect de legănare la maximizarea și demaximizarea ferestrelor"
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Tipul providerului"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filtru:"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Folosește filtru liniar cînd se apropie"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Lupă birou"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Apropiere"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Îndepărtare"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Panoramare lupă"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Viteză lupă"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Temporizare lupă"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Examinare și panoramare cub de Birou"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Coeficient lupă "
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Panoramare lupă"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Linie de comandă 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Execută comanda 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Linie de comandă pentru captură de ecran"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Linie de comandă pentru captură de ecran"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Reduce opacitatea fereastrei"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Mărește opacitatea ferestrei"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Valoarea opacității pentru ferestrele care trebuie să fie străvezii "
+#~ "implicit"
+
+#~ msgid "Opacity window values"
+#~ msgstr "Valori ferestre opacitate"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Ferestre opacitate"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Tipul providerului"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Acţiune"
+
+#~ msgid "Unknown"
+#~ msgstr "Necunoscut"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Pregătire"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Accelerare 3D:"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "are nevoie de"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "&Testează"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Rusă"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Desktop:"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Accelerare 3D:"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "&Testează"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "ora locală"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "ora locală"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Acţiune"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Spania"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rezoluţia serverului"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "are nevoie de"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "&Testează"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Desktop:"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Comanda '%1'"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Imprimante"
+
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Afişează &modificările"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Imprimantă"
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..1128765
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,3317 @@
+# translation of compiz.po to Russian
+# Copyright (C) 2005, 2006 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+#
+# Aleksey Osipov <pepela@yandex.ru>, 2005, 2006.
+# Aleksey Novodvorksy <aen@logic.ru>, 2000.
+# Eugene Osintsev <osgene@omskelecom.ru>, 1999, 2000.
+# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2009-01-31 16:14+0100\n"
+"Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.ru>\n"
+"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Рабочий стол"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Управление Окнами"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Никакой"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Свернуть в заголовок"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Развернуть"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "Развернуть в ширину"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "Развернуть в высоту"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "Свернуть"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr "Развернуть"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr "Опустить"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Меню окна"
+
+# Действие при прокрутке колесика мыши на заголовке окна
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Действие при прокрутке колесика мыши на заголовке окна."
+
+# combo box item
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Тип размытия"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Прозрачность активного окна темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Затенение прозрачности активного окна темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Прозрачность темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Затенение прозрачности темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Прозрачность активных окон с оформлением темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Прозрачность оформления окон темы metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Затенять активные окна с оформлением темы для metacity от непрозрачного до "
+"полупрозрачного"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Затенять окна с оформлением темы для metacity от непрозрачного до "
+"полупрозрачного"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Действие, на колёсико мыши на заголовке окна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Тип размытия, используемый для оформлений окна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Использовать тему metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Использовать тему metacity при отрисовке декораций окон"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Закрыть окно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Отменить полное развертывание окна"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Развернуть окно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Свернуть окно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Поверх всех"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Приклеить"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Развернуть из заголовка"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Не делать поверх всех"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Отклеить"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Окно \"%s\" не отвечает."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Ускоренное закрытие приложения приведет к потере не сохраненных изменений."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Ускоренный выход"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Заметка"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Цвет заполнения заметки"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Цвет черты заметки"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Модуль заметки"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Очистить"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Рисовать"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Рисовать, используя инструмент"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Цвет заливки для заметок"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Инициировать"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Инициировать рисование заметки"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Инициировать стирание заметки"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Инициировать стирание"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Ширина линии"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Ширина линии для заметок"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Цвет черты для заметок"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ширина черты"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ширина черты для заметок"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4-кратная билинейная фильтрация"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Размытие по альфа-каналу"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Размытие окон по альфа-каналу"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Фильтр размытия"
+
+# Table header 4/5
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Преграждение размытия"
+
+# Table header 4/5
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Насыщенность размытия"
+
+# combo box item
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Скорость размытия"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Размытие окон"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Размытие за прозрачными частями окон"
+
+# Table header 4/5
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Насыщенность размытия"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Размытие окон"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Размытие окон, которые не активны"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Отключить размытие областей экрана, скрытых другими окнами."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Метод фильтра, используемый для размывания границ"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Размытие активного"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Размытие активных окон"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Гауссово размытие"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Радиус размытия"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Сила размытия"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Радиус размытия"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Сила размытия"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Независимое получение текстур"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Мипмэппинг"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Уровень детализации мипмэппинга"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Детализация мипмэппинга"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Пульс"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Эффект пульсации"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Использовать доступное количество элементов текстур для получения как можно "
+"большего количества независимых текстур."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Скорость размытия окна"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Окна, на которые действует размытие"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Окна, на которые действует размытие по умолчанию"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Дублирование вывода"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Инициировать выбор дублирования"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Обработчик дублированного вывода"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбинация клавиш, которая при вызове, выполнит команду оболочки, "
+"идентифицируемую как команда9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Закрепление"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Командная строка 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Командная строка 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Командная строка 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Командная строка 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Командная строка 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Командная строка 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Командная строка 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Командная строка 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Командная строка 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Командная строка 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Командная строка 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Командная строка 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+"Командная строка, которая будет выполнена в оболочке при вызове run_command9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr "Команды"
+
+#: ../metadata/commands.xml.in.h:64
+#, fuzzy
+msgid "Edge Bindings"
+msgstr "Закрепление"
+
+#: ../metadata/commands.xml.in.h:65
+#, fuzzy
+msgid "Key Bindings"
+msgstr "Сочетания клавиш"
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Выполнить команду 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Выполнить команду 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Выполнить команду 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Выполнить команду 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Выполнить команду 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Выполнить команду 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Выполнить команду 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Выполнить команду 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Выполнить команду 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Выполнить команду 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Выполнить команду 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Выполнить команду 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Активные модули"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Позволяет рисовать окна в полноэкранном режиме без перенаправления в области "
+"растрового отображения за пределами экрана"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Слышимый сигнал"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Слышимый системный звуковой сигнал"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Автораскрытие"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Задержка автораскрытия"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Автоматическое определение устройств вывода"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Автоматическое определение частоты обновления"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Наилучшее"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Щелкните для выделения"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Щелкните окно, чтобы передать ему фокус ввода"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Закрытие активного окна"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Значок по умолчанию"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Значок окна по умолчанию"
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr "Размер рабочего стола"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Определить устройства вывода"
+
+# headline for dialog "Select for update"
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Определить частоту обновления"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr "Настройки отображения"
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Задержка указателя мыши на краю экрана перед тем, как будет совершено "
+"действие края экрана."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Задержка срабатывания на краю"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Быстрое"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr "Поведение при развёртивании"
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Уровень упреждающей фокусировки"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Упреждающая фокусировка окон"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Упреждающая фокусировка окон"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Принудительная независимая отрисовка вывода."
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Общие настройки"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Общие настройки Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Хорошее"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Скрыть все, кроме окон панели задач"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Скрыть все окна и передать фокус рабочему столу"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"При переходе в режим отображения рабочего стола окна, отсутствующие на "
+"панели задач, не отображаются"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Высокий"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Виртуальный размер по горизонтали"
+
+# думаю так должно быть верно.
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Использовать сжатие для текстур, конвертированных от изображений, если "
+"доступно"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Игнорировать подсказки в развернутом состоянии"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+"Игнорирование подсказок увеличения размеров и соотношения сторон для "
+"развернутого окна"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Интервал времени до автораскрытия выбранных окон"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Интервал между сообщениями отклика"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr "Сочетания клавиш"
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Уровень предотвращения хищения фокуса"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Освещение"
+
+# command line help text for the 'list detected only' option
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Список активных в данный момент модулей"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Список строк, описывающих устройства вывода"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Низкий"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Переместить окно на задний план"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Расположение окна позади других окон"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Развернуть окно горизонтально"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Развернуть окно вертикально"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Развертывание активного окна"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Развертывание активного окна горизонтально"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Развертывание активного окна вертикально"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Свертывание активного окна"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Нормальное"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Число рабочих столов"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Число виртуальных рабочих столов"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Отключить"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Обновлять экран во время гашения обратного хода луча кадровой развертки"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Устройства вывода"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Обработка перекрывающегося вывода"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Отрисовывать каждое устройство вывода независимо, даже если устройства "
+"вывода перекрываются"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Задержка отклика"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Предпочтение большему выводу"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Предпочтение меньшему выводу"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Вызвать щелчком"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Вызвать окно"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Вызов выбранных окон по истечении интервала времени"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Вызов и размещение окна поверх других окон"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Вызов окон щелчком"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Частота обновления"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Коэффициент размера экрана для виртуального размера по горизонтали"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Коэффициент размера экрана для виртуального размера по вертикали"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Показать рабочий стол"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Замедлить анимацию"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Умный режим"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Синхронизировать с VBlank"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Компрессия текстур"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Фильтр текстур"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Фильтрация текстур"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Частота, с которой перерисовывается содержимое экрана (раз/сек)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Развертывать окно"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Развертывать окно по горизонтали"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Развертывать окно по вертикали"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Переключить свертывание окна в полоску"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Развертывание активного окна"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Развертывание активного окна по горизонтали"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Развертывание активного окна по вертикали"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Переключение свертывания активного окна в полоску"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Переключатель для использования медленной анимации"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Отмена полного развертывания активного окна"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Отменить перенаправление окон в полноэкранном режиме"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Использование рассеянного света при преобразовании экрана"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Виртуальный размер по вертикали"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Очень высокий"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Которое из перекрывающихся устройств вывода должно быть выбрано"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Сочетание кнопок меню окна"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Сочетание клавиш меню окна"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Ускорение"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Настройка изображения"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Настройка изображения на верхней грани куба"
+
+# this is a menu entry
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Переход к следующему слайду"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Анимировать фон"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Анимирование фона при вращении куба"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr "Внешний вид"
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Автоматический"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr "Поведение"
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Цвет верхней и нижней граней куба"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Цвет, используемый для нижней границы градиента фона"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Цвет, используемый для верхней границы градиента фона"
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr "Шапка куба"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Цвета куба"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Куб рабочего стола"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Ускорение свертывания"
+
+# combo box item
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Скорость свертывания"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Шаг времени свертывания"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+"По возможности применять множественное отображение для масштабирования "
+"качества изображения"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Возврат к предыдущему слайду"
+
+# summary information text - header
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Файлы изображений"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Изображение, используемое в качестве текстуры для фона"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Прозрачность куба только во время вращения мышью."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Внутренняя поверхность куба"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Внутренняя поверхность куба"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Список PNG- и SVG-файлов, которые следует отобразить на верхней грани куба"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Режим множественного вывода"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Несколько кубов"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Следующий слайд"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Один большой куб"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Прозрачность во время вращения"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Прозрачность в статичном положении"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Прозрачность рабочего стола во время вращения."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Прозрачность окон на рабочем столе в статичном положении."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Размещение окон на кубе"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Предыдущий слайд"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Отрисовка фона"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Масштабировать изображение"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Масштабировать изображения для покрытия верхней грани куба"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Выбор отображения куба при множественном выводе."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Фон"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Конечный цвет градиента для фона"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Начальный цвет градиента для фона"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Изображение для фона"
+
+# combo box item
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Скорость"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Шаг времени"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Прозрачность только при вращении мышью"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr "Прозрачность куба"
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Развертывание"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Развертывание куба"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Управление Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Разрешить генерацию мипмэпов для текстур оформления"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Команда"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Декорация окон"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Командная строка декоратора, которая выполняется, если декоратор еще не "
+"запущен"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Смещение отбрасываемой тени по оси X"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Смещение отбрасываемой тени по оси Y"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Цвет отбрасываемой тени"
+
+# int field
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Прозрачность отбрасываемой тени"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Радиус отбрасываемой тени"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Цвет тени"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Смещение тени по оси X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Смещение тени по оси Y"
+
+# int field
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Прозрачность тени"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Радиус тени"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Тень окон"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Оформление окна"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Оформление окна"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Окна к которым будет применено оформление"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Окна которые будут отбрасывать тень"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "Яркость (в %) неотвечающих окон"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "Постоянная скорость"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "Постоянное время"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Затемнение не отвечающего окна"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "Затемнение окна, которое не отвечает на запросы менеджера окон"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Скорость исчезновения"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Затенять при свертывании/открытии/закрытии"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Скорость затенения"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Время исчезновения"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Эффект затенения при свертывании/открытии/закрытии окон"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Эффект затенения при системном звуковом сигнале"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Постепенное проявление окон при отображении и постепенное исчезновение при "
+"отмене отображения"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Затенение окон"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Проявление/исчезание окон"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Полноэкранная визуализация звукового сигнала"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+"Полноэкранный эффект проявления/исчезания при системном звуковом сигнале"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Насыщенность (в %) не отвечающего окна"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Яркость не отвечающего окна"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Насыщенность не отвечающего окна"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Визуализация звукового сигнала"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Режим проявления/исчезновения окна"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Скорость исчезновения окна в режиме \"Постоянная скорость\""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "Время исчезновения окна в режиме \"Постоянная скорость\""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Окна, к которым следует применять эффект проявления/исчезания"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Точка монтирования"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Точка монтирования"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Файловая система в пользовательском пространстве (fuse)"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Файловая система в пользовательском пространстве (fuse)"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Управление GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Поддержка основного цикла GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Открыть в терминале"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Диалоговое окно запуска"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr "Запустить команду в терминале"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Командная строка снимка экрана"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Отобразить главное меню"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Отображение диалогового окна запуска приложения"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Отображение главного меню"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Сделать снимок экрана"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Сделать снимок окна"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Командная строка терминала"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Командная строка снимка окна"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Формат хранения в простом ini-файле"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Модуль извещения об изменении файла"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Управление Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Эффект свертывания"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Свернуть окна"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Скорость свертывания"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Квант времени свертывания"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Устойчивость тени"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Устойчивость тени"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Преобразовывать окна при свертывании и отмене свертывания"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Окна, которые должны быть преобразованы при свертывании"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Ограничить Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Ограничение координаты Y пределами рабочей области"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Не обновлять со стороны сервера положение окон до окончания перемещения"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Инициировать движение окна"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "\"Ленивое\" позиционирование"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Переместить окно"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Переместить окно"
+
+# int field
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Прозрачность"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Степень прозрачности движущихся окон"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Отмена привязки и автоматическая отмена развертывания полностью развернутых "
+"окон при перетаскивании"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Отменить привязку полностью развернутых окон"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Запуск перемещения окна"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Яркость"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Яркость"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Яркость"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Яркость"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "Яркость (в %) неотвечающих окон"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Уменьшить прозрачность"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Увеличить прозрачность"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Шаг изменения прозрачности"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Шаг изменения прозрачности"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Шаг прозрачности"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Степень прозрачности движущихся окон"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Прозрачность во время вращения"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+# Table header 4/5
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Насыщенность"
+
+# Table header 4/5
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Насыщенность"
+
+# Table header 4/5
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Насыщенность"
+
+# Table header 4/5
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Насыщенность"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Насыщенность (в %) не отвечающего окна"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Оформление окна"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Значение прозрачности окна"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Типы отражения окна"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Окна, которые должны быть спозиционированны по умолчанию"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Окна, прозрачные по умолчанию"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Окна, которые должны быть спозиционированны по умолчанию"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Алгоритм, используемый для размещения окна"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Каскадом"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "По центру"
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr "Фиксированное размещение окна"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Принудительное позиционирование окон"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Горизонтальные позиции видовых окон"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Держать в рабочей области"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr "Предотвратить перемещение окон запределы экрана"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Размещение окон"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "Размещать на всех устройствах вывода"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "При отображении разместите окна в нужных местах"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Режим размещения"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Спозиционированные окна"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Случайно"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Выбор как должно себя вести позиционирование окон, если используется "
+"несколько выводов"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Умный"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Использовать активное устройство вывода"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "Использовать устройство вывода сфокусированного окна"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Использовать устройство вывода с курсором"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Вертикальные позиции видовых окон"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Спозиционированные окна видового окна"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Обходные пути при размещении окна"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Окна, которые должны быть спозиционированны по умолчанию"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+"Окна, которые должны быть спозиционированны в определенном экране по "
+"умолчанию"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Окна, которые должны быть спозиционированы, даже если они указывают, что "
+"этого делать не нужно."
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr "Окно с фиксированной позицией"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr "Окно с фиксированным видовым окном"
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Обходные пути"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Положения по X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Положения видового окна по X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Значения положения по X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Положения по Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Положения видового окна по Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Значения положения по Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Загрузчик изображений Png"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Соответствие регулярными выражениями"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Соответствие окон с помощью регулярных выражений"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr "Закрепление"
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Цвет границы"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Цвет границы, используемый для обрисовки контура и режимов изменения "
+"размеров прямоугольника"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Режим изменения размера по умолчанию"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Режим по умолчанию, используемый для изменения размера окна"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Цвет заливки"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+"Цвет заливки, используемый для режима изменения размеров прямоугольника"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Инициировать обычное изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Инициировать изменение размеров окна Граница"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Инициировать изменение размеров окна Прямоугольник"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Инициировать изменение размеров окна Растяжение"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Инициировать изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Нормальное изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Граница"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Граница изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Прямоугольник"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Прямоугольник изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Запуск изменения размеров окна"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Запуск изменения размеров окна его растяжением"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Запуск обычного изменения размеров окна"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Запуск изменения размеров окна с показом границы"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Запуск изменения размеров окна с показом прямоугольника"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Растянуть"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Растяжение изменение размеров окна"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+"Типы окон, которым следует применять эффект нормального изменения размера"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Типы окон, которым следует применять эффект изменения размера граница"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+"Типы окон, которым следует применять эффект изменения размера прямоугольник"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+"Типы окон, которым следует применять эффект изменения размера растяжение"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Отражение при перетаскивании к краю"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Отражение при перемещении к краю"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Отражение при курсоре на краю"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Время отражения"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Отражение в левое кадровое окно и искажение курсора"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+"Отражение на следующее кадровое окно при перетаскивании объекта к краю экрана"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+"Отражение на следующее кадровое окно при смещении курсора к краю экрана"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+"Отражение на следующее кадровое окно при перемещении окна к краю экрана"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Отражение в правое кадровое окно и искажение курсора"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Инвертировать ось Y для перемещений курсора"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Инвертировать для курсора ось Y"
+
+# dialog caption
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Чувствительность курсора"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Поднимать при вращении"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Поднимать окна при вращении"
+
+# Translators: text entry label
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Вращение куб"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Вращать с отражением влево"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Вращать с отражением вправо"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Вращать влево"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Вращать влево вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Вращать вправо"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Вращать вправо вместе с окном"
+
+# Translators: text entry label
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Вращать до"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Вращать до грани 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Вращать до грани 1 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Вращать до грани 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Вращать до грани 10 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Вращать до грани 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Вращать до грани 11 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Вращать до грани 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Вращать до грани 12 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Вращать до грани 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Вращать до грани 2 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Вращать до грани 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Вращать до грани 3 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Вращать до грани 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Вращать до грани 4 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Вращать до грани 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Вращать до грани 5 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Вращать до грани 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Вращать до грани 6 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Вращать до грани 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Вращать до грани 7 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Вращать до грани 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Вращать до грани 8 вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Вращать до грани 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Вращать до грани 9 вместе с окном"
+
+# Translators: text entry label
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr "Вращение куба"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Вращение куба рабочего стола"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Вращение влево"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Вращение влево вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Вращение вправо"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Вращение вправо вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr "Вращение к лицу куба"
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr "Вращать к лицу куба вместе с окном"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Вращение до грани 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Вращение до грани 1 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Вращение до грани 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Вращение до грани 10 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Вращение до грани 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Вращение до грани 11 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Вращение до грани 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Вращение до грани 12 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Вращение до грани 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Вращение до грани 2 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Вращение до грани 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Вращение до грани 3 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Вращение до грани 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Вращение до грани 4 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Вращение до грани 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Вращение до грани 5 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Вращение до грани 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Вращение до грани 6 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Вращение до грани 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Вращение до грани 7 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Вращение до грани 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Вращение до грани 8 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Вращение до грани 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Вращение до грани 9 вместе с активным окном"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Вращение до кадрового окна"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Вращать окно"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Вращение вместе с окном"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Ускорение вращения"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Скорость вращения"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Квант времени вращения"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Масштабирование вращения"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Чувствительность к перемещениям курсора"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Привязка вращения куба к нижней грани"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Привязка вращения куба к верхней грани"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Привязать к нижней грани"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Привязать к верхней грани"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Запуск вращения"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Задержка во времени до отражения кадрового окна"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Изменить масштаб"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Степень прозрачности в процентах"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Большой"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Режим горячих клавиш с залипанием"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Использовать режим горячих клавиш с залипанием вместо включения при нажатии "
+"и отключения при отпускании кнопок."
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Щелкнуть на рабочем столе для отображения рабочего стола"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Затемнить фон"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Затемнение фона при масштабировании окон"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Эмблема"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Переход в режим отображения рабочего стола при щелчке мышью на рабочем столе "
+"во время масштабирования"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Время задержки при наведении"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Инициировать средство выбора окна"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Инициировать средство выбора окна для всех окон"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Инициировать средство выбора окна для группы окон"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Инициировать средство выбора окна для окон текущего устройства вывода"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "Режим назначения клавиш с залипанием"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+"Использовать режим горячих клавиш с залипанием вместо включения при нажатии "
+"и отключения при отпускании кнопок."
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Компоновка и запуск преобразования всех окон"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Компоновка и запуск преобразования группы окон"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Компоновка и запуск преобразования окон"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Компоновка и запуск преобразования окон текущего устройства вывода"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "На все устройства вывода"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "На текущее устройство вывода"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Наложить значок"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Наложение значка на окна при их масштабировании"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Масштабировать"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Масштабирование окон"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Скорость масштабирования"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Квант времени масштабирования"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Масштабирование окон"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+"Выбрать, где масштабировать окна если используются устройства множественного "
+"вывода."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Расстояние между окнами"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Интервал"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Время (в мс) до завершения режима масштабирования при наведении указателя на "
+"окно"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Типы окон, для которых следует применять режим масштабирования"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Автоматически снимок экрана в этой программе"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Каталог"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Сделать снимок области"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Запустить приложение"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Помещать изображения снимков экрана в этот каталог"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Снимок экрана"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Модуль снимка экрана"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Загрузчик изображений Svg"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Уровень яркости в процентах"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Уровень насыщенности в процентах"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Переключатель приложений"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Автоматически переворачивать"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Переместить на передний план"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Перемещение выбранного окна на передний план"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"При переключении окон рабочий стол на заднем плане должен быть уменьшен"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Значок"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Свернутые"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Следующая панель"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Следующее окно"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Следующее окно (Все окна)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Следующее окно (Не активируя)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Отображение переключателя (если он невидим) и выбор следующего окна"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Отображение переключателя (если он невидим) и выбор следующего окна из всех "
+"имеющихся"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Отображение переключателя (если он невидим) и выбор предыдущего окна"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Отображение переключателя (если он невидим) и выбор предыдущего окна из всех "
+"имеющихся"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Предыдущая панель"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Предыдущее окно"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Предыдущее окно (Все окна)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Предыдущее окно (Не активируя)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Вращать к выбранному окну при переключении"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Выбрать следующее окно типа панель."
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Выбрать следующее окно без показа всплывающего окна."
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Выбрать предыдущее окно типа панель."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Выбрать предыдущее окно без показа всплывающего окна."
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Отображение значка рядом с эскизом"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Отображение свернутых окон"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Скорость переключателя"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Квант времени переключателя"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Переключатель окон"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Окна, которые должны быть отображены в переключателе"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Обеспечить поддержку цветового пространства YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Воспроизведение видео"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Воспроизведение видео"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Цветовое пространство YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Добавить линию"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Добавить точку"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Добавление эффектов воды к различным действиям рабочего стола"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Задержка (в мс) между каплями дождя"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Включить для курсора эффекты воды"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Линия"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Масштаб смещения"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Точка"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Задержка дождя"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Волны заголовка"
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Переключить дождь"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Включение или отключение эффекта дождя"
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Переключить стеклоочиститель"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Включение или отключение эффекта стеклоочистителя"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Эффект воды"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Масштаб смещения воды"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Эффект волн в заголовке окна"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Эффект фокусировки"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Эффект фокусировки окна"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Типы окон с фокусом"
+
+# Table header 5/5
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Трение"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Типы окон при захвате"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Разрешение решетки"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Инвертированная привязка окна"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Включить дрожание окна"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Эффект отражения"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Эффект отражения окна"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Типы отражения окна"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Эффект развертывания"
+
+# combo box item
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Минимальный размер решетки"
+
+# combo box item
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Минимальный размер решетки на вершинах"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Переместить окна"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Дрожание"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Инвертированная привязка"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Привязка окон"
+
+# Table header 5/5
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Упругое трение"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "K упругости"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Константа упругости"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Переключение привязки окон"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Использовать модель пружины в эффекте вязкого окна"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Разрешение решетки на вершинах"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Окна, становящиеся вязкими при фокусе"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Окна, становящиеся вязкими при захвате"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Окна, становящиеся вязкими при назначении"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Окна, становящиеся вязкими при перемещении"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Эффект вязкости при развертывании и свертывании окон"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Вязкие окна"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Линейная фильтрация"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Использовать линейную фильтрацию при приближении"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Изменить масштаб рабочего стола"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Уменьшить"
+
+# combo box item
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Увеличить"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Панорамирование"
+
+# combo box item
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Скорость изменения масштаба"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Квант времени изменения масштаба"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Изменение масштаба и сдвига куба рабочего стола"
+
+# combo box item
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Коэффициент масштабирования"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Панорамирование масштабирования"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Командная строка 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Выполнить команду 1"
+
+#~ msgid "Screenshot commands"
+#~ msgstr "Команды снимка экрана"
+
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Горячие клавиши снимка экрана"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Уменьшить прозрачность окна"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Увеличение прозрачности окна"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Значение прозрачности, для окон которые должны быть прозрачными по "
+#~ "умолчанию"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Прозрачность окон"
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..cbfdd30
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,3306 @@
+# Slovak translation of compiz
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the compiz package.
+# Ivan Masár <helix84@centrum.sk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-05-17 10:28+0200\n"
+"Last-Translator: Brusnica P <pepino@pobox.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Pracovná plocha"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Správa okien"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Žiadna"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Tieň"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximalizovať"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximalizovať okno vodorovne"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximalizovať okno zvisle"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimalizované"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automaticky do popredia"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Nízke"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Menu Okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Akcia, ktorá sa vykoná pri otáčaní kolieskom myši nad titulkom okna."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Typ rozostrenia"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Priehľadnosť aktívneho okna témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Tieň aktívneho okna témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Priehľadnosť témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Tieň témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Priehľadnosť pre aktívne okná s dekoráciami témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Priehľadnosť s dekoráciami témy metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Vytieňovať aktívne okná s dekoráciou témy metacity z nepriehľadnej do "
+"priehľadnej."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Vytieňovať okná s dekoráciou témy metacity z nepriehľadnej do priehľadnej."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Akcia pri rolovaní nad titulkom okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Typ rozostrenia použitej na dekoráciu okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Použiť tému metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Použiť tému metacity pri vykresľovaní dekorácií okna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Zatvoriť okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Zrušiť maximalizáciu okna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximalizovať okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimalizovať Okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Vykonať vyššie uvedené"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Prilepiť"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Netieňovať"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Odvolať vyššie uvedené"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Odlepiť"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Okno „%s“ neodpovedá."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "Vynútené ukončenie tejto aplikácie spôsobí stratu neuložených zmien."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Vynútiť ukončenie"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Poznámka"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Farba výplne poznámky"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Štýl ťahu poznám"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Zásuvný modul poznámok"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Vyčistiť"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Kresliť"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Vykresliť použitím nástroja"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Farba výplne poznámok"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Začať"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Začať kreslenie poznámky"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Začať mazanie poznámky"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Začať mazanie"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Šírka čiary"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Šírka riadka pre komentáre"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Štýl ťahu poznámok"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Šírka ťahu"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Šírka ťahu poznámok"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "Filter:"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Rozmaznie alfa"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alfa rozostrenie okien"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filter rozostrenia"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Oklúzia rozostrenia"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Sýtosť rozostrenia"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Rýchlosť rozostrenia"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Rozostrovať okná"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Rozmazanie za priehľadnými časťami okien"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Sýtosť rozostrenia"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Rozostrovať okná"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Rozostrovať okná, ktoré nie sú aktívne"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Zakázať rozmazanie častí obrazovky, ktoré sú zakryté inými oknami."
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Metóda filtra použitá pre rozmazanie"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Rozmazať aktívne"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Rozmazať aktívne okná"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussovské rozostrenie"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Polomer gaussovského rozostrenia"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Sila gaussovského rozostrenia"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Polomer gaussovského rozostrenia"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Sila gausovského rozostrenia"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Nezávislé stiahnutia textúr"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmapy"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Úroveň detailu mipmáp"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Úroveň podrobností mipmáp"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulz"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efekt pulzu"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Použiť dostupné jednotky textúr na vykonanie čo najväčšieho počtu "
+"nezávislých stiahnutí textúr"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Rýchlosť rozmazania okna"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Okná, ktoré majú byť ovplyvnené rozmazaním"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Okná, ktoré by mali štandardne použiť alfa rozmazanie"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Klonovať výstup"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Začať klonovať výber"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Obsluha klonovania výstupu"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "Klávesové skratky, ktoré spustia príkaz identifikovaný ako command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Príkazový riadok 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Príkazový riadok 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Príkazový riadok 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Príkazový riadok 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Príkazový riadok 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Príkazový riadok 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Príkazový riadok 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Príkazový riadok 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Príkazový riadok 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Príkazový riadok 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Príkazový riadok 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Príkazový riadok 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command0"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command1"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command10"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command11"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command2"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command3"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command4"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command5"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command6"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command7"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command8"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Príkaz, ktorý sa vykoná, ak sa v shelli volá run_command9"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Príkaz"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Spustiť príkaz 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Spustiť príkaz 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Spustiť príkaz 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Spustiť príkaz 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Spustiť príkaz 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Spustiť príkaz 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Spustiť príkaz 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Spustiť príkaz 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Spustiť príkaz 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Spustiť príkaz 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Spustiť príkaz 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Spustiť príkaz 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktívne zásuvné moduly"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Povoliť vykresľovanie celoobrazovkových okien bez presmerovania do "
+"mimoobrazovkových pixmapov"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Akustický zvonček"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Akustické systémové pípnutie"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automaticky do popredia"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Oneskorenie automatického presunu do popredia"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatická detekcia výstupných zariadení"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatická detekcia obnovovacej frekvencie"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Najlepšie"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Zamerať kliknutím"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Kliknutím na okno presunúť zameranie na okno"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Zatvoriť aktívne okno"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Východzia ikona"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Východzí obrázok ikony okna"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Kocka plochy"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detekovať výstupy"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Deteguj Obnovovaciu Frekvenciu"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+"Interval, počas ktorého musí ukazovateľ zostať na okraji obrazovky, než sa "
+"vykoná operácia."
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Oneskorenie operácie na okraji"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Rýchlo"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Predchádzať ukradnutiu aktivity"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Predchádzať zameraniu okien"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Predchádzať zameraniu okien"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Vynútenie vykreslenia nezávislého výstupu"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Všeobecné nastavenia"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Všeobecné nastavenia Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "V poriadku"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Skryť okná neprítomné v lište úloh"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Skryť všetky okná a zobraziť pracovnú plochu"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Skryť okná neprítomné v lište úloh pri vstupe do režimu zobrazenia pracovnej "
+"plochy"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Vysoké"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Vodorovná virtuálna veľkosť"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "Ak sa dá, použiť kompresiu textúr, ktoré boli konvertované z obrázkov."
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Pri maximalizovaní ignorovať tipy"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Pri maximalizovaní okna ignorovať veľkosť nárastu a vzhľad tipov"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Interval pred presunutím vybraných okien do popredia"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Interval medzi odosielaním pingu"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Úroveň prevencie pred ukradnutím aktivity okna"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Osvetlenie"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Zoznam práve aktívnych modulov"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Zoznam reťazcov popisujúcich výstupné zariadenia"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Nízke"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Presunúť okno do pozadia"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Presunúť okno do pozadia"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximalizovať okno vodorovne"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximalizovať okno zvisle"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximalizovať aktívne okno"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximalizovať aktívne okno vodorovne"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximalizovať aktívne okno zvisle"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimalizovať aktívne okno"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normálny"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Počet Pracovných plôch"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Počet virtuálnych pracovných plôch"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Vypnuté"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+"Vykonávať aktualizácie obrazovky počas intervalu vertikálneho zatemnenia"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Výstupy"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Obsluha prekrývajúceho sa výstupu"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Vykresli každý výstup zariadenia nezávisle aj keď sa výstupy zariadení "
+"prekrývajú"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Oneskorenie pingu"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Uprednostniť väčší výstup"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Uprednostniť menší výstup"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Kliknutím dať do popredia"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Presunúť okno do popredia"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Prepnúť vybrané okná do popredia po uplynutí intervalu"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Presunúť okno dopredu nad ostatné okná"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Presunúť okno do popredia po kliknutí"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Obnovovacia frekvencia"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Násobiteľ vodorovnej virtuálnej veľkosti obrazovky"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Násobiteľ zvislej virtuálnej veľkosti obrazovky"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Zobraziť Plochu"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Pomalé animácie"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Inteligentný režim"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synchronizovať pri VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Kompersia textúr"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Filter textúr"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Filtrovanie textúr"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Frekvencia prekresľovania obrazovky v Hz"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Prepnúť maximalizáciu okna"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Prepnúť vodorovnú maximalizáciu okna"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Prepnúť zvislú maximalizáciu okna"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Prepnúť tieňovanie okna"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Prepnúť maximalizáciu aktívneho okna"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Prepnúť horizontálnu maximalizáciu aktívneho okna"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Prepnúť vertikálnu maximalizáciu aktívneho okna"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Prepnúť tieňovanie aktívneho okna"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Prepnúť použitie pomalých animácií"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Zrušiť maximalizáciu aktívneho okna"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Nepresmerovať okná v celoobrazovkovom režime"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Použiť rozptýlené svetlo pri transformácii obrazovky"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Vertikálna Virtuálna Veľkosť"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Veľmi vysoké"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Ktoré z prekrývajúcich sa výstupných zariadení sa má uprednostniť"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Klávesová skratka tlačidla hlavnej ponuky okna"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Klávesová skratka hlavnej ponuky okna"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Akcelerácia"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Prispôsobiť obrázok"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Prispôsobiť vrchný obrázok otáčaniu"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Prejsť na nasledujúcu snímku"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animovať Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animovať skydome pri rotácii kocky"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatický"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Farba vrchnej a spodnej strany kocky"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Farba, ktorá sa použije na dolnú časť gradientu skydome"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Farba, ktorá sa použije na hornú časť gradientu skydome"
+
+# KM
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Farba kocky"
+
+# KM
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Farba kocky"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Kocka plochy"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Zrýchlenie zloženia"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Rýchlosť zloženia"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Časový skok zloženia"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Ak je to možné, vytvárať pre vysoko kvalitné modelovanie mipmapy"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Choď späť na predchádzajúci snímok"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Obrázkové súbory"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Obrázok, ktorý sa použije ako textúra pre skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+"Aktivuje priehľadnosť kocky iba v prípade, ak je rotácia vykonaná pomocou "
+"myši."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Vnútri kocky"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Vnútri kocky"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "Zoznam PNG a SVG súborov, ktoré môžu byť vykreslené na vrchu kocky"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Viacnásobný výstupný režim"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Viacnásobné kocky"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Ďalšia snímka"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Jedna veľká kocka"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Nepriehľadnosť počas otáčania"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Nepriehľadnosť v prípade neotáčania"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Nepriehľadnosť plochy okna počas otáčania."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Nepriehľadnosť plochy okna počas neotáčania."
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Umiestniť okná na kocke"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Predchádzajúca snímka"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Vykresliť Skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Zmeniť veľkosť obrázka"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Zmeniť mierku obrázka aby pokrýval vrch kocky"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+"Zvoliť zobrazenie kocky v prípade, že budú použité viacnásobné výstupné "
+"zariadenia."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Konečná farba gradientu Skydome"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Počiatočná farba gradientu Skydome"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Obrázok Skydome"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Rýchlosť"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Krok"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Priehľadnosť iba v prípade otáčania použitím myši"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Roztvoriť"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Roztvoriť kocku"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Backend pre riadenie Dbus"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Umožniť tvorbu mipmáp pre dekoračné textúry"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Príkaz"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekorované okná"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Príkazový riadok programu pre dekorácie, ktorý sa vykoná, pokiaľ nebude "
+"spustený žiadny program pre dekorácie"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Posun X vrhaného tieňa"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Posun Y vrhaného tieňa"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Farba vrhaného tieňa"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Nepriehľadnosť vrhaného tieňa"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Polomer vrhaného tieňa"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Farba tieňa"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Posun tieňa X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Posun tieňa Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Krytie tieňa"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Polomer tieňa"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Tieňované okná"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Dekorácie okna"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Dekorácie okna"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Okná, ktoré by mali byť dekorované"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Okná, ktoré by mali mať tieň"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rýchlosť otáčania"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Obmedzenie Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Normálna veľkosť okien"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Doba stmavnutia"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Stmievať pri minimalizovaní/otvorení/zatvorení"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Rýchlosť stmievania"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Doba stmavnutia"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Efekt stmievania pri minimalizovaní/otvorení/zatvorení okna"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Efekt stmievania pri systémovom pípnutí"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Rozsvecovanie okien pri mapovaní a stmievania pri odmapovaní"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Stmievanie okien"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Stmievanie okien"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Celoobrazovkový vizuálny zvonček"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Celoobrazovkový efekt blednutia pri systémovom pípnutí"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Vizuálny zvonček"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Rýchlosť stmievania okna"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Okná, ktoré majú meniť veľkosť v režime zmeny mierky"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Okná, ktoré by mali blednúť"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Bod pripojenia"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Bod pripojenia"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Používateľský súborový systém"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Používateľský súborový systém"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "Backend pre riadenie GConf"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "Podpora hlavného napojenia na GLib"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Otvoriť terminál"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Spustiť Dialóg"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Príkaz pre terminál"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Príkaz pre snímanie obrazovky"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Zobraziť Hlavnú ponuku"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Zobraziť dialóg spustenia aplikácie"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Zobraziť hlavné menu"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Zosnímať obrazovku"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Zosnímať okno"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Príkaz pre terminál"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Príkazový na zosnímania okna"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Pozadie ini súboru"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Modul upozornenia zmeny súboru"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Backend pre riadenie Kconfig"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Efekt pri minimalizovaní"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimalizovať okná"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimalizovať rýchlosť"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Minimalizovať časový krok"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Stálosť tieňa"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Stálosť tieňa"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformovať okná pri ich minimalizovaní a spätnom obnovení"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Okná, ktoré by mali byť transformované pri minimalizovaní"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Obmedzenie Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Obmedziť súradnicu Y na priestor pracovnej plochy"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "Aktualizovať pozíciu okna až po dokončení presunu"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Zahájiť presun okna"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Lenivé presúvanie"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Presunúť okno"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Presunúť okno"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Nepriehľadnosť"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Úroveň nepriehľadnosti presúvaných okien"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Odtrhávať a automaticky obnoviť maximalizované okná počas ťahania"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Odtrhávať maximalizované okná"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Začať pohyb okna"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Jas"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Znížiť nepriehľadnosť"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Zvýšiť nepriehľadnosť"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Krok zmeny nepriehľadnosti"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Krok zmeny nepriehľadnosti"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Krok nepriehľadnosti"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Úroveň nepriehľadnosti presúvaných okien"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Nepriehľadnosť počas otáčania"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Sýtosť"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Sýtosť"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Sýtosť"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Sýtosť"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Dekorácie okna"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Hodnoty nepriehľadnosti okna"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Mapované okná"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Okná, ktoré by mali byť štandardne umiestnené"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Okná, ktoré by mali byť implicitne priehľadné"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Okná, ktoré by mali byť štandardne umiestnené"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritmus použitý pre rozmiestnenie okna"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskáda"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Vystrednené"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Správa okien"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Vynútené umiestnenie okien"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Vodorovné pozície pohľadov"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Rozmiestniť okná"
+
+#: ../metadata/place.xml.in.h:12
+#, fuzzy
+msgid "Place across all outputs"
+msgstr "Uprednostniť menší výstup"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Umiestniť mapované okná na zodpovedajúce pozície"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Spôsob rozmiestnenia"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Umiestnené okná"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Náhodné"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+"Označuje ako by sa malo správať umiestňovanie okien ak je označených viacero "
+"výstupov"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Inteligentné"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "Použiť aktívne výstupné zariadenie"
+
+#: ../metadata/place.xml.in.h:20
+#, fuzzy
+msgid "Use output device of focussed window"
+msgstr "Použiť výstupné zariadenie s ukazovateľom"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Použiť výstupné zariadenie s ukazovateľom"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Zvislé pozície pohľadov"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Okná umiestnené v pohľadoch"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Núdzové riešenia umiestnenia okna"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Okná, ktoré by mali byť štandardne umiestnené"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Okná, ktoré by mali byť štandardne umiestnené na konkrétnu plochu"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+"Okná ktoré by mali byť nútene umiestnené aj keď by sa okenný manažér mal "
+"vyhnúť takémuto umiestneniu."
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Dekorácie okna"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Núdzové riešenia"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "Pozície X"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "Pozície plochy na osi X"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "Hodnoty pozíce na osi X"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Pozície Y"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Pozície plochy na osi Y"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Hodnoty pozíce na osi Y"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "PNG"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr " Načítanie PNG obrázkov"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Vyhodnocovanie regulárnych výrazov"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Zodpovedajúce regulárne výrazy okna"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Farba ohraničenia"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Farba okraja, ktorý sa použije pri režimoch obrysov a zmeny veľkosti "
+"obdĺžnikom"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Štandardný režim zmeny veľkosti"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Štandardný režim použitý pre zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Farba výplne"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Farba výplne použitá pre pravouhlú zmenu veľkosti"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Začať normálnu zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Začať obrysovú zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Začať zmenu veľkosti pravouhlého okna"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Začať zmenu veľkosti okna roztiahnutím"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Začať zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Normálna veľkosť okien"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Obrys"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Obrysová zmena veľkosti okien"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Obdĺžnik"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Pravouhlá zmena veľkosti okien"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Zmeniť veľkosť okna"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Zmeniť veľkosť okna"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Začať zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Začať zmenu veľkosti okna roztiahnutím"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Začať normálnu zmenu veľkosti okna"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Začať zmenu veľkosti okna s obrysom"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Začať zmenu veľkosti okna obdĺžnikom"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Roztiahnutie"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Zmena veľkosti okien roztiahnutím"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Okná, pre ktoré bude použitá normálna zmena veľkosti"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Okná, pre ktoré bude použitá zmena veľkosti s efektom obrysu"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Okná, pre ktoré bude použitá zmena veľkosti s efektom obdĺžnika"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Okná, pre ktoré bude použitá zmena veľkosti s efektom roztiahnutia"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD pri prepínaní na hrane"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Pohyb pri prepínaní na hrane"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Ukazovateľ pri prepínaní na hrane"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Doba preklopenia"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "Prepnúť na pohľad vľavo a preniesť ukazovateľ"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Prepnúť na ďalší pohľad pri ťahaní okna na okraj obrazovky"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "Prepnúť na ďalší pohľad pri presunutí ukazovateľa na okraj obrazovky"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Prepnúť na ďalší pohľad pri presunutí okna na okraj obrazovky"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "Prepnúť na pohľad vpravo a preniesť ukazovateľ"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Prevrátiť os Y pre pohyb ukazateľa"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Invertovať os Y ukazovateľa"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Citlivosť ukazateľa"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Aktivácia pri otáčaní"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Pri otáčaní prenášať okná do popredia"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Otáčať kockou"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Otočiť preklopením vľavo"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Otočiť preklopením vpravo"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Otočiť vľavo"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Otočiť vľavo s oknom"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Otočiť vpravo"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Otočiť vpravo s oknom"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Otočiť na"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Otočiť na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Otočiť na stranu 1 s oknom"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Otočiť na stranu 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Otočiť na stranu 10 s oknom"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Otočiť na stranu 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Otočiť na stranu 11 s oknom"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Otočiť na stranu 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Otočiť na stranu 12 s oknom"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Otočiť na stranu 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Otočiť na stranu 2 s oknom"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Otočiť na stranu 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Otočiť na stranu 3 s oknom"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Otočiť na stranu 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Otočiť na stranu 4 s oknom"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Otočiť na stranu 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Otočiť na stranu 5 s oknom"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Otočiť na stranu 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Otočiť na stranu 6 s oknom"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Otočiť na stranu 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Otočiť na stranu 7 s oknom"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Otočiť na stranu 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Otočiť na stranu 8 s oknom"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Otočiť na stranu 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Otočiť na stranu 9 s oknom"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Otáčať kockou"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Otočiť kocku pracovnej plochy"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Otočiť vľavo"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Otočiť vľavo a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Otočiť vpravo"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Otočiť vpravo a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Otočiť na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Otočiť na stranu 1 s oknom"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Otočiť na stranu 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Otočiť na stranu 1 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Otočiť na stranu 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Otočiť na stranu 10 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Otočiť na stranu 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Otočiť na stranu 11 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Otočiť na stranu 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Otočiť na stranu 12 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Otočiť na stranu 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Otočiť na stranu 2 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Otočiť na stranu 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Otočiť na stranu 3 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Otočiť na stranu 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Otočiť na stranu 4 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Otočiť na stranu 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Otočiť na stranu 5 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Otočiť na stranu 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Otočiť na stranu 6 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Otočiť na stranu 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Otočiť na stranu 7 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Otočiť na stranu 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Otočiť na stranu 8 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Otočiť na stranu 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Otočiť na stranu 9 a vziať aktívne okno so sebou"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Otočiť na zorné pole"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Otočiť okno"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Otočiť s oknom"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Akcelerácia pri otáčaní"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rýchlosť otáčania"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Časový krok otáčania"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Rýchlosť otáčania"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Citlivosť pohybu ukazateľa"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Prichytiť otáčajúcu sa kocku za dolnú stranu"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Prichytiť otáčajúcu sa kocku za hornú stranu"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Prichytiť k dolnej strane"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Prichytiť k hornej strane"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Začať otáčanie"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Časový limit pred preklopením zorného poľa"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Priblíženie"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Miera nepriehľadnosti v percentách"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Veľký"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Zobraziť pracovnú plochu kliknutím na plochu"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Stmaviť pozadie"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Stmaviť pozadie pri vykreslovaní okien"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblém"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Vstúpiť do režimu Zobraziť plochu, keď sa na plochu klikne počas zmeny mierky"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Čas vznášania"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Začať výber okna"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Začať výber okna pre všetky okná"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Začať výber okna pre skupinu okien"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Spustiť vyberanie okien na štandardnom výstupe"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Rozložiť a začať transformáciu všetkých okien"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Rozložiť a začať transformáciu skupiny okien"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Rozmiestnenie a začiatok transformácie okien"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Rozmiestnenie a začiatok transformácie okien na aktuálnom výstupe"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Na všetkých výstupných zariadeniach"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Na aktuálnom výstupnom zariadení"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Prekladať ikonou"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Pri zmene veľkosti okien prekladať okná ikonou"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Zmena mierky"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Zmena mierky okna"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Rýchlosť zmeny mierky"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Časový krok zmeny mierky"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Meniť mierku okien"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "Či sa mení veľkosť okien pri použití viacerých výstupných zariadení."
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Medzera medzi oknami"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Vzdialenosť"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "Čas (v ms) pred ukončením režimu zmeny mierky pri kurzore nad oknom"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Okná, ktoré majú meniť veľkosť v režime zmeny mierky"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Automaticky otvoriť snímku v tejto aplikácii"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Priečinok"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Zosnímať obrazovku"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Spustiť aplikáciu"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Vložiť snímky obrazovky do tohto priečinka"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Snímka obrazovky"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Modul snímky obrazovky"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "SVG"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Načítanie SVG obrázkov"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Hodnota jasu v percentách"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Hodnota sýtosti v percentách"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Prepínač aplikácií"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automatické otáčanie"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Preniesť do popredia"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Preniesť vybrané okno do popredia"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+"Vzdialenosť, na ktorú by sa mala plocha oddialiť počas prepínania okien"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikona"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimalizované"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Nasledujúca výplň"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Nasledujúce okno"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Nasledujúce okno (všetky okná)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Nasledujúce okno (žiadne vyskakovacie okno)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "Zobraziť prepínač ak nie je viditeľný a vybrať ďalšie okno"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Zobraziť prepínač ak nie je viditeľný a vybrať ďalšie okno spomedzi všetkých "
+"okien"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "Zobraziť prepínač ak nie je viditeľný a vybrať predchádzajúce okno"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Zobraziť prepínač ak nie je viditeľný a vybrať predchádzajúce okno zo "
+"všetkých okien"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Predchádzajúca výplň"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Predchádzajúce okno"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Predchádzajúce okno (všetky okná)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Predchádzajúce okno (žiadne vyskakovacie okno)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Otočiť na vybrané okno pri prepínaní"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "Označ nasledujúci typ výplne okna"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Vybrať ďalšie okno bez ukázania vyskakovacieho okna"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "Vybrať predchádzajúci typ výplne okna"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Vybrať predchádzajúce okno bez ukázania vyskakovacieho okna"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Ukázať ikonu vedľa náhľadu"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Zobraziť minimalizované okná"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Rýchlosť prepínača"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Časový krok prepínača"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Okná prepínača"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Okná, ktoré budú zobrazené v prepínači"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Poskytnúť podporu farebného priestoru YV12"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Prehrávanie videa"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Prehrávanie videa"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "Farebný priestor YV12"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Pridať čiaru"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Pridať bod"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Do rôznych akcií plochy pridávať efekt vody"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Oneskorenie (v ms) medzi jednotlivými kvapkami"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Povoliť vodné efekty ukazateľa"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Čiara"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Mierka posunutia"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Bod"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Oneskorenie dažďa"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Vlna v nadpise"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Prepnúť dážď"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Prepnúť efekt dažďa"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Prepnúť stierač"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Prepnúť efekt stierača"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Efekt vody"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Mierka posunutia vody"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Efekt vlny v nadpise okna"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Efekt zamerania"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Efekt pri zameraní okna"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Zamerať okná"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Trenie"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Uchopiť okná"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Rozlíšenie mriežky"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Obrátené prichytávanie okien"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Rozochvieť okno"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Efekt mapovania"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Efekt mapovania okna"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Mapované okná"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Efekt maximalizácie"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Minimálna veľkosť mriežky"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimálna veľkosť vrcholu mriežky"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Presunúť okná"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Chvenie"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Obrátené prichytávanie"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Prichytiť okná"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Trenie pružiny"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Pružina K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Konštanta pružiny"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Prepnúť prichytávanie okien"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Použiť na efekt chvenia pružinový model"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Rozlíšenie vrcholu mriežky"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Okná, ktoré by sa mali chvieť, keď sú aktivované"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Okná, ktoré by sa mali chvieť, keď sú zachytené"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Okná, ktoré by sa mali chvieť, keď sú mapované"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Okná, ktoré sa budú triasť pri presune"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Efekt trasúcich sa okien pri maximalizácii a späť"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Trasúce sa okná"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Lineárny filter"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Pri priblížení použiť lineárny filter"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Priblížiť plochu"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Priblížiť"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Oddialiť"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Posúvanie priblíženia"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Rýchlosť priblíženia"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Časový krok priblíženia"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Priblížiť a posúvať kocku plochy"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Pomer zväčšenia"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Posúvanie priblíženia"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Príkazový riadok 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Spustiť príkaz 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Príkaz pre snímanie obrazovky"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Príkaz pre snímanie obrazovky"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Znížiť nepriehľadnosť okna"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Zvýšiť nepriehľadnosť okna"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Hodnoty nepriehľadnosti pre okná, ktoré by mali byť implicitne priehľadné"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Priehľadné okná"
+
+#~ msgid "Background Images"
+#~ msgstr "Obrázky pozadia"
+
+#~ msgid "Background images"
+#~ msgstr "Obrázky pozadia"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Umiestniť okná na rovinu"
+
+#~ msgid "Plane Down"
+#~ msgstr "Rovina dole"
+
+#~ msgid "Plane Left"
+#~ msgstr "Rovina vľavo"
+
+#~ msgid "Plane Right"
+#~ msgstr "Rovina vpravo"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Rovina na stranu 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Rovina na stranu 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Rovina na stranu 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Rovina na stranu 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Rovina na stranu 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Rovina na stranu 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Rovina na stranu 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Rovina na stranu 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Rovina na stranu 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Rovina na stranu 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Rovina na stranu 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Rovina na stranu 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Rovina hore"
+
+#~ msgid "Plane down"
+#~ msgstr "Rovina dole"
+
+#~ msgid "Plane left"
+#~ msgstr "Rovina vľavo"
+
+#~ msgid "Plane right"
+#~ msgstr "Rovina vpravo"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Rovina na stranu 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Rovina na stranu 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Rovina na stranu 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Rovina na stranu 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Rovina na stranu 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Rovina na stranu 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Rovina na stranu 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Rovina na stranu 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Rovina na stranu 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Rovina na stranu 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Rovina na stranu 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Rovina na stranu 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Rovina hore"
+
+#~ msgid "Cursor size"
+#~ msgstr "Veľkosť kurzora"
+
+#~ msgid "Cursor theme"
+#~ msgstr "Téma kurzora"
+
+#~ msgid "Cursor theme name"
+#~ msgstr "Názov témy kurzora"
+
+#~ msgid "Size of the cursor"
+#~ msgstr "Veľkosť kurzora"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Čas pozvolného miznutia nepriehľadnosťi okna."
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..8d516a3
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,3790 @@
+# Slovenian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 2001 SuSE GmbH.
+# Janez Krek <janez.krek@euroteh.si>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-06-12 01:19+0200\n"
+"Last-Translator: benjamin povirk <benjamin.povirk@gmail.com>\n"
+"Language-Team: Slovenian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Namizje"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Upravljalnik oken"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "brez izbire"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Zasenči"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "&Skrčite Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "&Skrčite Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "&Skrčite Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "&Skrčite Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Samodejno"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Okenski meni"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Izbran(i)"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Metacity tema motnost aktivnega okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity tema motnost sence aktivnega okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity tema motnost"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity tema motnost senca"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Motnost za aktivna okna z metacity temo dekoracij"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Motnost za metacity temo dekoracij"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "Zasenči aktivna okna z metacity temo dekoracij od motne do prozorne"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "Zasenči okna z metacity temo dekoracij od motne do prozorne"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Akcija miškinega kolesca na naslovni vrstici"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Tip neaktivnosti uporabljen za dekoracije okna"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Uporabi metacity temo"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Uporabi metacity temo ko rišeš dekoracije okna"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Zapri okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Odmaksimiziraj okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maksimiziraj okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimiziraj okno"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Postavi na vrh"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Prilepi"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Odsenči"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Postavi iz ospredja"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Odlepi"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Okno \"%s\" se ne odziva"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Nasilno zaprtje te aplikacije lahko povzroči izgubo neshranjenih sprememb."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Nasilni izhod"
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Init"
+
+# KM
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Barve"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktivni profil"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Počisti"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Izriši"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Izriši z uporabo orodja"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Inicializiraj"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Init"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Inicializiraj izbris"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "širina črte"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+#, fuzzy
+msgid "Stroke width"
+msgstr "širina črte"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xbilinearno"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Zamaži z transparenco"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Zamaži okna z transparenco"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filter madeža"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Madež absorpcije"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Madež zasičenosti"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Zamaži hitrost"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Zamaži okna"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Zamaži za prosojnimi deli oken"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Madež nasičenosti"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Zamaži okna"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Zamaži okna v ozadju"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Zamaži v ospredju"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Zamaži okna v ospredju"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gausova"
+
+# RU
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gausov radij"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gausova moč"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "gausov radij"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gausova moč"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mini zemljevid"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Lima"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "stopnja podrobnosti Mini zemljevida"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Pulz"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Pulz efekt"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Uporabi vse teksturne enote ki so na voljo, da ustvariš karseda veliko "
+"neodvisnih novih tekstur."
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Hitrost zamaznitve okna"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Init"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Ukaz '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Ukaz '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Ukaz '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Ukaz '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Ukaz: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Ukaz: "
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Aktivni profil"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "Datotečni &sistem"
+
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "Samodejno"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Privzet odsek"
+
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Privzeti Datum I&zteka Veljavnosti"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Namizje"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "Izberi Posodobitev"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Navidezne naprave"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "Omogoči samodejno zaustavitev"
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Pisanje dnevnika"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "Seznam zaznanih tiskalnikov"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Navaden"
+
+#: ../metadata/core.xml.in.in.h:58
+#, fuzzy
+msgid "Number of Desktops"
+msgstr "Namizje"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "Namizje"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Zamik"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "&Radijska ura"
+
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Osveži seznam"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Namizje"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Prikaži vse razdelke"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "&Nastavi filter"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "&Nastavi filter"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "&Nastavi filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Navidezne naprave"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D pospeševanje:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Samodejno"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+# KM
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Barve"
+
+# KM
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Barve"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Namizje"
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D pospeševanje:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Izbran(i)"
+
+# TL
+# fuzzy
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Trst"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "Prejsne jedro"
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Neuspešne datoteke"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "Naslednja posodobitev"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "Prejsne jedro"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "lokalni čas"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sydney"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Izbran(i)"
+
+# TL
+# fuzzy
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Trst"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Ukaz: "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "&Nizek nivo"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Ni opisa"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind opcije"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+# TL
+# fuzzy
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Trst"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Vsebuje"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Realni čas"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Izbran(i)"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Realni čas"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Datotečni &sistem"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "Zaslon na dotik"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows prosto (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Dodaj stik"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Dodaj stik"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "Zaženi v terminalu"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Ne beleži ničesar"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "Ne beleži ničesar"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Vsebuje"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "Premakni &Dol"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Premakni &Dol"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Premakni &Dol"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Nizek nivo"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "&Nizek nivo"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "&Nizek nivo"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind opcije"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Upravljalnik oken"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Navidezne naprave"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Navidezne naprave"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "&Delovna skupina"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Navidezne naprave"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Navidezne naprave"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+# KM
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Barve"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+# KM
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Barve"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Init"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Init"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Init"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Init"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Init"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+# KM
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Barve"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Sprememba velikosti je bila neuspešna."
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "Realni čas"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Kazalec na %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Tiskalniška naprava"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Oddaljeno podomrežje"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "V desno"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "V desno"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Oddaljeno podomrežje"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "V desno"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Oddaljeno podomrežje"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Oddaljeno podomrežje"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Oddaljeno podomrežje"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "V desno"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Premakni &Dol"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Zaganjam prikriti proces (daemon)."
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D pospeševanje:"
+
+# TL
+# fuzzy
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Trst"
+
+# TL
+# fuzzy
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Trst"
+
+# TL
+# fuzzy
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Trst"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Poženi zaznavanje"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "Odjava"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Velik"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Ozadja"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Premakni &Dol"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Optični bralnik (scanner)"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "lokalni čas"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "lokalni čas"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Španija"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Imenik\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Init"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Pisarniške aplikacije"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Zaslon"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Vrstni red uporabe"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Samodejno"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Med zagonom"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Ikonce"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Namizje"
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Prejsne jedro"
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "I&zbriši Windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Zaganjam prikriti proces (daemon)."
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "Skripta za zamenjavo"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "lokalni čas"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Dod&aj povezavo"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Dodaj stik"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Zamik"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "&Zamenjaj status"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "&Zamenjaj status"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "&Zamenjaj status"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "&Zamenjaj status"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Akcija"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Ločljivost"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Največja velikost"
+
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Največja velikost"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Premakni &Dol"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Gonilnik"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "&Skrčite Windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Akcija"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Stepping"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Stepping"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "I&zbriši Windows"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Prepoznavanje strežnika"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Windows uporabljeno:"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filter: "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Namizje"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Odjava"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Odjava"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Odjava"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Izbran(i)"
+
+# TL
+# fuzzy
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Trst"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Zasukaj zaslon"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Odjava"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Odjava"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Ukaz: "
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Ukaz '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Napaka pri razčlenitvi ukazne vrstice."
+
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "V celoti &izbriši Windows"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Oddaljeno podomrežje"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "V desno"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Oddaljeno podomrežje"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "V desno"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "Orodja"
+
+#~ msgid "Menu"
+#~ msgstr "Menu"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "Disketa s priročnimi orodji..."
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Upravljalnik oken"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "Menu"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "Orodja"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "Zaslon na dotik"
+
+#~ msgid "Unknown"
+#~ msgstr "Neznano"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Trajanje"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "Ne beleži ničesar"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&Nizek nivo"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Radius"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Zaganjam prikriti proces (daemon)."
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D pospeševanje: "
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "3D pospeševanje: "
+
+# TL
+# fuzzy
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Trst"
+
+# RU
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Ruska federacija"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Ruska"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows uporabljeno:"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Skrčite Windows"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Skrčite Windows"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Največja velikost"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Namizje"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Zaganjam prikriti proces (daemon)."
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Zaganjam prikriti proces (daemon)."
+
+# workflow: "3D Beschleunigung aktivieren"
+# -ke-
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D pospeševanje: "
+
+# TL
+# fuzzy
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Trst"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "lokalni čas"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "lokalni čas"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "I&zbriši Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Stepping"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Skripta za zamenjavo"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Nastavi filter"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Prepoznavanje strežnika"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows prosto (%1)"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows prosto (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Izbran(i)"
+
+# TL
+# fuzzy
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Trst"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Odjava"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Zaganjam prikriti proces (daemon)."
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "Zasukaj zaslon"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Ukaz: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Ukaz: "
+
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "Tip ponudnika"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Kornščina"
+
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Pokaži spre&membe"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Disketa"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Zaganjam prikriti proces (daemon)."
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminali"
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..d036239
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,3985 @@
+# Serbian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2004 SuSE Linux AG.
+# Rade Radenkovic <rrade@tesla.rcub.bg.ac.yu>, 2004
+# Bojan Jovanovic <bojov@fon.bg.ac.yu>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST2 (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-04-25 17:17+0200\n"
+"Last-Translator: Dragonny <drax@virus.la>\n"
+"Language-Team: Serbian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+#, fuzzy
+msgid "Desktop"
+msgstr "Setovanja Desktop-a"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+#, fuzzy
+msgid "Window Management"
+msgstr "Window Manager"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Nema"
+
+# label of an output field
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Senka"
+
+# button text
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "&Smanji Windowse"
+
+# ComboBox item
+# Combobox item
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatski"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+#, fuzzy
+msgid "Window Menu"
+msgstr "Meni prozora"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+#, fuzzy
+msgid "Blur type"
+msgstr "Vrsta zamućivanja"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "&Obriši Windows kompletno"
+
+# Radio button for using an entire (Windows) partition for Linux
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "&Obriši Windows kompletno"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+# button text
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+#, fuzzy
+msgid "Close Window"
+msgstr "Zatvori prozor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+# button text
+# button text
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+#, fuzzy
+msgid "Minimize Window"
+msgstr "Smanji prozor"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Napravi iznad"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Ne senči"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Rastavi iznad"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Prozor \"%s\" ne reaguje."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Forsiranjem aplikacije da se zatvori moze izazvati gubitak nesnimljenih "
+"promena."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Forsiraj Zatvaranje"
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "хетски"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Dumb Clock"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+# Label text
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Aktivan profil"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "Očisti"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Nacrtaj"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Alat za crtanje"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "хетски"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "хетски"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "хетски"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Započni brisanje"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Širina linije"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Filter: "
+
+# button text
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Alfa zamućivanje"
+
+# button text
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Alfa zamućivanje prozora"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Filter Zamućivanja"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Trajanje zamućivanja"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Trajanje"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Brzina Zamućivanja"
+
+# button text
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Zamuti Prozore"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Zamuti iza providnih delova prozora"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Trajanje"
+
+# button text
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Zamuti prozore"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Zamuti prozore koji nemaju fokus"
+
+#: ../metadata/blur.xml.in.h:13
+#, fuzzy
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Isključi zamućenje u delovima ekrana zamračenim od strane prozora. "
+
+#: ../metadata/blur.xml.in.h:14
+#, fuzzy
+msgid "Filter method used for blurring"
+msgstr "Korišćena filter metoda za zamućivanje"
+
+# button text
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fokusiraj zamućenje"
+
+# button text
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Fokusiraj zamućenje prozora"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Rusija"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Руска Федерација"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Rusija"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Руска Федерација"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Rusija"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "микмак"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "микмак"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Puls"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Efekat pulsa"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+# label text, %1 is replaced by a unit value ("MB")
+# label text, %1 is replaced by a unit value ("MB")
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Windows slobodno (%1)"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "хетски"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+# Process <command> "help"
+# translators: %1 is the command name
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Komanda '%1'"
+
+# Process <command> "help"
+# translators: %1 is the command name
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Komanda '%1'"
+
+# Process <command> "help"
+# translators: %1 is the command name
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Komanda '%1'"
+
+# Process <command> "help"
+# translators: %1 is the command name
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Komanda '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Komanda :"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Komanda :"
+
+# Label text
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "Aktivan profil"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+#, fuzzy
+msgid "Audible system beep"
+msgstr "Sistemi datoteka"
+
+# ComboBox item
+# Combobox item
+#: ../metadata/core.xml.in.in.h:5
+#, fuzzy
+msgid "Auto-Raise"
+msgstr "Automatski"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+# table item / label
+#: ../metadata/core.xml.in.in.h:14
+#, fuzzy
+msgid "Default Icon"
+msgstr "Podrazumevana sekcija"
+
+# progress stage title
+#: ../metadata/core.xml.in.in.h:15
+#, fuzzy
+msgid "Default window icon image"
+msgstr "Pokretanje podrazumevanog menadžera prozora"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Setovanja Desktop-a"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+# headline for dialog "Select for update"
+# headline for dialog "Select for update"
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "Izaberi za ažuriranje"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Startujem servis"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Startujem servis"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+# Aliases dialog caption
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Virtuelni alias-i"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+#, fuzzy
+msgid "Lighting"
+msgstr "Zapisivanje događaja"
+
+#: ../metadata/core.xml.in.in.h:44
+#, fuzzy
+msgid "List of currently active plugins"
+msgstr "Listaj samo detektovane štampače"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/core.xml.in.in.h:50
+#, fuzzy
+msgid "Maximize Window Horizontally"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/core.xml.in.in.h:51
+#, fuzzy
+msgid "Maximize Window Vertically"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Čekanje"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+#, fuzzy
+msgid "Raise On Click"
+msgstr "&Radio Clock"
+
+# button text
+#: ../metadata/core.xml.in.in.h:69
+#, fuzzy
+msgid "Raise Window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Osveži Listu"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "Setovanja Desktop-a"
+
+#: ../metadata/core.xml.in.in.h:77
+#, fuzzy
+msgid "Slow Animations"
+msgstr "Prikaži sve Particije"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "&Podesite filter"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "&Podesite filter"
+
+# MenuButton label
+# menubutton label
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "&Podesite filter"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+# Aliases dialog caption
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Virtuelni alias-i"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "3D akceleratori"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+#, fuzzy
+msgid "Animate Skydome"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# ComboBox item
+# Combobox item
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Automatski"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Dumb Clock"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Dumb Clock"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Setovanja Desktop-a"
+
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "3D akceleratori"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Suspend"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Источни Тимор"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Instaliacija slike diska"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+# button text
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+# button text
+#: ../metadata/cube.xml.in.h:36
+#, fuzzy
+msgid "Place windows on cube"
+msgstr "&Obriši Windowse"
+
+# button text
+# button text
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "lokalno vreme"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+#, fuzzy
+msgid "Skydome"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+#, fuzzy
+msgid "Skydome Image"
+msgstr "Sidnej"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+#, fuzzy
+msgid "Speed"
+msgstr "Suspend"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Источни Тимор"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Komanda :"
+
+# button text
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+#, fuzzy
+msgid "Drop shadow X offset"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:6
+#, fuzzy
+msgid "Drop shadow Y offset"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "Radius"
+
+#: ../metadata/decoration.xml.in.h:8
+#, fuzzy
+msgid "Drop shadow opacity"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:9
+#, fuzzy
+msgid "Drop shadow radius"
+msgstr "Radius"
+
+# button text
+# button text
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/decoration.xml.in.h:12
+#, fuzzy
+msgid "Shadow Offset X"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:13
+#, fuzzy
+msgid "Shadow Offset Y"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "&Loše stanje"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Radius"
+
+# button text
+# button text
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Bez opisa"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "ypbind opcije"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Источни Тимор"
+
+# header text
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr " Kontejner"
+
+# button text
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "U realnom vremenu"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Suspend"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "U realnom vremenu"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Sistemi datoteka"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+# button text
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "&Obriši Windowse"
+
+# button text
+# button text
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+# label text, %1 is replaced by a unit value ("MB")
+# label text, %1 is replaced by a unit value ("MB")
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows slobodno (%1)"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Додај догађај"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Додај догађај"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Greška, niste uneli ispravno komandu."
+
+#: ../metadata/gnomecompat.xml.in.h:7
+#, fuzzy
+msgid "Screenshot command line"
+msgstr "Greška, niste uneli ispravno komandu."
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Greška, niste uneli ispravno komandu."
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+# header text
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr " Kontejner"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "XF86RotateWindows"
+
+# button text
+# button text
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "&Smanji Windowse"
+
+# button text
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "&Loše stanje"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Startujem servis"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "Startujem servis"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Most"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+# ???
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "окситан (после 1500.)"
+
+# ???
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "окситан (после 1500.)"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "&Loše stanje"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Startujem servis"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Trajanje"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "ypbind opcije"
+
+# Label for used part of the Windows partition in non-graphical mode
+# Label for used part of the Windows partition in non-graphical mode
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows iskorišteno:"
+
+# button text
+# button text
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Window Manager"
+
+# button text
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "&Obriši Windowse"
+
+# Aliases dialog caption
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Virtuelni alias-i"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+# button text
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+# Aliases dialog caption
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Virtuelni alias-i"
+
+# button text
+# button text
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "ypbind opcije"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "&Radna grupa"
+
+# button text
+# button text
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "&Smanji Windowse"
+
+# Aliases dialog caption
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Virtuelni alias-i"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "&Smanji Windowse"
+
+# Aliases dialog caption
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Virtuelni alias-i"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Dumb Clock"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Dumb Clock"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "хетски"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "хетски"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "хетски"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "хетски"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "хетски"
+
+# button text
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Dumb Clock"
+
+# button text
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+# button text
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "Startujem servis"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "Startujem servis"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "Startujem servis"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "Startujem servis"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "Startujem servis"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+# button text
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "U realnom vremenu"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+# table entry, %1 is host name
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Pokazivač na %1"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Štampač"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "Startujem servis"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Setovanja Desktop-a"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Setovanja Desktop-a"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Startujem servis"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Startujem servis"
+
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "3D akceleratori"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Источни Тимор"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Источни Тимор"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Источни Тимор"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Startuj detekciju..."
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+#, fuzzy
+msgid "Zoom"
+msgstr "Odjavi se"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Pozadine"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+# label of an output field
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Skener"
+
+# button text
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "&Obriši Windowse"
+
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "lokalno vreme"
+
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "lokalno vreme"
+
+# button text
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+# button text
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Španija"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Директоријум\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "хетски"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Покрени програм"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Greška, niste uneli ispravno komandu."
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Greška, niste uneli ispravno komandu."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Redosled"
+
+# ComboBox item
+# Combobox item
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Automatski"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Akcija"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Ikone"
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "&Smanji Windowse"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Setovanja Desktop-a"
+
+# button text
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+# button text
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Startujem servis"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "&Smanji Windowse"
+
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "lokalno vreme"
+
+# ComboBox entry: hardware clock set to local time
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "lokalno vreme"
+
+# button text
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Додај догађај"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Додај догађај"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Čekanje"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "&Promena statusa"
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "&Promena statusa"
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "&Promena statusa"
+
+# translators: toggle button label
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "&Promena statusa"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+# button text
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "&Obriši Windowse"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Akcija"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Rezolucija"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+# button text
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+# To translators: intfield label
+#: ../metadata/wobbly.xml.in.h:13
+#, fuzzy
+msgid "Minimum Grid Size"
+msgstr "Minimalan &GUID"
+
+# To translators: intfield label
+#: ../metadata/wobbly.xml.in.h:14
+#, fuzzy
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimalan &GUID"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "&Obriši Windowse"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Драјвер"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+# button text
+# button text
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "&Smanji Windowse"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Akcija"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Preskakanje %1"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Preskakanje %1"
+
+# button text
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+# translators: frame title for method of incoming request resolution
+# translators: frame title for method of incoming request resolution
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Rezolucija servera"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+# button text
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "&Obriši Windowse"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Filter: "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Setovanja Desktop-a"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Odjavi se"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Odjavi se"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Odjavi se"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Suspend"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Источни Тимор"
+
+# Headline for X11 configuration screen:
+# The user selects screen resolution and color depth.
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Setovanja Desktop-a"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Odjavi se"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Odjavi se"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Komanda :"
+
+# Process <command> "help"
+# translators: %1 is the command name
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Komanda '%1'"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Greška, niste uneli ispravno komandu."
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Greška, niste uneli ispravno komandu."
+
+# Radio button for using an entire (Windows) partition for Linux
+#, fuzzy
+#~ msgid "Decrease window opacity"
+#~ msgstr "&Obriši Windows kompletno"
+
+# button text
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "&Obriši Windowse"
+
+# button text
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "&Obriši Windowse"
+
+# button text
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "&Obriši Windowse"
+
+# button text
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "XF86RotateWindows"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Startujem servis"
+
+# button text
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "&Obriši Windowse"
+
+# button text
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "&Obriši Windowse"
+
+# button text
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "XF86RotateWindows"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Startujem servis"
+
+# button text
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "тагалог"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Window Manager"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Akcija"
+
+#~ msgid "Unknown"
+#~ msgstr "Nepoznato"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Trajanje"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "&Loše stanje"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Radius"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Startujem servis"
+
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "3D akceleratori"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Suspend"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Источни Тимор"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Руска Федерација"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Rusija"
+
+# button text
+# button text
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "&Smanji Windowse"
+
+# button text
+# button text
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "&Smanji Windowse"
+
+# To translators: intfield label
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "Minimalan &GUID"
+
+# ???
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "окситан (после 1500.)"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "Startujem servis"
+
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+# ...
+# at the end of the suggestion text we will add the
+# 3D status. Therefore the D3Active variable is handled
+# if the status is false we had to check if the card
+# or the environment is capable of using 3D
+# ---
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "3D akceleratori"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Источни Тимор"
+
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "lokalno vreme"
+
+# ComboBox entry: hardware clock set to local time
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "lokalno vreme"
+
+# button text
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "&Obriši Windowse"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Akcija"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Preskakanje %1"
+
+# MenuButton label
+# menubutton label
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Podesite filter"
+
+# translators: frame title for method of incoming request resolution
+# translators: frame title for method of incoming request resolution
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Rezolucija servera"
+
+# label text, %1 is replaced by a unit value ("MB")
+# label text, %1 is replaced by a unit value ("MB")
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows slobodno (%1)"
+
+# label text, %1 is replaced by a unit value ("MB")
+# label text, %1 is replaced by a unit value ("MB")
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows slobodno (%1)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Suspend"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Источни Тимор"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Odjavi se"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Komanda :"
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Komanda :"
+
+# Provider type dialog caption
+#, fuzzy
+#~ msgid "Move Window Types"
+#~ msgstr "Tip provajdera"
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "корнвалски"
+
+# Push button label
+#, fuzzy
+#~ msgid "Show switcher"
+#~ msgstr "Prikaži &promene"
+
+# default is "/dev/fd0" floppy device (used when floppy detection is skipped as a fallback)
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Disketni uređaj"
+
+#, fuzzy
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "Startujem servis"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Terminali"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..5d6adb8
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,3400 @@
+# Swedish translation of compiz.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+# This file is distributed under the same license as the compiz package.
+# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
+# Sebastian Parborg <zedDB@hotmail.com>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:09+0100\n"
+"PO-Revision-Date: 2008-02-18 19:36+0100\n"
+"Last-Translator: Sebastian Parborg <zedDB@hotmail.com>\n"
+"Language-Team: Compiz Fusion Translators <i18n@lists.compiz-fusion.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.0.2\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Skrivbord"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Fönsterhantering"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Ingen"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Skala"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Maximera"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Maximera fönster horisontellt"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Maximera fönster vertikalt"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Minimerat"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Automatisk höjning"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Fönstermeny"
+
+# fuzzy
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Åtgärd när man rullar med mushjulet på en fönstertitel."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Suddighets typ"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+#, fuzzy
+msgid "Metacity theme active window opacity"
+msgstr "Metacitys aktiva tema opacitet"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacitys aktiva tema opacitets skugga"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity tema opacitet"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity tema opacitet skugga"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Opacitet på aktiva fönster med metacity tema dekorationer"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Opacitet på metacity tema dekorationer"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Skugga aktiva fönster med metacity tema dekorationer från opact "
+"tillgenomskinlig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Skugga fönster med metacity tema dekorationer från opact till genomskinlig"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+#, fuzzy
+msgid "Title bar mouse wheel action"
+msgstr "Fönstertitel mushjul åtgärd"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Typ av suddighet att använda för fönster dekorationer"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Använd metacity tema"
+
+# De syftar nog på fönsterramarna.
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Använd metacity tema vid ritande av fönsterramar"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Stäng fönster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Avmaximera fönster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Maximera fönster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Minimera fönster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Anteckning"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "Antecknings fyllfärg"
+
+#: ../metadata/annotate.xml.in.h:3
+#, fuzzy
+msgid "Annotate Stroke Color"
+msgstr "Antecknings streckfärg"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Insticksmodul för anteckningar"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Töm"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Rita"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Rita med verktyg"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Fyllnings färg för anteckningar"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Initiera"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Initiera antecknings ritande"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Initiera radering av anteckning"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Initiera radering"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Radbredd"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Linje bredd för anteckningar"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Streck färg för anteckningar"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Streck storlek"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Streck storlek för anteckningar"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4xBilinjär"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Alfa oskärpa"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Alfa oskärpa fönster"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Suddighetsfilter"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Suddighetsocclusion"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Suddighetsfärgmättnad"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Suddighetshastighet"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Sudda ut fönster"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Sudda ut bakom genomskinliga delar av fönster"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Suddighetsfärgmättnad"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Sudda ut fönster"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Sudda ut fönster som inte har fokus"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Akaktivera suddighet på skärmregioner täckta av andra fönster"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Filter metod använd för suddighet"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Fokus suddighet"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Fokusera suddiga fönster"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "Gaussian"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Gaussian radie"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Gaussian strycka"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Gaussian radie"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Gaussian stryka"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap detalj-nivå"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Puls"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Pulseffekt"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Fönster studdnings-hastighet"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Fönster som ska bli påverkade av fokus-suddighet"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Fönster som ska använda alfa-suddighet som standard"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Klona utmatning"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "Initiera klon selektion"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Utmatnings klonhanterare"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"En tangentgenväg som när anropas kommer att köra skalkommandot identifierat "
+"som kommando9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Kommandorad 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Kommandorad 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Kommandorad 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Kommandorad 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Kommandorad 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Kommandorad 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Kommandorad 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Kommandorad 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Kommandorad 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Kommandorad 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Kommandorad 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Kommandorad 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command0 anropas"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command1 anropas"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command10 anropas"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command11 anropas"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command2 anropas"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command3 anropas"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command4 anropas"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command5 anropas"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command6 anropas"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command7 anropas"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command8 anropas"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Kommandorad som ska köras i ett skal när run_command9 anropas"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Kommando"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "Kör kommando 0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "Kör kommando 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "Kör kommando 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "Kör kommando 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "Kör kommando 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "Kör kommando 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "Kör kommando 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "Kör kommando 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "Kör kommando 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "Kör kommando 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "Kör kommando 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "Kör kommando 9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Aktiva insticksmoduler"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Tillåt att inte utritning av helskärmsfönster omdirigeras till bilder "
+"utanför skärmen"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Ljudklocka"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Systemljudklocka"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Automatisk höjning"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Fördröjning för automatisk höjning"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Automatisk identifiering av outputenheter"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Automatisk identifiering av uppdateringsfrekvens"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Bästa"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Klicka för fokus"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Klicka på fönstret flyttar inmatningsfokus till det"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Stäng aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Standardikon"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Standardikonbild för fönster"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Skrivbordskub"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Detektera outputs"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Detektera uppdateringsfrekvens"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Snabb"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Förhindra fokus"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "Förhindra fokus"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Förhindra fokus"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Allmänna alternativ"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Generella compiz inställningar"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Bra"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Dölj fönster inte i verktygsrad"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Dölj alla fönster och fokusera på skrivbord"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "Dölj fönster som inte är i verktygsraden vid visa skrivbordsläget"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Virtuell horisontell storlek"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Ignorera tips medans maximerad"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Ignorera storleksökning och aspekthintning när fönster maximeras"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Intervall innan markerade fönster höjs"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Intervall mellan ping-meddelanden"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Ljussättning"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Lista över för närvarande aktiva insticksmoduler"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Lista över strängar som beskriver utmatningsenheter"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Sänk fönster"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Sänk fönstret under andra fönster"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Maximera fönster horisontellt"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Maximera fönster vertikalt"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Maximera aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Maximera aktivt fönster horisontellt"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Maximera aktivt fönster vertikalt"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Minimera aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Antal skrivbord"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Antal virtuella skrivbord"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+#, fuzzy
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Uför endast skärmuppdateringar under den vertikala blanknings perioden"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Utmatningar"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Fördröjning för ping"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Höj vid klick"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Höj fönster"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Höj markerade fönster efter intervall"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Höj fönstret över andra fönster"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Höj fönster när de klickas på"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Uppdateringsfrekvens"
+
+#: ../metadata/core.xml.in.in.h:74
+#, fuzzy
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Skärmstorleksfaktor för virtuell horisontell storlek"
+
+#: ../metadata/core.xml.in.in.h:75
+#, fuzzy
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Skärmstorleksfaktor för virtuell vertikal storlek"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Visa skrivbordet"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Långsamma animeringar"
+
+#: ../metadata/core.xml.in.in.h:78
+#, fuzzy
+msgid "Smart mode"
+msgstr "Smart"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Synkronisera till VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "Texturfiltrering"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Texturfilter"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Texturfiltrering"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Frekvensen för updatering av skärmen (gånger/sekund)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Växla fönstermaximering"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Växla fönstermaximering horisontellt"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Växla fönstermaximering vertikalt"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Växla fönsterskuggning"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Växla maximering av aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Växla horisontell maximering av aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Växla vertikal maximering av aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Växla skuggning av aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Växla användning av långsamma animeringar"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Avmaximera aktivt fönster"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Omdirigera tillbaka helskärmsfönster"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Använd diffus belysning när skärmen transformeras"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Vertikal virtuell storlek"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+#, fuzzy
+msgid "Window menu button binding"
+msgstr "Fönstermenyns knappbindning"
+
+#: ../metadata/core.xml.in.in.h:102
+#, fuzzy
+msgid "Window menu key binding"
+msgstr "Fönstermenyns tangentbindning"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Accelerering"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Justera bild"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Justera bilden på den övre ytan till rotation"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Fortsätt till nästa bild"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Animera Skydome"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Animera skydome när kub roterar"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Automatisk"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Färg på över- och undersidorna av kuben"
+
+#: ../metadata/cube.xml.in.h:11
+#, fuzzy
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+"Färg som används till bottenfärg-stoppet av skydome-tillbakagångs-gradient"
+
+#: ../metadata/cube.xml.in.h:12
+#, fuzzy
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+"Färg som används till toppenfärg-stoppet av skydome-tillbakagångs-gradient"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Kubfärg"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Kubfärg"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Skrivbordskub"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Vikningsaccelerering"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Vikningshastighet"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Tidsintervall för vikning"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Generera mipmappar när det är möjligt för skalning av högre kvalitet"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Gå tillbaka till föregående diabild"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Bildfiler"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Bild att använda som textur för skydome"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Aktiverar kub genomskinlighet endast om rotationen sker med musen"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "I kuben"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "I kuben"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Lista över PNG- och SVG-filer som ska ritas ut på översta ytan av kuben"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Läge för multipla utmatningar"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Flera kuber"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Nästa diabild"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "På stora kuben"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Opacitet under rotation"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Opacitet när kuben inte roterar"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Opacitet av skrivbordsfönster under rotation"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Opacitet av skrivbordsfönster när kuben inte roterar"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Placera fönster på kuben"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Föregående diabild"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Rita ut skydome"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Skala bild"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Skala bilder för att täcka övre ytan på kuben"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Väljer hur kuben visar om flera output enheter används"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Skydome"
+
+#: ../metadata/cube.xml.in.h:43
+#, fuzzy
+msgid "Skydome Gradient End Color"
+msgstr "Skydome gradient slut färg"
+
+#: ../metadata/cube.xml.in.h:44
+#, fuzzy
+msgid "Skydome Gradient Start Color"
+msgstr "Skydome gradient start färg"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Skydome bild"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Hastighet"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Tidsintervall"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Genomskinlighet endast via musrotation"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Vik ut"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Vik ut kub"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+#, fuzzy
+msgid "Dbus Control Backend"
+msgstr "Dbus kontrollbackend"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Tillåt mipmaps att bli genererade för dekorationstexturer"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Kommando"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Dekorationsfönster"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Dekorerarkommado som körs om inte någon dekorerare redan körs"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Skuggkastning X-position"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Skuggkastning Y-position"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Färg för skuggkastning"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Opakhet för skuggkastning"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Radie för skuggkastning"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Skuggfärg"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Skuggposition X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Skuggposition Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Skuggopakhet"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Skuggradie"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Skuggfönster"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Fönsterram"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Fönsterramar"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Fönster som ska dekoreras"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Fönster som ska ha en skugga"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Rotationshastighet"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Begränsa Y"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Ändra fönstrets storlek normalt"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Toningstid"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Tona vid minimering/öppna/stäng"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Toningshastighet"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Toningstid"
+
+#: ../metadata/fade.xml.in.h:11
+#, fuzzy
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Toningeffekt på minimera/öppna/stänga fönster tillfällen"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Toningseffekt vid systemsignal"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "Tona in fönster när de kopplas och tona ut fönster när de kopplas loss"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Tona fönster"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Tonande fönster"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Visuell helskärmssignal"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Helskärmstoningseffekt vid systemsignal"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Visuell signal"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Fönstertoningshastighet"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Fönster som ska skalas i skalningsläget"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Fönster som ska tonas"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Monteringspunkt"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Monteringspunkt"
+
+#: ../metadata/fs.xml.in.h:3
+#, fuzzy
+msgid "Userspace File System"
+msgstr "Användarutrymmes filsystem"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Användarutrymmes filsystem"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+#, fuzzy
+msgid "GConf Control Backend"
+msgstr "GConf kontrollbackend"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+#, fuzzy
+msgid "GLib main loop support"
+msgstr "GLib huvudloop stöd"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Öppna en terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Kördialog"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Kommandorad för terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Kommandorad för skärmbild"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Visa huvudmeny"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Visa dialogen Kör program"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Visa huvudmenyn"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Ta en skärmbild"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Ta en skärmbild av ett fönster"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Kommandorad för terminal"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Kommandorad för fönsterskärmbild"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+#, fuzzy
+msgid "Ini Flat File Backend"
+msgstr "Ini platt fil backend"
+
+#: ../metadata/inotify.xml.in.h:1
+#, fuzzy
+msgid "File change notification plugin"
+msgstr "Filändringsnotifiering insticksmodul"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+#, fuzzy
+msgid "Kconfig Control Backend"
+msgstr "Kconfig kontrollbackend"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Minimeringseffekt"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Minimera fönster"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Minimeringshastighet"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Tidsintervall för minimering"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Skuggmotstånd"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Skuggmotstånd"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Transformera fönster när de minimeras och avminimeras"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Fönster som ska bli transformerade när de blir minimerade"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Begränsa Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Begränsa Y-koordinat till arbetsyta"
+
+#: ../metadata/move.xml.in.h:3
+#, fuzzy
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Uppdatera inte positonen på fönsterna till servern förrän de har slutat röra "
+"sig"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Initiera fönsterflyttning"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Lat postionering"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Flytta fönster"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Flytta fönster"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Opacitet"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Opacitetnivå för flyttande fönster"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "Koppla loss och automatiskt avmaximera maximerade fönster när de dras"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Koppla loss maximerade fönster"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Börja flytta fönster"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Ljusstyrka"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Ljusstyrka"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Ljusstyrka"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Ljusstyrka"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Minska opacitet"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Öka opacitet"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Ändringsintervall för opacitet"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Ändringsintervall för opacitet"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Intervall för opacitet"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Opacitetnivå för flyttande fönster"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Opacitet under rotation"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Färgmättnad"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Färgmättnad"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Färgmättnad"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Färgmättnad"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Fönsterramar"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Opacitet fönster värden"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Koppla fönster"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Fönster som ska bli positionerade som standard"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Fönster som ska vara genomskinliga som standard"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Fönster som ska bli positionerade som standard"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Algoritm att använda för fönsterplacering"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Kaskad"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Centrerad"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Fönsterhantering"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Förhindra fokus"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Horisontella skivbordsvypositioner"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Placera fönster"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Placera fönster på lämpliga positioner när de kopplas"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Placeringsläge"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Positionerade fönster"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Slumpmässigt"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "Väljer var fönster blir skalade om flera outputenheter används"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Smart"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "På alla utmatningsenheter"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Vertikalarbetsytas positioner"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Arbetsyta positionerade fönster"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Problemlösning för fönsterplacering"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Fönster som ska bli positionerade som standard"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Fönster som ska bli positionerade i en specifik arbetsyta som standard"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Fönsterramar"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Problemlösningar"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X-positioner"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "X arbetsyta positioner"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X-positionsvärden"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y-positioner"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Y arbetsyta positioner"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y-positionsvärden"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png-bildläsare"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Reguljär uttrycksmatchning"
+
+#: ../metadata/regex.xml.in.h:2
+#, fuzzy
+msgid "Regex window matching"
+msgstr "Växla fönsterfästning"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Ramfärg"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "Ramfärg använd för kontur och rektangel fönsterstorleksändringsläge"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Standard storlekändringsläge"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Standard läged använt för fönster storleksändring"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Fyllnadsfärg"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Fyllningsfärg för rektangeln i justeringsläge"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Initiera normal fönsterskalning"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Initiera kontur fönsterskalning"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Initiera rektangel fönsterskalning"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Initiera töjnings fönsterskalning"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Initiera fönsterskalning"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Ändra fönstrets storlek normalt"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Kontur"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Kontur justera fönster"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Rektangel"
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Ändra fönstrets storlek rektangulärt"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Skala fönster"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Skala fönster"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Börja skala fönster"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Börja storleksändra fönstret genom att sträcka det"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Börja storleksändra fönstret normalt"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Börja storleksändra fönstret med kontur"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Börja storleksändra fönstret rektangulärt"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Töj"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Töj ut fönstrets storlek"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Fönster som normal storleksändring ska användas för"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Fönster som storleksändring med kontur ska användas för"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Fönster som rektangulär storleksändring ska användas för"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Fönster som storleksändring med sträckning ska användas för"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "Kantvänd DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "Kantvänd flyttning"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "Kantvänd pekare"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Vändtid"
+
+#: ../metadata/rotate.xml.in.h:7
+#, fuzzy
+msgid "Flip to left viewport and warp pointer"
+msgstr "Vänd till nästa skrivbordsvy när muspekaren flyttas till skärmens kant"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "Vänd till nästa skrivbordsvy när objekt dras till skärmens kant"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "Vänd till nästa skrivbordsvy när muspekaren flyttas till skärmens kant"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "Vänd till nästa skrivbordsvy när fönster flyttas till skärmens kant"
+
+#: ../metadata/rotate.xml.in.h:11
+#, fuzzy
+msgid "Flip to right viewport and warp pointer"
+msgstr "Vänd till nästa skrivbordsvy när muspekaren flyttas till skärmens kant"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "Invertera Y-axeln för pekarens rörelser"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "Invertera pekarens Y-axel"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "Muspekarkänslighet"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Höj upp vid rotation"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Höj upp fönster under rotation"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Rotera kub"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Flipprotera åt vänster"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Flipprotera åt höger"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Rotera åt vänster"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Rotera åt vänster med fönster"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Rotera åt höger"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Rotera åt höger med fönster"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Rotera till"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "Rotera till yta 1"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "Rotera till yta 1 med fönster"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "Rotera till yta 10"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "Rotera till yta 10 med fönster"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "Rotera till yta 11"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "Rotera till yta 11 med fönster"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "Rotera till yta 12"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "Rotera till yta 12 med fönster"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "Rotera till yta 2"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "Rotera till yta 2 med fönster"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "Rotera till yta 3"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "Rotera till yta 3 med fönster"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "Rotera till yta 4"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "Rotera till yta 4 med fönster"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "Rotera till yta 5"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "Rotera till yta 5 med fönster"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "Rotera till yta 6"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "Rotera till yta 6 med fönster"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "Rotera till yta 7"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "Rotera till yta 7 med fönster"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "Rotera till yta 8"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "Rotera till yta 8 med fönster"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "Rotera till yta 9"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "Rotera till yta 9 med fönster"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Rotera kub"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Rotera skrivbordskub"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Rotera åt vänster"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Rotera åt vänster och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Rotera åt höger"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Rotera åt höger och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Rotera till yta 1"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Rotera till yta 1 med fönster"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "Rotera till yta 1"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "Rotera till yta 1 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "Rotera till yta 10"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "Rotera till yta 10 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "Rotera till yta 11"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "Rotera till yta 11 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "Rotera till yta 12"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "Rotera till yta 12 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "Rotera till yta 2"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "Rotera till yta 2 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "Rotera till yta 3"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "Rotera till yta 3 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "Rotera till yta 4"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "Rotera till yta 4 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "Rotera till yta 5"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "Rotera till yta 5 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "Rotera till yta 6"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "Rotera till yta 6 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "Rotera till yta 7"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "Rotera till yta 7 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "Rotera till yta 8"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "Rotera till yta 8 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "Rotera till yta 9"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "Rotera till yta 9 och ta med aktivt fönster"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Rotera till skrivbordsvy"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Rotera fönster"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Rotera med fönster"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Rotationsacceleration"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Rotationshastighet"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Tidsintervall för rotation"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Rotationszoom"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "Känslighet för flyttning av muspekare"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "Fäst kubroteringen till undersidan"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "Fäst kubroteringen till översidan"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "Fäst till undersidan"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "Fäst till översidan"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Starta rotering"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Tidsgräns innan vändning av skrivbordsvy"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Mängden opacitet i procent"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Stor"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Klicka på Skrivbord för att visa skrivbordet"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Mörka bakgrunden"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Mörka bakgrunden vid fönsterskalning"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Emblem"
+
+#: ../metadata/scale.xml.in.h:12
+#, fuzzy
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Gå till \"Visa skrivbords läge\" när skrivbordet blir klickat på under "
+"skalning"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Pekartid"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Initiera fönsterväljare"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Initiera fönsterväljare för alla fönster"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Initiera fönsterväljare för fönstergrupp"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Initiera fönsterväljare för fönster på nuvarande output"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Lägg ut och börja omforma alla fönster"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Lägg ut och börja omforma fönstergrupp"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Lägg ut och börja omforma fönster"
+
+#: ../metadata/scale.xml.in.h:23
+#, fuzzy
+msgid "Layout and start transforming windows on current output"
+msgstr "Lägg ut och börja omforma fönster på nuvarande output"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "På alla utmatningsenheter"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "På aktuell utmatningsenhet"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Lägg ikoner över"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Lägg en ikon över fönster när de är skalade"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Skala"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Skala fönster"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Skalningshastighet"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Tidsintervall för skalning"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Skala fönster"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "Väljer var fönster blir skalade om flera outputenheter används"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Mellanrum mellan fönster"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Mellanrum"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "Tid (i ms) innan skalningsläget avslutas när man pekar på ett fönster"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Fönster som ska skalas i skalningsläget"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Öppna automatiskt skärmbilder i detta program"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Katalog"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Ta en rektangulär skärmbild"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Kör program"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Lägg skärmbilder i den här katalogen"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Skärmbild"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Insticksmodul för skärmbild"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg-bildläsare"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Ljusstyrka i procent"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Färgmättnad i procent"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Programväxlare"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Automatisk rotering"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Lägg överst"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Lägg markerat fönster överst"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Avstånd som skrivbordet ska zoomas ut till vid växling av fönster"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Ikon"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Minimerat"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Skrivbordsplan"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Nästa fönster"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Nästa fönster (Alla fönster)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Nästa fönster (Ingen popup)"
+
+#: ../metadata/switcher.xml.in.h:20
+#, fuzzy
+msgid "Popup switcher if not visible and select next window"
+msgstr "Poppa upp fönsterväxlare om den inte är synlig och välj nästa fönster"
+
+#: ../metadata/switcher.xml.in.h:21
+#, fuzzy
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+"Poppa upp fönsterväxlare om den inte är synlig och välj nästa fönster utav "
+"alla fönster"
+
+#: ../metadata/switcher.xml.in.h:22
+#, fuzzy
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+"Poppa upp fönsterväxlare om den inte är synlig och välj föregående fönster"
+
+#: ../metadata/switcher.xml.in.h:23
+#, fuzzy
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+"Poppa upp fönsterväxlare om den inte är synlig och välj föregående "
+"fönsterutav alla fönster"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "Föregående diabild"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Föreg fönster"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Föreg fönster (Alla fönster)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Föreg fönster (Ingen popup)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Rotera till det valda fönstret under växling"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "Välj nästa fönster utan att visa popupfönstret"
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Välj föregående fönster utan att visa popupfönstret"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "Välj föregående fönster utan att visa popupfönstret"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "Visa ikon bredvid miniatyrbild"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Visa minimerade fönster"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Växlingshastighet"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Tidsintervall för växlare"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Växelfönster"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Fönster som ska bli visade i växlaren"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "Tillhandahåll \"YV12 colorspace\"-stöd"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Videouppspelning"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Videouppspelning"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 colorspace"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Lägg till rad"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Lägg till punkt"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Lägger till vatteneffekter till olika skrivbordsåtgärder"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Fördröjning (i ms) mellan varje regndroppe"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "Aktivera vatteneffekt för muspekare"
+
+# Rad eller linje? En bra fråga...
+#: ../metadata/water.xml.in.h:7
+#, fuzzy
+msgid "Line"
+msgstr "Rad"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Positionsskala"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Punkt"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Regnfördröjning"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Titelvåg"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Växla regn"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Växla regneffekt"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Växla vindrutetorkare"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Växla torkareffekt"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Vatteneffekt"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Vattenkompensationsskala"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Vågeffekt från fönstrets titellist"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Fokuseffekt"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Fokuseffekt för fönster"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Fokusera fönster"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Friktion"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Fånga fönster"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Rutnätsupplösning"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Inverterad fönsterfästning"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Skaka fönster"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Kopplingseffekt"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Kopplingseffekt för fönster"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Koppla fönster"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Maximeringseffekt"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "Maximal rutnätsstorlek"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "Minimal vertexrutnätsstorlek"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Flytta fönster"
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Skaka"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Invertera fästning"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Fäst fönster"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Fjäderfriktion"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "Fjäder K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Fjäderkonstant"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Växla fönsterfästning"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Använd fjädereffekt för fönstergeléeffekt"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Upplösning för vertexrutnät"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Fönster som ska dallra när de fokuseras"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Fönster som ska dallra när de fångas"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Fönster som ska dallra när de binds"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Fönster som ska dallra när de flyttas"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Geléeffekt vid maximering och avmaximering av fönster"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Geléaktiga fönster"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Filtrera linjärt"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Använd linjärt filter när inzoomad"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Zooma skrivbord"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Zooma in"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Zooma ut"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Zooma panorering"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Zoomhastighet"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Tidsintervall för zoom"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Zooma och panorera skrivbordskub"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Zoomfaktor"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Zooma panorering"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Kommandorad 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Kör kommando 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Kommandorad för skärmbild"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Kommandorad för skärmbild"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "Minska fönstret opacitet"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Öka fönsteropacitet"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "Opacitet värden för fönster som ska vara genomskinliga som standard"
+
+#~ msgid "Opacity windows"
+#~ msgstr "Opacitet fönster"
+
+#~ msgid "Background Images"
+#~ msgstr "Bakgrundsbilder"
+
+#~ msgid "Background images"
+#~ msgstr "Bakgrundsbilder"
+
+#~ msgid "Place windows on a plane"
+#~ msgstr "Placera fönster på ett plan"
+
+#~ msgid "Plane Down"
+#~ msgstr "Plana nedåt"
+
+#~ msgid "Plane Left"
+#~ msgstr "Plana åt vänster"
+
+#~ msgid "Plane Right"
+#~ msgstr "Plana åt höger"
+
+#~ msgid "Plane To Face 1"
+#~ msgstr "Plana till yta 1"
+
+#~ msgid "Plane To Face 10"
+#~ msgstr "Plana till yta 10"
+
+#~ msgid "Plane To Face 11"
+#~ msgstr "Plana till yta 11"
+
+#~ msgid "Plane To Face 12"
+#~ msgstr "Plana till yta 12"
+
+#~ msgid "Plane To Face 2"
+#~ msgstr "Plana till yta 2"
+
+#~ msgid "Plane To Face 3"
+#~ msgstr "Plana till yta 3"
+
+#~ msgid "Plane To Face 4"
+#~ msgstr "Plana till yta 4"
+
+#~ msgid "Plane To Face 5"
+#~ msgstr "Plana till yta 5"
+
+#~ msgid "Plane To Face 6"
+#~ msgstr "Plana till yta 6"
+
+#~ msgid "Plane To Face 7"
+#~ msgstr "Plana till yta 7"
+
+#~ msgid "Plane To Face 8"
+#~ msgstr "Plana till yta 8"
+
+#~ msgid "Plane To Face 9"
+#~ msgstr "Plana till yta 9"
+
+#~ msgid "Plane Up"
+#~ msgstr "Plana uppåt"
+
+#~ msgid "Plane down"
+#~ msgstr "Plana nedåt"
+
+#~ msgid "Plane left"
+#~ msgstr "Plana åt vänster"
+
+#~ msgid "Plane right"
+#~ msgstr "Plana åt höger"
+
+#~ msgid "Plane to face 1"
+#~ msgstr "Plana till yta 1"
+
+#~ msgid "Plane to face 10"
+#~ msgstr "Plana till yta 10"
+
+#~ msgid "Plane to face 11"
+#~ msgstr "Plana till yta 11"
+
+#~ msgid "Plane to face 12"
+#~ msgstr "Plana till yta 12"
+
+#~ msgid "Plane to face 2"
+#~ msgstr "Plana till yta 2"
+
+#~ msgid "Plane to face 3"
+#~ msgstr "Plana till yta 3"
+
+#~ msgid "Plane to face 4"
+#~ msgstr "Plana till yta 4"
+
+#~ msgid "Plane to face 5"
+#~ msgstr "Plana till yta 5"
+
+#~ msgid "Plane to face 6"
+#~ msgstr "Plana till yta 6"
+
+#~ msgid "Plane to face 7"
+#~ msgstr "Plana till yta 7"
+
+#~ msgid "Plane to face 8"
+#~ msgstr "Plana till yta 8"
+
+#~ msgid "Plane to face 9"
+#~ msgstr "Plana till yta 9"
+
+#~ msgid "Plane up"
+#~ msgstr "Plana uppåt"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Skrivbordsfönster opacitet toningstid"
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 0000000..ebd1bd8
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,3111 @@
+# Tamil message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2003 SuSE Linux AG.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2003-08-14 10:47+0200\n"
+"Last-Translator: xxx <yyy@example.org>\n"
+"Language-Team: Tamil <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+# IN
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "¯Õº¢Â"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "¯Õº¢Â"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "¯Õº¢Â"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "¯Õº¢Â"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "¯Õº¢Â"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+# IN
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+# IN
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+# IN
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "­ó¾¢Â¡"
+
+# IN
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+# IN
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+# IN
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+# IN
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+# IN
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+# ES
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "ͦÀ¢ý"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+# IN
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "­ó¾¢Â¡"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+# IN
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "­ó¾¢Â¡"
+
+# ES
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "ͦÀ¢ý"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+# ES
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "ͦÀ¢ý"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+# ES
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "ͦÀ¢ý"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "ͦÀ¢ý"
+
+# ES
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "ͦÀ¢ý"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "¯Õº¢Â"
+
+# ES
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "ͦÀ¢ý"
+
+# ES
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "ͦÀ¢ý"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..3d601fa
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,3569 @@
+# translation of compiz.po to
+# translation of compiz-new.po to
+# Turkish message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2002 SuSE Linux AG.
+# Copyright (C) 1999, 2000, 2001 SuSE GmbH.
+#
+# Görkem Çetin <gorkem@gelecek.com.tr>, 1999, 2000.
+# Mehmet Mıdık <mmidik@setra.net.tr>, 2000.
+# Metin Oral <moral@suse.de>, 2001.
+# Serdar Soytetir <tulliana@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: compiz-new\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2008-10-28 17:44+0100\n"
+"Last-Translator: Emre KURNAZ <kurnaz@yeacon.com.tr>\n"
+"Language-Team: <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 1.1.0\n"
+
+# clients/inst_sw_single.ycp:146
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Masaüstü"
+
+# clients/inst_sw_single.ycp:188
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Pencere Yönetimi"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Hiçbiri"
+
+# menuentries/menuentry_scanner.ycp:36
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "Gölgelendir"
+
+# clients/inst_target_part.ycp:387
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "Büyüt"
+
+# clients/inst_target_part.ycp:387
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Pencereyi Yatay Olarak Büyüt"
+
+# clients/inst_target_part.ycp:387
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Pencereyi Dikey Olarak Büyüt"
+
+# clients/inst_target_part.ycp:387
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Küçültülmüş"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Otomatik-Yükselt"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "Düşük"
+
+# clients/inst_sw_single.ycp:188
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Pencere Menüsü"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+"Bir pencerenin başlık çubuğu üzerinde fare tekeri ile yaptırılacak davranış."
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Bulanıklaştırma tipi"
+
+# include/partitioning/auto_part_ui.ycp:147
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity teması etkin pencere matlığı"
+
+# include/partitioning/auto_part_ui.ycp:147
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity teması etkin pencere matlık gölgesi"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity teması matlığı"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity teması matlık gölgesi"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+"Etkin pencereler ve Metacity tema dekorasyonları için kullanılacak matlık"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Metacity dekorasyonları için kullanılacak matlık"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Etkin pencereleri metacity dekorasyonu ile matlıktan şeffaflığa doğru gölgele"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Pencereleri metacity dekorasyonu ile matlıktan şeffaflığa doğru gölgele"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Başlık çubuğu fare tekeri davranışı"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Pencere dekorasyonları için kullanılacak bulanıklaştırma tipi"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Metacity teması kullan"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Pencere dekorasyonlarını oluştururken metacity temasını kullan"
+
+# clients/inst_target_part.ycp:404
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Pencereyi Kapat"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Pencereyi Büyütme"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Pencereyi Büyüt"
+
+# clients/inst_target_part.ycp:387
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Pencereyi Küçült"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Üstte Göster"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Yapıştır"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "Gölgelendirme"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Üstte Gösterme"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Yapıştırma"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Pencere \"%s\" yanıt vermiyor."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Bu uygulamayı kapatmaya zorlamak, kaydetmediğiniz değişiklikleri "
+"kaybetmenize neden olacaktır."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Kapatmaya Zorla"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Notlar"
+
+# include/security/ui.ycp:774
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Not Dolgu Rengi"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "Not Vurgu Rengi"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "Not eklentisi"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "Temizle"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Çiz"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Çizmek için kullanılacak araç"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Notlar için dolgu rengi"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "Başla"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "Not çizmeye başla"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "Not silmeye başla"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "Silmeye başla"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Satır genişliği"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Notlar için satır genişliği"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Notlar için vurgulama rengi"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Vurgu genişliği"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Notlar için vurgu genişliği"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4 kat Çift Doğrusal"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alpha Bulanıklaştırma"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Pencereleri alpha kanalı ile bulanıklaştır"
+
+# include/tv/ui.ycp:493
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "Bulanıklaştırma Filtresi"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "Bulanıklaştırma Emilimi"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "Bulanıklaştırma Doygunluğu"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "Bulanıklaştırma Hızı"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "Pencereleri Bulanıklaştır"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Pencerelerin saydam kısımlarının arkasını bulanıklaştır"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "Bulanıklaştırma doygunluğu"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "Pencereleri bulanıklaştır"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Odaklanmamış pencereleri bulanıklaştır"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Diğer pencereler tarafından örtülen ekran bölgelerini bulanıklaştırma"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Bulanıklaştırma işlemi için kullanılacak filtre"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "Odaklama Bulanıklaştırması"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "Odaklanan pencereleri bulanıklaştır"
+
+# RU
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Gaussian"
+
+# RU
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "Gaussian Yarıçapı"
+
+# /usr/lib/YaST2/keyboard_raw.ycp:638
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "Gaussian Sertliği"
+
+# RU
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "Gaussian yarıçapı"
+
+# /usr/lib/YaST2/keyboard_raw.ycp:638
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "Gaussian sertliği"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "Bağımsız doku getirmek"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap ayrıntı-düzeyi"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Darbe"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Darbe efekti"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+"Mümkün olduğunca çok bağımsız doku getirisi sağlamak için, müsait olan doku "
+"birimlerini kullan."
+
+# clients/inst_resize_ui.ycp:597
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "Pencere bulanıklaştırma hızı"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Odaklama bulanıklaştırmasından etkilenecek pencereler"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Öntanımlı olarak alpha bulanıklaştırması kullanan pencereler"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "Çıktı İkilemesi"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "İkileme seçimini başlat"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "Çıktı ikilemesi sağlayıcı"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Tetiklendiğinde komut0 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Tetiklendiğinde komut1 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Tetiklendiğinde komut10 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Tetiklendiğinde komut11 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Tetiklendiğinde komut2 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Tetiklendiğinde komut3 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Tetiklendiğinde komut4 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Tetiklendiğinde komut5 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Tetiklendiğinde komut6 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Tetiklendiğinde komut7 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Tetiklendiğinde komut8 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Tetiklendiğinde komut9 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Tetiklendiğinde komut0 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Tetiklendiğinde komut1 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Tetiklendiğinde komut10 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Tetiklendiğinde komut11 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Tetiklendiğinde komut2 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Tetiklendiğinde komut3 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Tetiklendiğinde komut4 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Tetiklendiğinde komut5 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Tetiklendiğinde komut6 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Tetiklendiğinde komut7 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Tetiklendiğinde komut8 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Tetiklendiğinde komut9 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Tetiklendiğinde komut0 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Tetiklendiğinde komut1 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Tetiklendiğinde komut10 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Tetiklendiğinde komut11 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Tetiklendiğinde komut2 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Tetiklendiğinde komut3 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Tetiklendiğinde komut4 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Tetiklendiğinde komut5 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Tetiklendiğinde komut6 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Tetiklendiğinde komut7 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Tetiklendiğinde komut8 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Tetiklendiğinde komut9 olarak tanımlanmış olan kabuk komutunu çalıştıracak "
+"bir kısayol birleşimi"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+# Kastedileni tam olarak anlayamadım. (drake)
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "Ölçeklendirme Kipine Geçen Düğme Bağlayıcıları"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "0. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "1. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "10. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "11. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "2. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "3. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "4. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "5. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "6. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "7. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "8. komut satırı"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "9. komut satırı"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "Komut0_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "Komut1_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "Komut10_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "Komut11_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "Komut2_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "Komut3_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "Komut4_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "Komut5_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "Komut6_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "Komut7_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "Komut8_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "Komut9_çalıştır çağrıldığında kabukta çalıştırılacak komut"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Komut"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "0. komutu çalıştır"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "1. komutu çalıştır"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "10. komutu çalıştır"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "11. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "2. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "3. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "4. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "5. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "6. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "7. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "8. komutu çalıştır"
+
+# clients/support_registration.ycp:66
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "9. komutu çalıştır"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Etkin Eklentiler"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Pencere dışındaki gözek haritalarına yönlendirilmemeleri için tam ekran "
+"pencerelerini germeye izin ver"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "İşitilebilir Zil"
+
+# include/partitioning/custom_part_dialogs.ycp:288
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "İşitilebilir sistem bip sesi"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Otomatik-Yükselt"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Otomatik-Yükselme Gecikmesi"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Çıktı aygıtlarını otomatik bul"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Tazeleme oranını otomatik bul"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "En iyi"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Odaklamak için Tıkla"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Pencereyi odaklamaya almak için tıkla"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Etkin pencereyi kapat"
+
+# include/tv/ui.ycp:398
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Öntanımlı Simge"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "Öntanımlı pencere simge resmi"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Masaüstü Küpü"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "Çıktıları Bul"
+
+# clients/inst_sw_single.ycp:1620
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "Tazeleme Oranını Bul"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "Kenar Tetikleme Gecikmesi"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Hızlı"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "Odaklanma Önleyici Seviyesi"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "Odaklanma Önleyici Pencereleri"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "Odaklanma önleyici pencereleri"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "Bağımsız çıkış boyamasına zorla"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Genel Seçenekler"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Genel compiz seçenekleri"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "İyi"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "Görev Çubuğu Pencerelerini Atlamayı Gizle"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "Tüm pencereleri gizle ve masaüstünü odakla"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+"Masaüstünü Göster Kipine geçerken görev çubuğunda olmayan pencereleri gizle"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "Yüksek"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "Yatay Sanal Boyut"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+"Eğer mümkünse, görüntülerden dönüştürülmüş dokular için sıkıştırma kullan"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "Büyütülünce ipuçlarını yoksay"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "Pencere büyütülmüşse boyut büyütmeyi ve ipuçlarını pasifleştir"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "Seçilen pencerelerin yükseltilmesinden önce geçecek süre"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "Ping mesajları arasında geçecek süre"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "Odaklanma çalınmasının önlenme seviyesi"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Aydınlatma"
+
+# include/scanner/scanner_functions.ycp:218
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Algılanan eklentilerin listesi"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "Çıktı aygıtlarını tanımlayan sözcüklerin listesi"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "Düşük"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "Pencereyi Alta Gönder"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "Pencereyi diğer pencerelerin altına gönder"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "Pencereyi Yatay Olarak Büyüt"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "Pencereyi Dikey Olarak Büyüt"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Etkin pencereyi büyüt"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Etkin pencereyi yatay olarak büyüt"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Etkin pencereyi dikey olarak büyüt"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Etkin pencereyi küçült"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Normal"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Masaüstü Sayısı"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Sanal masaüstü sayısı"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Kapalı"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "Ekran güncellemeyi sadece dikey boşaltma sürecinde yap"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "Çıktılar"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "Örtüşen Çıktı İşlemesi"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+"Çıktı aygıtları birbiriyle örtüşse dahi her çıktı aygıtını bağımsız olarak "
+"boya"
+
+# clients/hwinfo.ycp:71
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping Gecikmesi"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "Daha büyük çıktıyı tercih et"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "Daha küçük çıktıyı tercih et"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "Tıklayınca Yükselt"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Pencereyi Yükselt"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Süre bittiğinde seçilen pencereleri yükselt"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Pencereyi diğer pencerelerin üzerine yükselt"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Tıklayınca pencereleri yükselt"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Tazeleme Oranı"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "Yatay sanal boyut için ekran boyutu çoklayıcı"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "Dikey sanal boyut için ekran boyutu çoklayıcı"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Masaüstünü Göster"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Yavaş Animasyonlar"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Akıllı kip"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "Dikey Boşaltma ile Eşzamanla"
+
+# include/tv/ui.ycp:493
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "Doku Sıkıştırma"
+
+# include/tv/ui.ycp:493
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "Doku Filtresi"
+
+# include/tv/ui.ycp:493
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "Doku filtreleme"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "Ekranın yeniden çizilmesinde kullanılacak oran (tekrar sayısı/saniye)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "Pencereyi Büyüt / Küçült"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "Pencereyi Yatay Olarak Büyüt / Küçült"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "Pencereyi Dikey Olarak Büyüt / Küçült"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "Pencereyi Gölgele / Geri Yükle"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "Etkin pencereyi büyüt / geri yükle"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "Etkin pencereyi yatay olarak büyüt / geri yükle"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "Etkin pencereyi dikey olarak büyüt / geri yükle"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "Etkin pencereyi gölgele / geri yükle"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "Yavaş canlandırmaları aç / kapat"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "Etkin pencereyi büyütme"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "Tam Ekran Pencerelerin Yönlendirmesini Geri Al"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "Ekran boyutu değiştirildiğinde geçirgenlik ışığı kullan"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "Dikey Sanal Boyut"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "Çok Yüksek"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "Üst üste binen çıktı aygıtlarından hangisi tercih edilmeli"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "Pencere menüsü düğme bağlayıcısı"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "Pencere menüsü kısayol bağlayıcısı"
+
+# include/x11/resolution_dialog.ycp:81
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "Hızlandırma"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "Resmi Ayarla"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "Üst kapak resmini döndürmeye göre ayarla"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "Sonraki slayta ilerle"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "Arkaplanı Canlandır"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "Küpü döndürürken arkaplanı canlandır"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "Otomatik"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "Küpün taban ve tavan rengi"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "Gök kubbe-geri düşüş-eğiminin alttaki renk-durağında kullanılacak renk"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "Gök kubbe-geri düşüş-eğiminin üstteki renk-durağında kullanılacak renk"
+
+# include/security/ui.ycp:774
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Küp Rengi"
+
+# include/security/ui.ycp:774
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "Küp Rengi"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "Masaüstü Küpü"
+
+# include/x11/resolution_dialog.ycp:81
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "Katlama Hızlandırması"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "Katlama Hızı"
+
+# classnames.ycp:73
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "Katlama Zaman Aralığı"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "Yüksek kalitede ölçeklendirme için mümkün olduğunda mipmapler oluştur"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "Önceki slayta geri dön"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "Resim dosyaları"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "Arkaplan dokusu olarak kullanılacak resim"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "Küp şeffaflığını sadece döndürme işlemi fare ile yapılıyorsa başlatır."
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Küpün İçerisine Gir"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Küpün içerisine gir"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+"Küpün üst kapağı için hazırlanması gereken PNG ve SVG dosyalarının listesi"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "Çoklu Çıktı Kipi"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "Çoklu küp"
+
+# clients/inst_sw_single.ycp:1623
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "Sonraki Slayt"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "Tek büyük küp"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "Döndürme Sırasındaki Matlık"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Döndürülmezken Kullanılan Matlık"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Döndürme sırasında masaüstü penceresinin matlığı."
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "Döndürülmediği esnada masaüstü penceresinin matlığı."
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Pencereleri küp üzerine yerleştir"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "Önceki Slayt"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "Arkaplanı hazırla"
+
+# clients/inst_environment.ycp:306
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "Resmi boyutlandır"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "Küpün tavan yüzünü kaplamak için resimleri boyutlandır"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "Çoklu çıktı aygıtı kullanılırken küpün nasıl gösterileceğini seçer."
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Arkaplan"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Arkaplan Gradyan Bitim Rengi"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Arkaplan Gradyan Başlangıç Rengi"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Arkaplan Resmi"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Hız"
+
+# classnames.ycp:73
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "Süre aralığı"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Sadece Fare ile Döndürüldüğünde Şeffaflaştır"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "Katlamayı Geri Al"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "Küpü Katlamayı Geri Al"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus Denetim Altyapısı"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "Dekorasyon dokuları için mipmaplerin yaratılmalarına izin ver"
+
+# clients/support_registration.ycp:66
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "Komut"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "Pencere dekorasyonu"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+"Eğer hiçbir pencere dekorasyonu çalışmıyorsa çalıştırılacak dekoratör komut "
+"satırı"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Düşen gölge Yatay konumu"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Düşen gölge Dikey konumu"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Düşen gölge rengi"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Düşen gölge matlığı"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Düşen gölge yarıçapı"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Gölge Rengi"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "Gölge Konumu X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "Gölge Konumu Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "Gölge Matlığı"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "Gölge Yarıçapı"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "Pencereleri gölgelendir"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "Pencere Dekorasyonu"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "Pencere dekorasyonları"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "Dekorasyon kullanılması gereken pencereler"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "Gölge kullanılması gereken pencereler"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+# classnames.ycp:73
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Döndürme Hızı"
+
+# include/ui/common_messages.ycp:23
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Dikey (Y) Sınırlama"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "Tepki Vermeyen Pencreleri Donuklaştır"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+"Pencere yöneticisinin isteklerine yanıt vermeyen pencereleri donuklaştır"
+
+# clients/online_update.ycp:223
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "Solma Kipi"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "Küçültme /Açma /Kapatma durumunda Solsun"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "Solma Hızı"
+
+# clients/online_update.ycp:223
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "Solma Süresi"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "Küçültme /açma /kapatma olayarında solma efekti kullan"
+
+# include/partitioning/custom_part_dialogs.ycp:288
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "Sistem bip sesinde solma efekti açık"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+"Haritalandıklarında pencereler belirsin, haritalanmadıklarında kaybolsun"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "Pencereleri soldur"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "Solan Pencereler"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "Tam Ekran Görünür Zil"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "Sistem bip durumunda tam ekran solma efektini uygula"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "Tepki vermeyen pencerelerin doygunluğu (in %)"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "Tepki Vermeyen Pencere Parlaklığı"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "Tepki Vermeyen Pencere Doygunluğu"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "Görünür Zil"
+
+# clients/inst_resize_ui.ycp:597
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "Pencere solma kipi"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "Boyutlandırma kipinde boyutlandırılacak pencereler"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "Solması gereken pencereler"
+
+# clients/inst_custom_part.ycp:2928
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "Bağlanma Noktası"
+
+# clients/inst_custom_part.ycp:2928
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "Bağlanma noktası"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "Kullanıcı Alanı Dosya Sistemi"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "Kullanıcıya ait dosya sistemi"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf Denetim Arka Ucu"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib ana döngü desteği"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Bir konsol aç"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Çalıştırma Penceresi"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Uçbirim komut satırı"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "Ekran görüntüsü komut satırı"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "Ana Menüyü Göster"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Uygulama Çalıştırma Penceresini Göster"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Ana menüyü göster"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Ekran görüntüsü al"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Bir pencerenin ekran görüntüsünü al"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "Uçbirim komut satırı"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "Pencere ekran görüntüsü alma komutu"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "Ini Düz Dosya Arka Ucu"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "Dosya değişimi uyarı eklentisi"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig Denetim Arka Ucu"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "Küçültme Efekti"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "Pencereleri Küçült"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "Küçültme Hızı"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "Küçültme zaman aralığı"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "Gölgeleme Direnci"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "Gölgeleme direnci"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "Pencereleri küçültüldüklerinde ve geri yüklendiklerinde dönüştür"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "Küçültüldüklerinde ve geri yüklendiklerinde dönüştürülecek pencereler"
+
+# include/ui/common_messages.ycp:23
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "Dikey (Y) Sınırlama"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "Y eksenini çalışma alanı ile sınırla"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+"Taşıma işi bitirilene kadar pencerenin konumunu sunucu tarafında güncelleme"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "Pencereleri Taşımaya Başla"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "Tembel Konumlandırma"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "Pencereyi Taşı"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "Pencereyi taşı"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "Matlık"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "Taşınan pencerelerin matlık düzeyi"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+"Büyütülmüş pencereleri sürüklerken kopar ve otomatik olarak büyütülmemiş "
+"hale getir"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "Büyütülmüş pencerelerde koparma efekti kapalı"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "Pencereleri taşımaya başla"
+
+# classnames.ycp:50 classnames.ycp:59
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "Parlaklık"
+
+# classnames.ycp:50 classnames.ycp:59
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Parlaklık"
+
+# classnames.ycp:50 classnames.ycp:59
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Parlaklık"
+
+# classnames.ycp:50 classnames.ycp:59
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Parlaklık"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "Matlığı Düşür"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "Matlığı Arttır"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Matlık değiştirme adımı"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Matlık değiştirme adımı"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "Matlık Adımı"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Taşınan pencerelerin matlık düzeyi"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "Döndürme Sırasındaki Matlık"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "Doygunluk"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Doygunluk"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Doygunluk"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Doygunluk"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "Tepki vermeyen pencerelerin doygunluğu (in %)"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Pencere dekorasyonları"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Pencereleri matlaştır değerleri"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Pencereleri Haritala"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Öntanımlı olarak konumlandırılacak pencereler"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Öntanımlı olarak saydam olması gereken pencereler"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Öntanımlı olarak konumlandırılacak pencereler"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "Pencere yerleşimi için kullanılacak algoritma"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Basamakla"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "Ortalanmış"
+
+# clients/inst_sw_single.ycp:188
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Pencere Yönetimi"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "Pencerelerin Yetleşimini Zorla"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "Yatay masaüstü konumları"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "Çalışma Bölgesinde Kal"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "Pencereleri Yerleştir"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "Haritalandıklarında pencereleri belirli bir konuma yerleştir"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "Yerleştirme Kipi"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "Konumlandırılmış pencereler"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Rastgele"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "Çoklu çıktı aygıtı kullanılıyorken boyutlandırılmış pencereleri seçer."
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Akıllı"
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "Tüm çıktı aygıtları üzerinde"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "Çıktı aygıtını işaretçi ile kullan"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "Dikey masaüstü konumları"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "Masaüstüne konumlandırılacak pencereler"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "Pencere konumlandırma hızlı çözümleri"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "Öntanımlı olarak konumlandırılacak pencereler"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "Öntanımlı olarak belirli bir masaüstüne konumlandırılacak pencereler"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Pencere dekorasyonları"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "Hızlı Çözümler"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X Konumları"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X Görünüm Yüzü Konumları"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X konum değerleri"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y Konumları"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y Görünüm Yüzü Konumları"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y konum değerleri"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png resim yükleyici"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "Düzenli İfade Eşlemesi"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "Düzenli ifade pencere eşlemesi"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+# include/security/ui.ycp:774
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "Kenarlık Rengi"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+"Taslak görünümü ve dikdörtgen yeniden boyutlandırma kipinde kullanılacak "
+"kenarlık rengi"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "Öntanımlı Yeniden Boyutlandırma Kipi"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "Pencereleri yeniden boyutlandırmak için kullanılacak öntanımlı kip"
+
+# include/security/ui.ycp:774
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "Dolgu Rengi"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "Dolgu rengi dikdörtgen şeklinde yeniden boyutlandırmada kullanılır"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "Normal Yeniden Boyutlandırmaya Başla"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "Taslak Göstererek Yeniden Boyutlandırmaya Başla"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "Dikdörtgen Yeniden Boyutlandırmaya Başla"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "Gergin Yeniden Boyutlandırmaya Başla"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "Pencereyi Yeniden Boyutlandırmaya Başla"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "Pencereleri Normal Şekilde Yeniden Boyutlandır"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "Taslak"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "Yeniden Boyutlandırmada Taslak Göster"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "Dikdörtgen"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "Pencereleri Dikdörtgen Şeklinde Yeniden Boyutlandır"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "Pencereyi Yeniden Boyutlandır"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "Pencereyi yeniden boyutlandır"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "Pencereyi yeniden boyutlandırmaya başla"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "Pencereyi esneterek yeniden boyutlandırmaya başla"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "Pencereyi normal şekilde yeniden boyutlandırmaya başla"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "Pencereyi taslak göstererek yeniden boyutlandırmaya başla"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "Pencereyi dikdörtgen şeklinde yeniden boyutlandırmaya başla"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "Gergin"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "Pencereleri Gergin Şekilde Yeniden Boyutlandır"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "Normal yeniden boyutlandırma kullanılacak pencereler"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "Taslak görünümünde yeniden boyutlandırma kullanılacak pencereler"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "Dikdörtgen yeniden boyutlandırma kullanılacak pencereler"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "Gerginlik kullanılarak yeniden boyutlandırma kullanılacak pencereler"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+# clients/online_update.ycp:223
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "Çevirme Zamanı"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+# include/cups/ui.ycp:541
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "İşaretçi Hassasiyeti"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "Döndürürken Yüksel"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "Döndürülürken pencereleri yükselt"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "Küpü Döndür"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "Döndürürken Sola Çevir"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "Döndürürken Sağa Çevir"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "Sola Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "Pencere ile birlikte Sola Döndür"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "Sağa Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "Pencere ile birlikte Sağa Döndür"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "Buraya Döndür"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "1. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "1. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "10. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "10. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "11. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "11. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "12. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "12. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "2. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "2. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "3. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "3. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "4. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "4. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "5. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "5. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "6. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "6. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "7. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "7. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "8. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "8. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "9. Yüze Döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "9. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Küpü Döndür"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "Masaüstü küpünü döndür"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "Sola döndür"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "Sola döndür ve etkin pencereyi getir"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "Sağa döndür"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "Sağa döndür ve etkin pencereyi getir"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "1. yüze döndür ve etkin pencereyi yerleştir"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "1. Yüze Pencere ile Döndür"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "1. yüze döndür ve etkin pencereyi yerleştir"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "1. yüze döndür "
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "10. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "10. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "11. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "11. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "12. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "12. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "2. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "2. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "3. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "3. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "4. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "4. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "5. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "5. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "6. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "6. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "7. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "7. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "8. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "8. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "9. yüze döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "9. yüze döndür ve etkin pencereyi yerleştir"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "Masaüstüne döndür"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "Pencereyi döndür"
+
+# include/nis_server/io.ycp:465
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "Pencere ile birlikte döndür"
+
+# include/x11/resolution_dialog.ycp:81
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "Döndürme Hızlandırması"
+
+# classnames.ycp:73
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "Döndürme Hızı"
+
+# classnames.ycp:73
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "Döndürme zaman aralığı"
+
+# classnames.ycp:73
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "Döndürme Büyütmesi"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "İşaretçi hareketinin hassaslığı"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+# include/ui/wizard_hw.ycp:51
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "Döndürmeyi Başlat"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "Masaüstü değiştirme zamanaşımı"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "Büyüt"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "Yüzde olarak matlık miktarı"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Büyük"
+
+# Kastedileni tam olarak anlayamadım. (drake)
+#: ../metadata/scale.xml.in.h:6
+#, fuzzy
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "Ölçeklendirme Kipine Geçen Düğme Bağlayıcıları"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "Masaüstünü Göstermek için Masaüstüne Tıkla"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "Arkaplanı Koyulaştır"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "Pencereleri yeniden boyutlandırırken arkaplanı koyulaştır"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "Simge"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+"Boyutlandırma sırasında masaüstüne tıklanırsa Masaüstünü Göster kipine geç"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "Üzerine Gelme Süresi"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "Pencere Tutucuyu Başlat"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "Tüm Pencereler için Pencere Yakalayıcıyı Başlat"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "Pencere Grubu için Pencere Yakalayıcıyı Başlat"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Geçerli Çıktıyı Kullanan Pencereler için Pencere Yakalayıcıyı Başlat"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "Tüm pencereleri yerleştir ve dönüştür"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "Pencere grubunu yerleştir ve dönüştür"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "Pencereleri yerleştir ve dönüştür"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "Geçerli çıktıyı kullanan pencereleri yerleştir ve dönüştür"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "Tüm çıktı aygıtları üzerinde"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "Sadece geçerli çıktı aygıtı üzerinde"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "Örtülü Durum Simgesi"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "Boyutlandırılan pencerelerin üzerinde simge göster"
+
+# menuentries/menuentry_scanner.ycp:36
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "Boyutlandır"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "Pencereleri Boyutlandır"
+
+# clients/inst_environment.ycp:306
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "Boyutlandırma hızı"
+
+# clients/inst_environment.ycp:306
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "Boyutlandırma zamanı basamağı"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "Pencereleri boyutlandır"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "Çoklu çıktı aygıtı kullanılıyorken boyutlandırılmış pencereleri seçer."
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "Pencereler arasında bırakılacak boşluk"
+
+# /usr/lib/YaST2/keyboard_raw.ycp:200
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "Aralık"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+"Bir pencerenin üzerindeyken boyutlandırma kipi bitirilmeden önce geçmesi "
+"gereken süre (ms olarak)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "Boyutlandırma kipinde boyutlandırılacak pencereler"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "Ekran görüntüsünü otomatik olarak bu uygulama ile aç"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "Dizin"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "Dikdörtgen ekran görüntüsünü başlat"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "Uygulamayı Başlat"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "Ekran görüntülerini bu dizine kaydet"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "Ekran Görüntüsü"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "Ekran görüntüsü yakalama eklentisi"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg resim yükleyici"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "Yüzde olarak parlaklık miktarı"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "Yüzde olarak doygunluk miktarı"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "Uygulama Seçici"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "Otomatik Döndür"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "Öne Getir"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "Seçilen pencereyi öne getir"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "Masaüstünün pencereler değiştirilirken uzaklaştırılacağı mesafe"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "Simge"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "Küçültülmüş"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "Sonraki Panel"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Sonraki pencere"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Sonraki pencere (Tüm pencereler)"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Sonraki pencere (Açılabilir pencere yok)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "Önceki Panel"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "Önceki pencere"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "Önceki pencere (Tüm pencereler)"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "Önceki pencere (Açılabilir pencere yok)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "Değiştirirken seçilen pencereyi döndür"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "Küçültülmüş pencereleri göster"
+
+# clients/inst_environment.ycp:306
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "Değiştirici hızı"
+
+# clients/inst_environment.ycp:306
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "Değiştirici zaman aralığı"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "Pencere değiştirici"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "Değiştiricide gösterilmesi gereken pencereler"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "YV12 renklerini destekle"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "Video Oynat"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "Video oynat"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12 renkleri"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "Çizgi ekle"
+
+# clients/inst_custom_part.ycp:2928
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "Nokta ekle"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "Değişik masaüstü hareketlerine su efekti ekler"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "Yağmur damlaları arasında geçecek süre (ms olarak)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "İşaretçi su efektini etkinleştir"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Satır"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "Yerleşim Boyutu"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Nokta"
+
+# clients/hwinfo.ycp:71
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "Yağmur Gecikmesi"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "Pencere başlığı dalgası"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "Yağmuru aç / kapat"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "Yağmur efektini aç / kapat"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "Siliciyi aç /kapat"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "Siliciyi efektini aç /kapat"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Su Efekti"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "Su yerleşim boyutu"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "Pencere başlığı dalga efekti"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "Odaklama Efekti"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "Pencere Odaklama Efekti"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "Pencereleri Odakla"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "Sürtünme"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "Pencereleri Yakala"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "Izgara Çözünürlüğü"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "Ters çevrilmiş pencere koparma efekti"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "Pencereyi titret"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "Haritalama Efekti"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "Pencere Haritalama Efekti"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "Pencereleri Haritala"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "Büyütme Efekti"
+
+# clients/ui_widgets.ycp:182 clients/ui_widgets.ycp:210
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "En Küçük Izgara Boyutu"
+
+# clients/ui_widgets.ycp:182 clients/ui_widgets.ycp:210
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "En Küçük Tepe Izgara Boyutu"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "Pencereleri Taşı"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "Titreme"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "Ters Çevrilmiş Şekilde Kopar"
+
+# clients/inst_target_part.ycp:387
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "Pencereleri kopar"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "Sıçrama Sürtünmesi"
+
+# clients/hwinfo.ycp:104
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "K Sıçraması"
+
+# clients/hwinfo.ycp:104
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "Sıçrama Sabiti"
+
+# clients/inst_target_part.ycp:404
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "Pencere koparma efektini aç / kapat"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "Sallanan pencere efekti için esneklik modelini kullan"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "Tepe Izgara Çözünürlüğü"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "Odaklandığında sallanacak pencereler"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "Yakalandığında sallanacak pencereler"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "Haritalandığında sallanacak pencereler"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "Taşındığında sallanacak pencereler"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Büyütülmüş ve büyütülmemiş durumdaki pencereler için sallanma efekti"
+
+# clients/inst_resize_ui.ycp:688
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "Sallanan Pencereler"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "Doğrusal Filtrele"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "Büyütüldüğünde doğrusal filtreleme kullan"
+
+# clients/inst_sw_single.ycp:146
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "Masaüstünü Büyüt"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Büyüt"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "Küçült"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "Büyüterek Görüntü Bindirme"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "Büyütme Hızı"
+
+# classnames.ycp:73
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "Büyütme Zamanı Basamağı"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "Masaüstü küpünü büyüt ve görüntüsünü bindir"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "Büyütme aralığı"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "Büyüt ve görüntüyü bindir"
+
+# clients/support_registration.ycp:66
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "1. komut satırı"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "1. komutu çalıştır"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Ekran görüntüsü komut satırı"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Ekran görüntüsü komut satırı"
+
+# include/partitioning/auto_part_ui.ycp:147
+#~ msgid "Decrease window opacity"
+#~ msgstr "Pencere matlığını düşür"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "Pencere matlığını arttır"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr ""
+#~ "Öntanımlı olarak saydam olması gereken, pencereler için matlık değerleri"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Opacity windows"
+#~ msgstr "Pencereleri matlaştır"
+
+#~ msgid "Background Images"
+#~ msgstr "Arkaplan Resimleri"
+
+#~ msgid "Background images"
+#~ msgstr "Arkaplan resimleri"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Place windows on a plane"
+#~ msgstr "Pencereleri bir uçağın üzerine koy"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Plane Down"
+#~ msgstr "Aşağıya Uçur"
+
+#~ msgid "Plane Left"
+#~ msgstr "Sola Uçur"
+
+#~ msgid "Plane Right"
+#~ msgstr "Sağa Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 1"
+#~ msgstr "1. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 10"
+#~ msgstr "10. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 11"
+#~ msgstr "11. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 12"
+#~ msgstr "12. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 2"
+#~ msgstr "2. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 3"
+#~ msgstr "3. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 4"
+#~ msgstr "4. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 5"
+#~ msgstr "5. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 6"
+#~ msgstr "6. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 7"
+#~ msgstr "7. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 8"
+#~ msgstr "8. Yüze Uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane To Face 9"
+#~ msgstr "9. Yüze Uçur"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Plane Up"
+#~ msgstr "Yukarıya Uçur"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Plane down"
+#~ msgstr "Aşağıya Uçur"
+
+#~ msgid "Plane left"
+#~ msgstr "Sola uçur"
+
+#~ msgid "Plane right"
+#~ msgstr "Sağa uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 1"
+#~ msgstr "1. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 10"
+#~ msgstr "10. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 11"
+#~ msgstr "11. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 12"
+#~ msgstr "12. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 2"
+#~ msgstr "2. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 3"
+#~ msgstr "3. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 4"
+#~ msgstr "4. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 5"
+#~ msgstr "5. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 6"
+#~ msgstr "6. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 7"
+#~ msgstr "7. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 8"
+#~ msgstr "8. yüze uçur"
+
+# include/nis_server/io.ycp:465
+#~ msgid "Plane to face 9"
+#~ msgstr "9. yüze uçur"
+
+# clients/inst_target_part.ycp:404
+#~ msgid "Plane up"
+#~ msgstr "Uçur"
+
+#~ msgid "Desktop Window Opacity Fade Time."
+#~ msgstr "Masaüstü Penceresinin Matlığının Solma Zamanı."
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..b58b88d
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,3800 @@
+# Ukrainian message file for YaST2 (@memory@).
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# Copyright (C) 2005 SUSE Linux Products GmbH.
+# xxx, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: YaST (@memory@)\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2008-12-21 16:00+0100\n"
+"Last-Translator: Andriy Golovin <andygol@ua.fm>\n"
+"Language-Team: Ukrainian <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "Стільниця"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "Керування вікнами"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "Нема"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+#, fuzzy
+msgid "Shade"
+msgstr "Затьмарити"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+#, fuzzy
+msgid "Maximize"
+msgstr "Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "Розгорнути активне вікно за горизонталлю"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "Розгорнути активне вікно за вертикаллю"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "Windows"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "Авто-піднесення"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "Меню вікна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "Дія коли крутять колесо миші на заголовку вікна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "Тип розмивання"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Прозорість активного вікна теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Затьмарення прозорості активного вікна теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Прозорість теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Затьмарення прозорості теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "Прозорість активних вікон у вигляді теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "Прозорість при використанні декорацій теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+"Затьмарювати активні вікна з темою metacity від непрозорого до прозорого"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+"Затьмарювати активні вікна з темою metacity від непрозорого до прозорого"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "Дія, коли скроллер миші на заголовку вікна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "Тип розмивання, що використовується для декорації вікна"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "Використовувати теми metacity"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "Використовувати теми metacity для малювання декорації вікна "
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "Закрити вікно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "Відновити розмір вікна"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "Розгорнути вікно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "Згорнути вікно"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "Винести нагору"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "Приклеїти"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+#, fuzzy
+msgid "Unshade"
+msgstr "Просвітлити"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "Відмінити винесення нагору"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "Відклеїти"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "Вікно \"%s\" не відкликається."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+"Примусове завершення програми призведе до втрати всіх незбережених змін."
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "_Примусове завершення"
+
+# http://dict.linux.org.ua/db/table_adv.php?word=annotate
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "Коментар"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "Колір коментарю"
+
+#: ../metadata/annotate.xml.in.h:3
+#, fuzzy
+msgid "Annotate Stroke Color"
+msgstr "Колір риски примітки"
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Надставка «примітки»"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "Очистити"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "Малювати"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "Малювати з використанням інструменту"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "Колір заповнення для анотації"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Початок"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Початок малювання примітки"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Початок видалення примітки"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Початок видалення"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "Ширина лінії"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "Ширина лінії для приміток"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "Колір риски для приміток"
+
+# треба уточнити
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "Ширина риски"
+
+# треба уточнити
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "Ширина риски для приміток"
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "Фільтр: "
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "Розмивання по альфа каналу"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "Розмивання вікна по альфа каналу"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "Фільтр розмивання"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Залишити не розмитим"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Насиченість розмивання"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "Швидкість розмивання"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "Розмивання вікон"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "Розмивання поза напівпрозорими частинами вікон"
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Насиченість розмивання"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Розмивання вікон"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "Розмивання вікон, які не мають фокусу"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "Вимкнути розмивання на тьмяних ділянках екрану інших вікон"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "Фільтр методу, який використовується для розмивання"
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "Центр розмивання"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Центр розмивання вікон"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "Гаусів"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "Радіуси розмивання"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "Сила розмивання"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "Гаусові радіуси"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "Gaussian Strength"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+#, fuzzy
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Рівень деталізації Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Деталізація Mipmap"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "Пульс"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "Ефект пульсації"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Швидкість розмивання вікна"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "Вікна, на які впливає ефект розмивання"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "Вікна, для який використовується альфа розмивання за замовчуванням "
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "Клонувати Вивід"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Почати клонування позначеного"
+
+#: ../metadata/clone.xml.in.h:4
+#, fuzzy
+msgid "Output clone handler"
+msgstr "Вивести програму оброблення клонування"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command0"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command1"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command10"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command11"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command2"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command3"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command4"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command5"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command6"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command7"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command8"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command9"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command0"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command1"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command10"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command11"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command2"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command3"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command4"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command5"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command6"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command7"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command8"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command9"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command0"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command1"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command10"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command11"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command2"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command3"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command4"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command5"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command6"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command7"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command8"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+"Комбінація клавіш, при натисненні якої буде виконана команда оболонки, "
+"визначена як command9"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "Команда 0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "Команда 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "Команда 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "Команда 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "Команда 12"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "Команда 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "Команда 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "Команда 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "Команда 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "Команда 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "Команда 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "Команда 9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Команда \"%1\""
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Команда \"%1\""
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Команда \"%1\""
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Команда \"%1\""
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Команда: "
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Команда: "
+
+# Додаток - це application, plugin, IMHO - це модуль
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "Активні надставки"
+
+#: ../metadata/core.xml.in.in.h:2
+#, fuzzy
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+"Дозволити використання повного вікна, яби не бути перенаправленим у "
+"offscreen pixmaps"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "Звуковий сигнал"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "Системний звуковий сигнал"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "Авто-піднесення"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "Затримка Авто-піднесення"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "Автоматичне виявлення пристроїв виводу"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "Автоматичне визначення частоти поновлювання"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "Кращій"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "Клацніть для отримання Фокусу"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "Клацання на вікні переведе фокус вводу на нього"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "Закрити активне вікно"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "Типовий Значок"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "Робоча станція"
+
+#: ../metadata/core.xml.in.in.h:17
+#, fuzzy
+msgid "Detect Outputs"
+msgstr "Визначити вивід"
+
+#: ../metadata/core.xml.in.in.h:18
+#, fuzzy
+msgid "Detect Refresh Rate"
+msgstr "Визначити швидкість оновлення"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "Швидко"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "Загальні Налаштування"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "Загальні налаштування Compiz"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "Добре"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+#, fuzzy
+msgid "Horizontal Virtual Size"
+msgstr "Уявний розмір за горизонталлю"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "Світловий ефект"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "Перелік активних надставок"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+#, fuzzy
+msgid "Lower Window"
+msgstr "Windows"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "Розгорнути активне вікно"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "Розгорнути активне вікно за горизонталлю"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "Розгорнути активне вікно за вертикаллю"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "Згорнути активне вікно"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "Нормальний"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "Кількість Стільниць"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "Кількість віртуальних стільниць"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "Вимкнути"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+#, fuzzy
+msgid "Outputs"
+msgstr "Вивід був"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "Затримка"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "Підняти вікно"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "Підняти позначене вікно із затримкою"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "Підняти вікно поверх інших вікон"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "Піднімати вікна клацанням"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "Частота поновлювання"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "Показати стільницю"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "Повільна анімація"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "Інтелектуальний режим"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "&Вказати фільтр"
+
+#: ../metadata/core.xml.in.in.h:81
+#, fuzzy
+msgid "Texture Filter"
+msgstr "&Вказати фільтр"
+
+#: ../metadata/core.xml.in.in.h:82
+#, fuzzy
+msgid "Texture filtering"
+msgstr "&Вказати фільтр"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+#, fuzzy
+msgid "Vertical Virtual Size"
+msgstr "Віртуальні користувачі"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+#, fuzzy
+msgid "Acceleration"
+msgstr "Прискорення 3D:"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+#, fuzzy
+msgid "Advance to next slide"
+msgstr "Додаткові параметри"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Автоматично"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "Кольори"
+
+#: ../metadata/cube.xml.in.h:14
+#, fuzzy
+msgid "Cube Color"
+msgstr "Кольори"
+
+#: ../metadata/cube.xml.in.h:15
+#, fuzzy
+msgid "Desktop Cube"
+msgstr "Робоча станція"
+
+#: ../metadata/cube.xml.in.h:16
+#, fuzzy
+msgid "Fold Acceleration"
+msgstr "Прискорення 3D:"
+
+#: ../metadata/cube.xml.in.h:17
+#, fuzzy
+msgid "Fold Speed"
+msgstr "Вибрано"
+
+#: ../metadata/cube.xml.in.h:18
+#, fuzzy
+msgid "Fold Timestep"
+msgstr "Тест"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+#, fuzzy
+msgid "Go back to previous slide"
+msgstr "&Попередн."
+
+#: ../metadata/cube.xml.in.h:21
+#, fuzzy
+msgid "Image files"
+msgstr "Файл ISO-штампа"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "Всередині куба"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "Показує віртуальні стільниці із середини куба"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+#, fuzzy
+msgid "Next Slide"
+msgstr "Наступне оновлення"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "Всередині куба"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "Кінцевий колір ґрадієнту неба"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "Початковий колір ґрадієнту неба"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "Розмістити вікна на кубі"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "&Попередн."
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+#, fuzzy
+msgid "Scale image"
+msgstr "місцевий час"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "Небо"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "Кінцевий колір ґрадієнту неба"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "Початковий колір ґрадієнту неба"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "Зображення неба"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "Швидкість"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+#, fuzzy
+msgid "Timestep"
+msgstr "Тест"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "Прозорий тільки при повертанні мишею"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Команда: "
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Windows"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "Команда декоратора (якщо декоратор не запущений)"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "Зміщення тіні по X"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "Зміщення тіні по Y"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "Колір тіні"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "Непрозорість тіні"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "Радіус тіні"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "Колір тіні"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+#, fuzzy
+msgid "Shadow Opacity"
+msgstr "Радіус"
+
+#: ../metadata/decoration.xml.in.h:15
+#, fuzzy
+msgid "Shadow Radius"
+msgstr "Радіус"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Windows"
+
+#: ../metadata/decoration.xml.in.h:17
+#, fuzzy
+msgid "Window Decoration"
+msgstr "Без опису"
+
+#: ../metadata/decoration.xml.in.h:18
+#, fuzzy
+msgid "Window decorations"
+msgstr "Параметри ypbind"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Тест"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "Містить"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Windows"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "Реальний час"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+#, fuzzy
+msgid "Fade Speed"
+msgstr "Вибрано"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "Реальний час"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+#, fuzzy
+msgid "Fade effect on system beep"
+msgstr "Файлова система"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Windows"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Windows"
+
+#: ../metadata/fade.xml.in.h:16
+#, fuzzy
+msgid "Fullscreen Visual Bell"
+msgstr "Сенсорний екран"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Windows"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "Додати контакт"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "Додати контакт"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "Відкрити термінал"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "Діалог пуску "
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Команда \"%1\""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "&Показувати Головне меню"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "Показати діалог запуску застосунків"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "Показувати головне меню"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "Зробити «знімок»"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "Зробити «знімок» вікна"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "Нічого не записувати в журнал"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "Нічого не записувати в журнал"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+#, fuzzy
+msgid "Minimize Effect"
+msgstr "Windows"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "Windows"
+
+#: ../metadata/minimize.xml.in.h:3
+#, fuzzy
+msgid "Minimize speed"
+msgstr "Windows"
+
+#: ../metadata/minimize.xml.in.h:4
+#, fuzzy
+msgid "Minimize timestep"
+msgstr "Windows"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+#, fuzzy
+msgid "Constrain Y"
+msgstr "Містить"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+#, fuzzy
+msgid "Initiate Window Move"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/move.xml.in.h:6
+#, fuzzy
+msgid "Move Window"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/move.xml.in.h:7
+#, fuzzy
+msgid "Move window"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+#, fuzzy
+msgid "Opacity"
+msgstr "Windows"
+
+#: ../metadata/move.xml.in.h:9
+#, fuzzy
+msgid "Opacity level of moving windows"
+msgstr "Windows"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+#, fuzzy
+msgid "Snapoff maximized windows"
+msgstr "Windows"
+
+#: ../metadata/move.xml.in.h:12
+#, fuzzy
+msgid "Start moving window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+#, fuzzy
+msgid "Brightness"
+msgstr "Міст"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "Міст"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "Міст"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "Міст"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:11
+#, fuzzy
+msgid "Opacity Step"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Тривалість"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Тривалість"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Тривалість"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Тривалість"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "Параметри ypbind"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Windows"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "Вікна, для який використовується альфа розмивання за замовчуванням "
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "Вікна, для який використовується альфа розмивання за замовчуванням "
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "Вікна, для який використовується альфа розмивання за замовчуванням "
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "Каскад"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "У центрі"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "Керування вікнами"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Windows"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "Віртуальні користувачі"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+#, fuzzy
+msgid "Place Windows"
+msgstr "Windows"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "Випадковий"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "Розумний"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "Віртуальні користувачі"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/place.xml.in.h:24
+#, fuzzy
+msgid "Window placement workarounds"
+msgstr "Параметри ypbind"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "Параметри ypbind"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+#, fuzzy
+msgid "Workarounds"
+msgstr "&Робоча група"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "Віртуальні користувачі"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "Пересунути в&низ"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "Віртуальні користувачі"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "Кольори"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "Кольори"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "Кольори"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:19
+#, fuzzy
+msgid "Resize Window"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:20
+#, fuzzy
+msgid "Resize window"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:21
+#, fuzzy
+msgid "Start resizing window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "Windows"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+#, fuzzy
+msgid "Flip Time"
+msgstr "Реальний час"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+#, fuzzy
+msgid "Pointer Invert Y"
+msgstr "Огляд принтера"
+
+#: ../metadata/rotate.xml.in.h:15
+#, fuzzy
+msgid "Pointer Sensitivity"
+msgstr "Опис &принтера"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+#, fuzzy
+msgid "Rotate Cube"
+msgstr "Віддалена підмережа"
+
+#: ../metadata/rotate.xml.in.h:19
+#, fuzzy
+msgid "Rotate Flip Left"
+msgstr "Праворуч"
+
+#: ../metadata/rotate.xml.in.h:20
+#, fuzzy
+msgid "Rotate Flip Right"
+msgstr "Праворуч"
+
+#: ../metadata/rotate.xml.in.h:21
+#, fuzzy
+msgid "Rotate Left"
+msgstr "Віддалена підмережа"
+
+#: ../metadata/rotate.xml.in.h:22
+#, fuzzy
+msgid "Rotate Left with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:23
+#, fuzzy
+msgid "Rotate Right"
+msgstr "Праворуч"
+
+#: ../metadata/rotate.xml.in.h:24
+#, fuzzy
+msgid "Rotate Right with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Віддалена підмережа"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:28
+#, fuzzy
+msgid "Rotate To Face 10"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:29
+#, fuzzy
+msgid "Rotate To Face 10 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:30
+#, fuzzy
+msgid "Rotate To Face 11"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:31
+#, fuzzy
+msgid "Rotate To Face 11 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:32
+#, fuzzy
+msgid "Rotate To Face 12"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:33
+#, fuzzy
+msgid "Rotate To Face 12 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:34
+#, fuzzy
+msgid "Rotate To Face 2"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:35
+#, fuzzy
+msgid "Rotate To Face 2 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:36
+#, fuzzy
+msgid "Rotate To Face 3"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:37
+#, fuzzy
+msgid "Rotate To Face 3 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:38
+#, fuzzy
+msgid "Rotate To Face 4"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:39
+#, fuzzy
+msgid "Rotate To Face 4 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:40
+#, fuzzy
+msgid "Rotate To Face 5"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:41
+#, fuzzy
+msgid "Rotate To Face 5 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:42
+#, fuzzy
+msgid "Rotate To Face 6"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:43
+#, fuzzy
+msgid "Rotate To Face 6 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:44
+#, fuzzy
+msgid "Rotate To Face 7"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:45
+#, fuzzy
+msgid "Rotate To Face 7 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:46
+#, fuzzy
+msgid "Rotate To Face 8"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:47
+#, fuzzy
+msgid "Rotate To Face 8 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:48
+#, fuzzy
+msgid "Rotate To Face 9"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:49
+#, fuzzy
+msgid "Rotate To Face 9 with Window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Віддалена підмережа"
+
+#: ../metadata/rotate.xml.in.h:51
+#, fuzzy
+msgid "Rotate desktop cube"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:52
+#, fuzzy
+msgid "Rotate left"
+msgstr "Віддалена підмережа"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:54
+#, fuzzy
+msgid "Rotate right"
+msgstr "Праворуч"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:60
+#, fuzzy
+msgid "Rotate to face 10"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:61
+#, fuzzy
+msgid "Rotate to face 10 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:62
+#, fuzzy
+msgid "Rotate to face 11"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:63
+#, fuzzy
+msgid "Rotate to face 11 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:64
+#, fuzzy
+msgid "Rotate to face 12"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:65
+#, fuzzy
+msgid "Rotate to face 12 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:66
+#, fuzzy
+msgid "Rotate to face 2"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:67
+#, fuzzy
+msgid "Rotate to face 2 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:68
+#, fuzzy
+msgid "Rotate to face 3"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:69
+#, fuzzy
+msgid "Rotate to face 3 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:70
+#, fuzzy
+msgid "Rotate to face 4"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:71
+#, fuzzy
+msgid "Rotate to face 4 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:72
+#, fuzzy
+msgid "Rotate to face 5"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:73
+#, fuzzy
+msgid "Rotate to face 5 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:74
+#, fuzzy
+msgid "Rotate to face 6"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:75
+#, fuzzy
+msgid "Rotate to face 6 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:76
+#, fuzzy
+msgid "Rotate to face 7"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:77
+#, fuzzy
+msgid "Rotate to face 7 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:78
+#, fuzzy
+msgid "Rotate to face 8"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:79
+#, fuzzy
+msgid "Rotate to face 8 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:80
+#, fuzzy
+msgid "Rotate to face 9"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:81
+#, fuzzy
+msgid "Rotate to face 9 and bring active window along"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:82
+#, fuzzy
+msgid "Rotate to viewport"
+msgstr "Обернути екран"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "XF86RotateWindows"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Прискорення 3D:"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Тест"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Тест"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Тест"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Дата початку"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "Великий"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+#, fuzzy
+msgid "Darken Background"
+msgstr "Тло"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/scale.xml.in.h:15
+#, fuzzy
+msgid "Initiate Window Picker For All Windows"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/scale.xml.in.h:16
+#, fuzzy
+msgid "Initiate Window Picker For Window Group"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/scale.xml.in.h:17
+#, fuzzy
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "Початковий диск RAM"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+#, fuzzy
+msgid "Scale"
+msgstr "Сканер"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "Windows"
+
+#: ../metadata/scale.xml.in.h:33
+#, fuzzy
+msgid "Scale speed"
+msgstr "місцевий час"
+
+#: ../metadata/scale.xml.in.h:34
+#, fuzzy
+msgid "Scale timestep"
+msgstr "місцевий час"
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Windows"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Windows"
+
+#: ../metadata/scale.xml.in.h:38
+#, fuzzy
+msgid "Spacing"
+msgstr "Іспанія"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+#, fuzzy
+msgid "Automatically open screenshot in this application"
+msgstr "Автоматично запускати аплет при вході в систему"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "Каталог\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Вибір відеорежиму"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "Запуск програми"
+
+#: ../metadata/screenshot.xml.in.h:6
+#, fuzzy
+msgid "Put screenshot images in this directory"
+msgstr "Рекурсивний вхід в каталог"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "Екран"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "Помилка розбору командного рядка."
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+#, fuzzy
+msgid "Application Switcher"
+msgstr "Порядок програм"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Автоматично"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Під час завантаження"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+#, fuzzy
+msgid "Icon"
+msgstr "Піктограми"
+
+#: ../metadata/switcher.xml.in.h:13
+#, fuzzy
+msgid "Minimized"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "Робоча станція"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "Наступне вікно"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "Наступне вікно (Усі вікна)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "Наступне вікно (не виринаюче)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "&Попередн."
+
+#: ../metadata/switcher.xml.in.h:25
+#, fuzzy
+msgid "Prev window"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+#, fuzzy
+msgid "Show minimized windows"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:37
+#, fuzzy
+msgid "Switcher speed"
+msgstr "Скрипти перемикання"
+
+#: ../metadata/switcher.xml.in.h:38
+#, fuzzy
+msgid "Switcher timestep"
+msgstr "місцевий час"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "Windows"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+#, fuzzy
+msgid "Add line"
+msgstr "Д&одати посилання"
+
+#: ../metadata/water.xml.in.h:2
+#, fuzzy
+msgid "Add point"
+msgstr "Додати контакт"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "Лінія"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "Крапка"
+
+#: ../metadata/water.xml.in.h:10
+#, fuzzy
+msgid "Rain Delay"
+msgstr "Затримка"
+
+#: ../metadata/water.xml.in.h:11
+#, fuzzy
+msgid "Title wave"
+msgstr "Заголовок: %1"
+
+#: ../metadata/water.xml.in.h:12
+#, fuzzy
+msgid "Toggle rain"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:13
+#, fuzzy
+msgid "Toggle rain effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:14
+#, fuzzy
+msgid "Toggle wiper"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:15
+#, fuzzy
+msgid "Toggle wiper effect"
+msgstr "Token ring"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "Ефект води"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+#, fuzzy
+msgid "Wave effect from window title"
+msgstr "Ефект хвилі від заголовка вікна"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+#, fuzzy
+msgid "Focus Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:4
+#, fuzzy
+msgid "Friction"
+msgstr "Дія"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:6
+#, fuzzy
+msgid "Grid Resolution"
+msgstr "Роздільна здатність"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+#, fuzzy
+msgid "Make window shiver"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:9
+#, fuzzy
+msgid "Map Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:10
+#, fuzzy
+msgid "Map Window Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:12
+#, fuzzy
+msgid "Maximize Effect"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "Пересунути в&низ"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+#, fuzzy
+msgid "Shiver"
+msgstr "Драйвер"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Дія"
+
+#: ../metadata/wobbly.xml.in.h:21
+#, fuzzy
+msgid "Spring K"
+msgstr "Іспанія"
+
+#: ../metadata/wobbly.xml.in.h:22
+#, fuzzy
+msgid "Spring Konstant"
+msgstr "Іспанія"
+
+#: ../metadata/wobbly.xml.in.h:23
+#, fuzzy
+msgid "Toggle window snapping"
+msgstr "Windows"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+#, fuzzy
+msgid "Vertex Grid Resolution"
+msgstr "Роздільна здатність"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "Ефект тремтіння при розгортанні і згортанні вікон"
+
+#: ../metadata/wobbly.xml.in.h:31
+#, fuzzy
+msgid "Wobbly Windows"
+msgstr "Тремячі Вікна"
+
+#: ../metadata/zoom.xml.in.h:1
+#, fuzzy
+msgid "Filter Linear"
+msgstr "Фільтр: "
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Збільшити стільницю"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "Збільшити"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Робоча станція"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Робоча станція"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Вибрано"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Тест"
+
+#: ../metadata/zoom.xml.in.h:12
+#, fuzzy
+msgid "Zoom and pan desktop cube"
+msgstr "Обернути екран"
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Робоча станція"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Вибрано"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Команда 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Команда \"%1\""
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "Екран"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "Помилка розбору командного рядка."
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Сторінка вниз"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "Віддалена підмережа"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "Праворуч"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Сторінка вгору"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "Віддалена підмережа"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "Праворуч"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Сторінка вгору"
+
+#, fuzzy
+#~ msgid "Toolbar"
+#~ msgstr "Інструменти"
+
+#~ msgid "Menu"
+#~ msgstr "Меню"
+
+#, fuzzy
+#~ msgid "Utility"
+#~ msgstr "Диск з утилітами..."
+
+#, fuzzy
+#~ msgid "Splash"
+#~ msgstr "заставка"
+
+#, fuzzy
+#~ msgid "Dialog"
+#~ msgstr "&Тонове набирання"
+
+#, fuzzy
+#~ msgid "DropdownMenu"
+#~ msgstr "Віконний менеджер"
+
+#, fuzzy
+#~ msgid "PopupMenu"
+#~ msgstr "Меню"
+
+#, fuzzy
+#~ msgid "Tooltip"
+#~ msgstr "Інструменти"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Сповіщення"
+
+#, fuzzy
+#~ msgid "Dnd"
+#~ msgstr "Кінець"
+
+#, fuzzy
+#~ msgid "Fullscreen"
+#~ msgstr "Сенсорний екран"
+
+#~ msgid "Unknown"
+#~ msgstr "Невідомо"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Тривалість"
+
+#, fuzzy
+#~ msgid "Do not modify"
+#~ msgstr "Нічого не записувати в журнал"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "Радіус"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "Увімкнути автоперехід в режим сну"
+
+#, fuzzy
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "Прискорення 3D: "
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "Прискорення 3D: "
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "Тест"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "Російська Федерація"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "Російська"
+
+#, fuzzy
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "Віддалена стільниця"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "Прискорення 3D: "
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "Тест"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "місцевий час"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "місцевий час"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "Дія"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "Іспанія"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "Скрипти перемикання"
+
+#, fuzzy
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "&Вказати фільтр"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "Роздільна здатність"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Windows"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "Вибрано"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "Тест"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "Робоча станція"
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "XF86RotateWindows"
+
+#, fuzzy
+#~ msgid "Rotate To Face %d"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Rotate to face %d"
+#~ msgstr "Обернути екран"
+
+#, fuzzy
+#~ msgid "Command line %d"
+#~ msgstr "Команда: "
+
+#, fuzzy
+#~ msgid "Run command %d"
+#~ msgstr "Команда: "
+
+#, fuzzy
+#~ msgid "Corners"
+#~ msgstr "Перетворювачі"
+
+#, fuzzy
+#~ msgid "Sloppy Focus"
+#~ msgstr "Дискета"
+
+#, fuzzy
+#~ msgid "Terminate"
+#~ msgstr "Термінали"
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..e657342
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,3044 @@
+# @TITLE@
+# Copyright (C) 2006, SUSE Linux GmbH, Nuremberg
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+# This file is distributed under the same license as @PACKAGE@ package. FIRST
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: @PACKAGE@\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2006-07-12 07:32+0200\n"
+"Last-Translator: Phan Vĩnh Thịnh <teppi82@gmail.com>\n"
+"Language-Team: Vietnamese <i18n@suse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+msgid "Commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+msgid "Run terminal command"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+msgid "Opacity values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:16
+msgid "Saturation Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:17
+msgid "Saturation Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:18
+msgid "Saturation Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+msgid "Windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+msgid "Rotate cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+msgid "Rotate to cube face with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr ""
diff --git a/po/xh.po b/po/xh.po
new file mode 100644
index 0000000..f9ae132
--- /dev/null
+++ b/po/xh.po
@@ -0,0 +1,3159 @@
+# Copyright (C) 2007 SuSE Linux Products GmbH, Nuernberg
+# This file is distributed under the same license as the package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: base\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2006-11-03 14:26\n"
+"Last-Translator: Novell Language <language@novell.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Kuyandululwa"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Ukukhetha Ikhathalogu"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Umyalelo:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Hlaziya"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Kuyandululwa"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Umyalelo:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Umyalelo '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Gcina ubumbeko"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Kuyandululwa"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Kuyandululwa"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Kuyandululwa"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Kuyandululwa"
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Kuyandululwa"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Kuyandululwa"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Kuyandululwa"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Kuqaliswa Ukuhlohla..."
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Kuyandululwa"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "I-&Uvimba Weefayili Zendawo Ethile..."
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Ukukhetha Ikhathalogu"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Kuyandululwa"
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Ngethuba Lokumisela Inkqubo"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Musa Ukukhetha &Nto"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Ngethuba Lokumisela Inkqubo"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Kugqityiwe Ukuhlohla"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Umyalelo '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Umyalelo '%1'"
+
+#~ msgid "Unknown"
+#~ msgstr "Akwaziwa"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Gcina ubumbeko"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Kugqityiwe Ukuhlohla"
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..24c85c8
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,4434 @@
+# Compiz chinese translation.
+# Copyright (C) 2008 SuSE Linux Products GmbH, Nuernberg
+# This file is distributed under the same license as the compiz package.
+# JING Cheng <jingcheng01@gmail.com> 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2008-11-02 08:37+0100\n"
+"Last-Translator: JING Cheng <jingcheng01@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr " 桌面 "
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "窗口管理"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr "Compiz"
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "无"
+
+# 此功能完全不能用调整大小来描述,我找这个功能找了N久,才发现:调整大小! = =;
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "阴影"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+#, fuzzy
+msgid "Maximize Horizontally"
+msgstr "水平方向最大化窗口"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+#, fuzzy
+msgid "Maximize Vertically"
+msgstr "垂直方向最大化窗口"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+#, fuzzy
+msgid "Minimize"
+msgstr "最小化"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "自动升起"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "低"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "窗口菜单"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "鼠标滚轮在窗口标题栏上的动作"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "模糊类型"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity主题活动窗口透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity 主题活动窗口不透明阴影"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity主题透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr "Metacity主题阴影"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "以Metacity主题为装饰器的活动窗口使用的透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "metacity主题装饰器使用的透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "以metacity主题装饰器为活动窗口添加透明渐变效果"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr "以metacity主题装饰器为窗口添加透明渐变效果"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "标题栏鼠标滚轮动作"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "窗口装饰使用的模糊类型"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "使用metacity主题"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "绘制窗口装饰时使用metacity主题"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "关闭窗口"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "恢复窗口"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "最大化窗口"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "最小化窗口"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "置于上面"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr "粘滞窗口"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr "去除阴影"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr "取消顶置"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr "取消粘滞"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "窗口\"%s\"无响应"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "强制退出此应用程序将导致你丢失未保存的数据。"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "强制退出(_F)"
+
+#: ../metadata/annotate.xml.in.h:1
+msgid "Annotate"
+msgstr "注解"
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr "注解填充颜色"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr "注解描边颜色"
+
+#: ../metadata/annotate.xml.in.h:4
+msgid "Annotate plugin"
+msgstr "注解插件"
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr "清除"
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr "绘制"
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr "使用工具绘制"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "注解使用的填充颜色"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "初始化"
+
+#: ../metadata/annotate.xml.in.h:10
+msgid "Initiate annotate drawing"
+msgstr "初始化注释绘制"
+
+#: ../metadata/annotate.xml.in.h:11
+msgid "Initiate annotate erasing"
+msgstr "初始化注释抹除"
+
+#: ../metadata/annotate.xml.in.h:12
+msgid "Initiate erase"
+msgstr "初始化抹除"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "线宽"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "注释使用的线宽"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr "注释描边使用的颜色"
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr "描边宽度"
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr "注释使用的描边宽度"
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr "4倍双线性过滤"
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr "Alpha朦胧"
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr "Alpha朦胧窗口"
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr "朦胧滤镜"
+
+#: ../metadata/blur.xml.in.h:5
+msgid "Blur Occlusion"
+msgstr "模糊咬合"
+
+#: ../metadata/blur.xml.in.h:6
+msgid "Blur Saturation"
+msgstr "柔化饱和度"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr "柔化速度"
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr "柔化窗口"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr "柔化半透明窗口后部"
+
+#: ../metadata/blur.xml.in.h:10
+msgid "Blur saturation"
+msgstr "柔化饱和度"
+
+#: ../metadata/blur.xml.in.h:11
+msgid "Blur windows"
+msgstr "柔化窗口"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr "对非当前窗口采取柔化"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr "不对其它窗口遮挡的屏幕部分进行柔化"
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr "过滤用于柔化的方法"
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr "焦点柔化"
+
+#: ../metadata/blur.xml.in.h:16
+msgid "Focus blur windows"
+msgstr "聚焦柔化窗口"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr "高斯柔化"
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr "高斯柔化半径"
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr "高斯柔化力度"
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr "高斯柔化半径"
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr "高斯柔化力度"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr "独立纹理取回"
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr "Mipmap LOD"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr "Mipmap细节层次"
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr "脉冲"
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr "脉冲效果"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr "使用现存的纹理单位尽可能多的进行独立纹理取回"
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr "窗口柔化速度"
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr "应被聚焦柔化影响的窗口"
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr "应该默认使用alpha柔化的窗口"
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr "克隆输出"
+
+#: ../metadata/clone.xml.in.h:3
+msgid "Initiate clone selection"
+msgstr "初始化克隆选取区域"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr "输出克隆处理程序"
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "一个按键绑定,调用时将运行由command0定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "一个按键绑定,调用时将运行由command1定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "一个按键绑定,调用时将运行由command10定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "一个按键绑定,调用时将运行由command11定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "一个按键绑定,调用时将运行由command2定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "一个按键绑定,调用时将运行由command3定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "一个按键绑定,调用时将运行由command4定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "一个按键绑定,调用时将运行由command5定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "一个按键绑定,调用时将运行由command6定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "一个按键绑定,调用时将运行由command7定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "一个按键绑定,调用时将运行由command8定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "一个按键绑定,调用时将运行由command9定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "一个按键绑定,调用时将运行由command0定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "一个按键绑定,调用时将运行由command1定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "一个按键绑定,调用时将运行由command10定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "一个按键绑定,调用时将运行由command11定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "一个按键绑定,调用时将运行由command2定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "一个按键绑定,调用时将运行由command3定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "一个按键绑定,调用时将运行由command4定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "一个按键绑定,调用时将运行由command5定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "一个按键绑定,调用时将运行由command6定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "一个按键绑定,调用时将运行由command7定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "一个按键绑定,调用时将运行由command8定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "一个按键绑定,调用时将运行由command9定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "一个按键绑定,调用时将运行由command0定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "一个按键绑定,调用时将运行由command1定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "一个按键绑定,调用时将运行由command10定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "一个按键绑定,调用时将运行由command11定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "一个按键绑定,调用时将运行由command2定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "一个按键绑定,调用时将运行由command3定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "一个按键绑定,调用时将运行由command4定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "一个按键绑定,调用时将运行由command5定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "一个按键绑定,调用时将运行由command6定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "一个按键绑定,调用时将运行由command7定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "一个按键绑定,调用时将运行由command8定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "一个按键绑定,调用时将运行由command9定义的shell命令"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+#, fuzzy
+msgid "Button Bindings"
+msgstr "由按键绑定触发比例模式"
+
+#: ../metadata/commands.xml.in.h:39
+msgid "Command line 0"
+msgstr "命令行0"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "命令行1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "命令行10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "命令行11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "命令行2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "命令行3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "命令行4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "命令行5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "命令行6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "命令行7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "命令行8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "命令行9"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "调用run_command0时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "调用run_command1时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "调用run_command10时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "调用run_command11时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "调用run_command2时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "调用run_command3时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "调用run_command4时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "调用run_command5时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "调用run_command6时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "调用run_command7时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "调用run_command8时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "调用run_command9时要在shell中执行的命令行"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "命令"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+msgid "Run command 0"
+msgstr "运行命令0"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "运行命令1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "运行命令10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "运行命令11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "运行命令2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "运行命令3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "运行命令4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "运行命令5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "运行命令6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "运行命令7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "运行命令8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "运行命令9"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr "活动插件"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "允许全屏窗口的绘制不重定向到屏幕外的象素映射"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "可闻铃声"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "可听见的系统响铃"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "自动升起"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "自动升起延迟"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "自动检测输出设备"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "自动检测刷新率"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "最佳"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "点击聚焦"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "点击窗口将输入焦点移至它"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "关闭激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "默认图标"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "默认窗口图标图像"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "桌面立方体"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "检测输出"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "检测刷新率"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr "边缘动作执行前,鼠标指针必须置于屏幕的一个边缘"
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr "边缘触发延迟"
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "快速"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+msgid "Focus Prevention Level"
+msgstr "焦点保护级别"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr "阻碍焦点窗口"
+
+#: ../metadata/core.xml.in.in.h:26
+msgid "Focus prevention windows"
+msgstr "阻碍焦点窗口"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr "强制独立输出绘图"
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "常规选项"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr "compiz常规选项"
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "好"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "隐藏跳过任务栏窗口"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "隐藏所有窗口并聚焦于桌面"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "进入显示桌面模式时隐藏不在任务栏中的窗口"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr "高"
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "水平虚拟尺寸"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr "如果可能,对从图片转换来的纹理进行压缩"
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "最大化时忽略提示"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "最大化窗口时忽略尺寸递增和外观提示"
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr "升起所选窗口前的时间间隔"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr "ping消息之间的间隔"
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr "聚焦预防的级别"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "光线"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "当前活动的插件列表"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "描述输出设备的字符串列表"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr "低"
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "降低窗口"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "将窗口降到其它窗口以下"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "水平方向最大化窗口"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "垂直方向最大化窗口"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "最大化激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "水平方向最大化激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "垂直方向最大化激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "最小化激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "常规"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "桌面数量"
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr "虚拟桌面的数量"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr "关闭"
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "只在垂直清屏期间执行屏幕更新"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "输出"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr "重叠输出处理"
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr "单独绘制每个输出设备,即便输出设备重复"
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr "Ping延迟"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr "首选较大的输出"
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr "首选较小的输出"
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "点击时升起"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "升起窗口"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "在间隔一段时间后升起选中窗口"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "将窗口升起到其它窗口之上"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "点击时升起窗口"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "刷新率"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "水平虚拟尺寸的放大倍数"
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "垂直虚拟尺寸的放大倍数"
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr "显示桌面"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "慢速动画"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr "智能模式"
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "与VBlank同步"
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr "纹理压缩"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "纹理过滤器"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "纹理过滤"
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "屏幕重绘速率(次/秒)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "切换最大化的窗口"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "将窗口水平方向切换到最大化"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "将窗口垂直方向切换到最大化"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "将窗口切换到遮蔽"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "将激活的窗口切换到最大化"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "将激活的窗口水平方向切换到最大化"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "将激活的窗口垂直方向切换到最大化"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "将激活的窗口切换到遮蔽"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "切换使用慢速动画"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "恢复激活的窗口"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "取消重定向全屏窗口"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "转换屏幕时使用漫射光"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "垂直虚拟尺寸"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr "很高"
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr "哪个重叠输出设备将成为首选"
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr "窗口菜单按钮绑定"
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr "窗口菜单按键绑定"
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "加速"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr "调整图像"
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr "调整顶部图像以旋转"
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "前进到下一个滑块"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "制作动画天穹"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "旋转立方体时制作动画天穹"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+msgid "Automatic"
+msgstr "自动"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "立方体顶面和底面的颜色"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "天穹降色渐变使用的底部结束颜色"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "天穹降色渐变使用的顶部结束颜色"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "立方体颜色"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "立方体颜色"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "桌面立方体"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "折叠加速"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "折叠速度"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "折叠时间步长"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "有可能时生成mipmaps用于更高质量的缩放比例"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "返回上一个滑块"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "图像文件"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "用作穹顶纹理的图像"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr "仅当旋转由鼠标驱动时启用立方体透明"
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "立方体内部"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "立方体旋转时使用内部视角"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "应渲染于立方体顶面的PNG和SVG文件列表"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr "多重输出模式"
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr "多个立方体"
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "下一个滑块"
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr "单一大立方体"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "旋转时的不透明度"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "不旋转时的不透明度"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "旋转时桌面窗口的不透明度。"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "不旋转时桌面窗口的不透明度。"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "将窗口放置在立方体上"
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr "上一个滑块"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "渲染穹顶"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "按比例调整图像大小"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "调整图像大小以覆盖立方体的顶面"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "选择当使用多个输出设备时立方体的显示方式。"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "天穹"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "天穹渐变结束颜色"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "天穹渐变起始颜色"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "天穹图像"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "速度"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "时间步长"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr "仅当用鼠标旋转时透明"
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "展开"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "展开立方体"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr "Dbus"
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr "Dbus控制后端"
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr "允许为装饰纹理生成mipmap"
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "命令"
+
+#: ../metadata/decoration.xml.in.h:3
+msgid "Decoration windows"
+msgstr "装饰窗口"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "尚无装饰程序运行时执行的装饰程序命令行"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "减小阴影 X 偏移"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "减小阴影 Y 偏移"
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr "投影颜色"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "减小阴影不透明度"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "减小阴影半径"
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr "阴影颜色"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "阴影偏移 X"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "阴影偏移 Y"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "阴影不透明度"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "阴影半径"
+
+#: ../metadata/decoration.xml.in.h:16
+msgid "Shadow windows"
+msgstr "阴影窗口"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "窗口装饰"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "窗口装饰"
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr "应装饰的窗口"
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr "应有阴影的窗口"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr "未响应窗口的亮度(%)"
+
+#: ../metadata/fade.xml.in.h:3
+msgid "Constant speed"
+msgstr "恒定旋转速度"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr "恒定旋转时间"
+
+#: ../metadata/fade.xml.in.h:5
+msgid "Dim Unresponsive Windows"
+msgstr "暗化无反应窗口"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr "暗化对窗口管理器请求无反应的窗口"
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr "渐隐模式"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr "当最小化/打开/关闭时渐隐"
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "渐隐速度"
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr "渐隐时间"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr "产生窗口最小化/打开/关闭事件时使用渐隐效果"
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "系统嘟嘟声时使用渐隐效果"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "映射时渐现窗口和不映射时渐弱窗口"
+
+#: ../metadata/fade.xml.in.h:14
+msgid "Fade windows"
+msgstr "渐隐窗口"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "渐隐窗口"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "全屏静音"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "系统嘟嘟声的全屏渐隐效果"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr "无反应窗口的饱和度百分比"
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr "无反应窗口的亮度"
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr "无反应窗口的饱和度"
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "视觉振铃"
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr "窗口渐隐模式"
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "窗口渐隐速度设于恒定速度模式"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr "窗口渐隐时间(秒)设于恒定时间模式"
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr "应渐隐的窗口"
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr "挂载点"
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr "挂载点"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr "用户空间文件系统"
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr "用户空间文件系统"
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr "GConf"
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr "GConf控制后端"
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr "GLib"
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr "GLib主循环支持"
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr "打开一个终端窗口"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "运行对话框"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "终端命令行"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "截屏命令行"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "显示主菜单"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "显示运行应用程序对话框"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "显示主菜单"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "拍摄截屏"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "拍摄窗口截屏"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+msgid "Terminal command line"
+msgstr "终端命令行"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "窗口截屏命令行"
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr "Ini"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr "ini纯文本后端"
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr "文件修改通知插件"
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr "Inotify"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr "Kconfig"
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr "Kconfig控制后端"
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "最小化效果"
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr "最小化窗口"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "最小化速度"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "最小化时间步长"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "抗遮蔽性"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "抗遮蔽性"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "最小化和取消最小化时变形窗口"
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr "最小化时应变形的窗口"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "约束 Y"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "约束工作空间区域的 Y 坐标"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr "结束移动前不更新服务端的位置信息"
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "启动窗口移动"
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr "懒惰定位"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "移动窗口"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "移动窗口"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "不透明度"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "移动窗口的不透明度"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "拖动时删除快照并自动取消窗口的最大化"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "删除最大化窗口快照"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "开始移动窗口"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:5
+#, fuzzy
+msgid "Brightness values for windows"
+msgstr "未响应窗口的亮度(%)"
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "增加透明度"
+
+# 增加不透明度应该翻成减少透明度才符合中文语言习惯
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "减少透明度"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "更改不透明度级别"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "更改不透明度级别"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "不透明度级别"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "移动窗口的不透明度"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "旋转时的不透明度"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "饱和度"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "饱和度"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "饱和度"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "饱和度"
+
+#: ../metadata/obs.xml.in.h:19
+#, fuzzy
+msgid "Saturation values for windows"
+msgstr "无反应窗口的饱和度百分比"
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "窗口装饰"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "窗口类型"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "映射窗口"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "默认应定位的窗口"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "默认应为半透明的窗口"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "默认应定位的窗口"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr "放置窗口所用的算法"
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr "层叠"
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr "居中"
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "窗口管理"
+
+#: ../metadata/place.xml.in.h:5
+msgid "Force Placement Windows"
+msgstr "强制窗口放置"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr "水平视图位置"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr "保持在工作区"
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr "保持设置的窗口在工作区,甚至位置可能不同于那特别位置。"
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "放置窗口"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr "跨越所有输出放置"
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "映射时将窗口放置在适当位置"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr "安置模式"
+
+#: ../metadata/place.xml.in.h:15
+msgid "Positioned windows"
+msgstr "已定位的窗口"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "随机"
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "选择当选用了多重输出时窗口放置的行为"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr "灵巧"
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr "使用当前输出设备"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr "使用当前窗口的输出设备"
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr "使用指针所指的输出设备"
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr "垂直视图位置"
+
+#: ../metadata/place.xml.in.h:23
+msgid "Viewport positioned windows"
+msgstr "视图中的定位窗口"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "窗口放置工作区"
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr "默认应定位的窗口"
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "指定视图中默认应定位的窗口"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr "即便向窗口管理器提出避免放置的请求,仍应强制放置的窗口"
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "窗口装饰"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "工作区"
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr "X位置"
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr "X视图位置"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr "X位置取值"
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr "Y位置"
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr "Y视图位置"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr "Y位置取值"
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr "Png"
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr "Png图像加载工具"
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr "正则表达式匹配"
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr "正则表达式的窗口匹配"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr "边颜色"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr "用于描边和矩形大小调整模式的边颜色"
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr "默认大小调整模式"
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr "窗口大小调整的默认模式"
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr "填充颜色"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr "用于矩形大小调整模式的填充颜色"
+
+#: ../metadata/resize.xml.in.h:8
+msgid "Initiate Normal Window Resize"
+msgstr "初始普通窗口大小调整"
+
+#: ../metadata/resize.xml.in.h:9
+msgid "Initiate Outline Window Resize"
+msgstr "初始化窗口尺寸调整轮廓"
+
+#: ../metadata/resize.xml.in.h:10
+msgid "Initiate Rectangle Window Resize"
+msgstr "初始化窗口尺寸调整矩形"
+
+#: ../metadata/resize.xml.in.h:11
+msgid "Initiate Stretch Window Resize"
+msgstr "启动窗口拉伸调整大小"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "启动窗口大小调整"
+
+#: ../metadata/resize.xml.in.h:14
+msgid "Normal Resize Windows"
+msgstr "普通窗口大小调整"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr "轮廓"
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr "窗口外框大小调整"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr "矩形"
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr "矩形窗口大小调整"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "开始调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr "用拉伸调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr "开始如常调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr "开始以轮廓调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr "开始以矩形调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr "拉伸"
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr "拉伸调整窗口大小"
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr "正常调整大小的窗口"
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr "框架调整大小的窗口"
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr "矩形调整大小的窗口"
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr "拉伸调整大小的窗口"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "DnD边缘翻转"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "移动边缘翻转"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "指针边缘翻转"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "翻转时间"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "翻转至左视点并弯曲指针"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "将对象拖至屏幕边缘时翻转到下个视点"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "将指针移至屏幕边缘时翻转到下个视点"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "将窗口移至屏幕边缘时翻转到下个视点"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "翻转至右视点并弯曲指针"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "指针移动时反转Y轴"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "指针反转Y"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "指针灵敏度"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr "旋转时升起"
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr "旋转时升起窗口"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "旋转立方体"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "旋转左翻"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "旋转右翻"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "向左旋转"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "带着窗口向左旋转"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "向右旋转"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "带着窗口向右旋转"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "旋转至"
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr "旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr "带着窗口旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "旋转至第10面"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "带着窗口旋转至第10面"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "旋转至第11面"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "带着窗口旋转至第11面"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "旋转至第12面"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "带着窗口旋转至第12面"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "旋转至第2面"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "带着窗口旋转至第2面"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "旋转至第3面"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "带着窗口旋转至第3面"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "旋转至第4面"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "带着窗口旋转至第4面"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "旋转至第5面"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "带着窗口旋转至第5面"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "旋转至第6面"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "带着窗口旋转至第6面"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "旋转至第7面"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "带着窗口旋转至第7面"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "旋转至第8面"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "带着窗口旋转至第8面"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "旋转至第9面"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "带着窗口旋转至第9面"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "旋转立方体"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "旋转桌面立方体"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "向左旋转"
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr "带着激活的窗口一起向左旋转"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "向右旋转"
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr "带着激活的窗口一起向右旋转"
+
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "带着窗口旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr "旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第1面"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "旋转至第10面"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第10面"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "旋转至第11面"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第11面"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "旋转至第12面"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第12面"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "旋转至第2面"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第2面"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "旋转至第3面"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第3面"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "旋转至第4面"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第4面"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "旋转至第5面"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第5面"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "旋转至第6面"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第6面"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "旋转至第7面"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第7面"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "旋转至第8面"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第8面"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "旋转至第9面"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "带着激活的窗口一起旋转至第9面"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "旋转至视点"
+
+#: ../metadata/rotate.xml.in.h:83
+msgid "Rotate window"
+msgstr "旋转窗口"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "带窗口旋转"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "旋转加速"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "旋转速度"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "旋转时间步长"
+
+#: ../metadata/rotate.xml.in.h:88
+msgid "Rotation Zoom"
+msgstr "旋转缩放"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "指针移动灵敏度"
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "将立方体快速旋转到底面"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "将立方体快速旋转到顶面"
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr "瞬移至底面"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "瞬移至顶面"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "开始旋转"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "翻转视点前的超时时间"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "缩放"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "不透明度百分比"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "大"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr "由按键绑定触发比例模式"
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr "由按键绑定触发比例模式,而不是按下时启用之松开时禁用之。"
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr "点击桌面以显示桌面"
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "背景变暗"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "调整窗口大小时背景变暗"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "标志"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr "在缩放时,点击桌面会进入显示桌面模式"
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "悬停时间"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "启动窗口检出器"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "启动所有窗口的窗口拾取器"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "启动窗口组的窗口拾取器"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "启动当前输出窗口的窗口拾取器"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr "由按键绑定触发比例模式"
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr "由按键绑定触发比例模式,而不是按下时启用之松开时禁用之。"
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "对所有窗口调整布局并开始转换"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "对窗口组调整布局并开始转换"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "布局和开始转换窗口"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "对当前输出窗口调整布局并开始转换"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "在所有输出设备上"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "在当前输出设备上"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "覆盖图标"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "缩放窗口时覆盖图标"
+
+# 此功能完全不能用调整大小来描述,我找这个功能找了N久,才发现:调整大小! = =;
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "缩放"
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr "窗口缩放"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "缩放速度"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "缩放时间步长"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "窗口缩放"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr "在使用了多重输出设备的情况下选择何处窗口缩放"
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "窗口之间的间隔"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "间距"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "悬停在窗口上时比例模式终止前的时间(毫秒)"
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr "缩放模式下应缩放的窗口类型"
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr "在该应用程序中自动开启截屏"
+
+#: ../metadata/screenshot.xml.in.h:2
+msgid "Directory"
+msgstr "目录"
+
+#: ../metadata/screenshot.xml.in.h:4
+msgid "Initiate rectangle screenshot"
+msgstr "启动矩形截屏"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr "启动应用程序"
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr "保存截屏图片到此目录"
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr "截屏"
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr "截屏插件"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr "Svg"
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr "Svg图像加载工具"
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "亮度百分比"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "饱和度百分比"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "应用程序切换器"
+
+#: ../metadata/switcher.xml.in.h:5
+msgid "Auto Rotate"
+msgstr "自动旋转"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "放在前面"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "将选中的窗口放在前面"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "切换窗口时应缩小远距离桌面"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "图标"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "最小化"
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr "下一个面板"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "下一个窗口"
+
+#: ../metadata/switcher.xml.in.h:17
+msgid "Next window (All windows)"
+msgstr "下一个窗口(所有)"
+
+#: ../metadata/switcher.xml.in.h:18
+msgid "Next window (No popup)"
+msgstr "下一个窗口(非弹出)"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "不可见时弹出切换程序并选择下一个窗口"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "不可见时弹出切换程序并选择所有窗口的下一个窗口"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "不可见时弹出切换程序并选择上一个窗口"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "不可见时弹出切换程序并选择所有窗口的上一个窗口"
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr "上一个面板"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "上一个窗口"
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr "上一个窗口(全部窗口)"
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr "上一个窗口(非弹出)"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr "切换时转到所选窗口"
+
+#: ../metadata/switcher.xml.in.h:30
+msgid "Select next panel type window."
+msgstr "选择下一个面板类型窗口。"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr "选取下一个窗口,且排除显示弹出窗口。"
+
+#: ../metadata/switcher.xml.in.h:32
+msgid "Select previous panel type window."
+msgstr "选择前一个面板类型窗口。"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr "选取下一个窗口,且排除显示弹出窗口。"
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "在缩略图旁边显示图标"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "显示最小化的窗口"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "切换程序速度"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "切换程序时间区间"
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr "切换程序窗口"
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr "切换程序中应显示的窗口"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr "提供YV12色彩空间支持"
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "视频回放"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "视频回放"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr "YV12色彩空间"
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "增加线"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "增加点"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "将水纹效果添加到不同的桌面操作"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "每次降雨效果之间的延时(以毫秒为单位)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "启用指针水纹效果"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "线"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "偏移比例"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "点"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "降雨延时"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "波浪标题"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "触发降雨"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "触发降雨效果"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "触发雨刷"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "触发雨刷效果"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "水纹效果"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "水纹偏移比例"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "窗口标题的波浪效果"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "聚焦效果"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "聚焦窗口效果"
+
+#: ../metadata/wobbly.xml.in.h:3
+msgid "Focus Windows"
+msgstr "聚焦窗口"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "摩擦力"
+
+#: ../metadata/wobbly.xml.in.h:5
+msgid "Grab Windows"
+msgstr "捕捉窗口"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "栅格分辨率"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "拉力效果反转(平时产生拉力, 在按下效果键时则不产生拉力)"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "使窗口出现碎裂效果"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "图效果"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "映射窗口效果"
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr "映射窗口"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "最大化效果"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "最小化栅格大小"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "最小顶点栅格大小"
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr "移动窗口"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "碎裂"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "翻转的快照"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "窗口快照"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "弹簧摩擦力"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "弹性 K"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "弹簧常数"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "转换窗口快照"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "对震颤窗口效果使用弹性模型"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "顶点栅格分辨率"
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr "聚焦时应采用颤动效果的窗口"
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr "捕捉时应采用颤动效果的窗口"
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr "映射时应采用颤动效果的窗口"
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr "移动时应采用颤动效果的窗口"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "最大化和取消最大化窗口时的颤动效果"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "震颤窗口"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "过滤器线性"
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr "放大时使用线性过滤器"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "缩放桌面"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "放大"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "缩小"
+
+#: ../metadata/zoom.xml.in.h:9
+msgid "Zoom Pan"
+msgstr "缩放盘"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "缩放速度"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "缩放时间区间"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "缩放和桌面立方体"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "缩放比例"
+
+#: ../metadata/zoom.xml.in.h:14
+msgid "Zoom pan"
+msgstr "缩放盘"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "命令行1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "运行命令1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "截屏命令行"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "截屏命令行"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "增加窗口透明度"
+
+# 增加不透明度应该翻成减少透明度才符合中文语言习惯
+#~ msgid "Increase window opacity"
+#~ msgstr "减少窗口透明度"
+
+#~ msgid "Opacity values for windows that should be translucent by default"
+#~ msgstr "默认为半透明的窗口的不透明度"
+
+#~ msgid "Opacity window values"
+#~ msgstr "不透明窗口值"
+
+#~ msgid "Opacity windows"
+#~ msgstr "不透明窗口"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "将窗口放置在立方体上"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Page Down"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "逆时针旋转"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "顺时针旋转"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Page Up"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "放置窗口"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "逆时针旋转"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "顺时针旋转"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Page Up"
+
+#~ msgid "Open window menu"
+#~ msgstr "打开窗口菜单"
+
+#~ msgid "Dock"
+#~ msgstr "靠接"
+
+#~ msgid "Toolbar"
+#~ msgstr "工具栏"
+
+#~ msgid "Menu"
+#~ msgstr "菜单"
+
+#~ msgid "Utility"
+#~ msgstr "实用程序"
+
+#~ msgid "Splash"
+#~ msgstr "Splash"
+
+#~ msgid "Dialog"
+#~ msgstr "对话框"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "下拉菜单"
+
+#~ msgid "PopupMenu"
+#~ msgstr "弹出菜单"
+
+#~ msgid "Tooltip"
+#~ msgstr "工具提示"
+
+#~ msgid "Notification"
+#~ msgstr "通知"
+
+#~ msgid "Combo"
+#~ msgstr "组合"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "模式对话框"
+
+#~ msgid "Fullscreen"
+#~ msgstr "全屏"
+
+#~ msgid "Unknown"
+#~ msgstr "未知"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command10 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command1 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command10 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command11 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command2 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command3 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command4 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command5 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command6 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command7 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command8 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "键绑定在调用时,将运行 command9 确定的 shell 命令"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "亮度百分比"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "不透明度百分比"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "饱和度百分比"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "饱和度"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "每次降雨效果之间的延时(以毫秒为单位)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr "切换窗口时应缩小远距离桌面"
+
+#~ msgid "Do not modify"
+#~ msgstr "不修改"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "减小阴影 X 偏移"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "减小阴影 Y 偏移"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "减小阴影不透明度"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "减小阴影半径"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "聚焦窗口效果(无,碎裂)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "选择上一个窗口"
+
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "折叠加速 (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "折叠速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "折叠时间段落 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "俄联邦"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "俄语"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "上升所选窗口前的时间间隔"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "对当前输出窗口调整布局并开始转换"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "图窗口效果(无,碎裂)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "最小化速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "最小化速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "最小顶点栅格大小"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "虚拟桌面数"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "不透明度更改级别"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "移动窗口的不透明度"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "移动窗口的不透明度"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "缩放窗口时覆盖图标"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "必须先装载的插件"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "需要的插件"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "不可见时弹出切换程序并选择所有窗口的下一个窗口"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "不可见时弹出切换程序并选择所有窗口的下一个窗口"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "不可见时弹出切换程序并选择所有窗口的上一个窗口"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "不可见时弹出切换程序并选择所有窗口的上一个窗口"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "折叠加速 (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "缩放速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "缩放时间区间 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "调整大小速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "调整大小时间段落 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "用于水平虚拟大小的屏幕大小倍增器"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "用于垂直虚拟大小的屏幕大小倍增器"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "指针移动灵敏度"
+
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "抗遮蔽性(0-100)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "窗口之间的间隔"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "弹簧摩擦力"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "弹簧常数"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "调整大小速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "调整大小时间段落 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "纹理过滤(快速、好、最佳)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "屏幕刷新速率(次/秒)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr "悬停在窗口上时比例模式终止前的时间(以毫秒为)"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "翻转十点之前发生超时"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "放大时使用线性过滤器"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "顶点栅格分辨率"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "水纹偏移比例"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "窗口渐弱速度"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "窗口渐弱速度"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "应渐弱的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "应渐弱的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "应渐弱的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "应渐弱的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "比例模式下应缩放的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "切换程序中应显示的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "最小化时应转换的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "应渐弱的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "聚焦时应采用颤动效果的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "捕捉时应采用颤动效果的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "映射时应采用颤动效果的窗口类型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "移动时应采用颤动效果的窗口类型"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "应启动比例模式的热角 (TopLeft, TopRight, BottomLeft, BottomRight)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "缩放速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "缩放时间区间 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "缩放比例"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "旋转到第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "旋转到带窗口的第 %d 面"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "旋转到第 %d 面并显示活动窗口"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "旋转到第 %d 面"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "旋转到第 %d 面"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "旋转到带窗口的第 %d 面"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "旋转到第 %d 面并显示活动窗口"
+
+#~ msgid "Command line %d"
+#~ msgstr "命令行 %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr "调用 run_command%d 时在壳层中执行的命令行"
+
+#~ msgid "Run command %d"
+#~ msgstr "运行命令 %d"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr "调用时将运行由命令 %d 确定的壳层命令的键联结"
+
+#~ msgid "Move Window Types"
+#~ msgstr "移动窗口类型"
+
+#~ msgid "Corners"
+#~ msgstr "角"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "鼠标移至窗口时聚焦该窗口"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "启动所有窗口"
+
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "启动键盘窗口移动"
+
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "启动键盘窗口大小调整"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "启动窗口切换程序"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "显示所有窗口切换程序的修改键"
+
+#~ msgid "Return from scale view"
+#~ msgstr "从比例视图返回"
+
+#~ msgid "Show switcher"
+#~ msgstr "显示切换程序"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "任意焦点"
+
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "开始使用键盘移动窗口"
+
+#~ msgid "Terminate"
+#~ msgstr "终止"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "系统嘟嘟声的水纹效果"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "应减弱的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话框、模式对"
+#~ "话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "最小化时应转换的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话"
+#~ "框、模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "应在比例模式中调整大小的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启"
+#~ "动、对话框、模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "应显示在转换器中的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话"
+#~ "框、模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "聚焦时应颤动的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话框、"
+#~ "模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "捕获时应颤动的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话框、"
+#~ "模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "映射时应颤动的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话框、"
+#~ "模式对话框、常规、全屏和未知)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "移动时应颤动的窗口类型(桌面、靠接、工具栏、菜单、实用程序、启动、对话框、"
+#~ "模式对话框、常规、全屏和未知)"
+
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "系统嘟嘟声的颤动效果"
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..579ab53
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,4587 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Compiz\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2009-01-31 22:29+0100\n"
+"Last-Translator: mosky <mosky9180@gmail.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Pootle 1.1.0\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr "桌面"
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr "視窗管理員"
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr "無"
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr "陰影"
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr "最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr "將視窗水平最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr "將視窗垂直最大化"
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr "最小化"
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+#, fuzzy
+msgid "Raise"
+msgstr "自動發出"
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+#, fuzzy
+msgid "Lower"
+msgstr "調低"
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr "視窗功能表"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr "當在視窗標題列使用滑鼠滾輪的動作"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr "模糊方式"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr "Metacity 佈景主題使用中的視窗透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+#, fuzzy
+msgid "Metacity theme active window opacity shade"
+msgstr "Metacity 佈景主題使用中的視窗陰影透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr "Metacity 佈景主題透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+#, fuzzy
+msgid "Metacity theme opacity shade"
+msgstr "Metacity 佈景主題的陰影透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr "使用 Metacity 視窗管理員時,作用中視窗的透明度。"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr "使用 Metacity 佈景主題的透明度"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr "使用 Metacity 佈景主題,從不透明到半透明的作用中視窗陰影"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr "標題列滑鼠滾輪動作"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr "針對視窗裝飾的模糊方式"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr "使用 metacity 主題"
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr "當繪製視窗裝飾時使用 metacity 佈景主題"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr "關閉視窗"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr "視窗解除最大化"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr "最大化視窗"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr "最小化視窗"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr "保持至頂"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+#, fuzzy
+msgid "Stick"
+msgstr "沾黏"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+#, fuzzy
+msgid "Unshade"
+msgstr "解除陰影"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+#, fuzzy
+msgid "Unmake Above"
+msgstr "取消至頂"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+#, fuzzy
+msgid "Unstick"
+msgstr "反沾黏"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr "視窗\"%s\"已經沒有反應"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr "強制離開這個應用程式,會導致您尚未儲存的資料遺失。"
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr "強制離開"
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "螢幕畫筆"
+
+#: ../metadata/annotate.xml.in.h:2
+#, fuzzy
+msgid "Annotate Fill Color"
+msgstr "螢幕畫筆色彩"
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "螢幕畫筆外掛"
+
+#: ../metadata/annotate.xml.in.h:5
+#, fuzzy
+msgid "Clear"
+msgstr "清除(_C)"
+
+#: ../metadata/annotate.xml.in.h:6
+#, fuzzy
+msgid "Draw"
+msgstr "畫"
+
+#: ../metadata/annotate.xml.in.h:7
+#, fuzzy
+msgid "Draw using tool"
+msgstr "使用工具畫圖"
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr "畫筆要用的色彩"
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+msgid "Initiate"
+msgstr "起始化"
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "起始化"
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr "線條寬度"
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr "注解功能的線條寬度"
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+#, fuzzy
+msgid "4xBilinear"
+msgstr "4x線性過濾器"
+
+#: ../metadata/blur.xml.in.h:2
+#, fuzzy
+msgid "Alpha Blur"
+msgstr "調整視窗比例"
+
+#: ../metadata/blur.xml.in.h:3
+#, fuzzy
+msgid "Alpha blur windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/blur.xml.in.h:4
+#, fuzzy
+msgid "Blur Filter"
+msgstr "材質過濾器"
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "飽和度"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "飽和度"
+
+#: ../metadata/blur.xml.in.h:7
+#, fuzzy
+msgid "Blur Speed"
+msgstr "摺疊速度"
+
+#: ../metadata/blur.xml.in.h:8
+#, fuzzy
+msgid "Blur Windows"
+msgstr "放置視窗"
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "飽和度"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/blur.xml.in.h:12
+#, fuzzy
+msgid "Blur windows that doesn't have focus"
+msgstr "應該要在定焦時搖擺的視窗類型"
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+#, fuzzy
+msgid "Focus Blur"
+msgstr "調整視窗比例"
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/blur.xml.in.h:17
+#, fuzzy
+msgid "Gaussian"
+msgstr "俄語"
+
+#: ../metadata/blur.xml.in.h:18
+#, fuzzy
+msgid "Gaussian Radius"
+msgstr "俄羅斯聯邦"
+
+#: ../metadata/blur.xml.in.h:19
+#, fuzzy
+msgid "Gaussian Strength"
+msgstr "俄語"
+
+#: ../metadata/blur.xml.in.h:20
+#, fuzzy
+msgid "Gaussian radius"
+msgstr "俄羅斯聯邦"
+
+#: ../metadata/blur.xml.in.h:21
+#, fuzzy
+msgid "Gaussian strength"
+msgstr "俄語"
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:24
+#, fuzzy
+msgid "Mipmap LOD"
+msgstr "Mipmap"
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+#, fuzzy
+msgid "Pulse effect"
+msgstr "定焦特效"
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+#, fuzzy
+msgid "Window blur speed"
+msgstr "Window 淡出/淡入速度"
+
+#: ../metadata/blur.xml.in.h:30
+#, fuzzy
+msgid "Windows that should be affected by focus blur"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/blur.xml.in.h:31
+#, fuzzy
+msgid "Windows that should be use alpha blur by default"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/clone.xml.in.h:1
+#, fuzzy
+msgid "Clone Output"
+msgstr "輸出"
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "視訊模式選項"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:2
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "啟用時將執行經 command1 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:3
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:4
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "啟用時將執行經 command11 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:5
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "啟用時將執行經 command2 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:6
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "啟用時將執行經 command3 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:7
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "啟用時將執行經 command4 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:8
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "啟用時將執行經 command5 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:9
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "啟用時將執行經 command6 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:10
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "啟用時將執行經 command7 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:11
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "啟用時將執行經 command8 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:12
+#, fuzzy
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "啟用時將執行經 command9 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:13
+#, fuzzy
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "啟用時將執行經 command1 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "啟用時將執行經 command11 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "啟用時將執行經 command2 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "啟用時將執行經 command3 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "啟用時將執行經 command4 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "啟用時將執行經 command5 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "啟用時將執行經 command6 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "啟用時將執行經 command7 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "啟用時將執行經 command8 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "啟用時將執行經 command9 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:25
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:26
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr "啟用時將執行經 command1 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:27
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:28
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr "啟用時將執行經 command11 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:29
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr "啟用時將執行經 command2 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:30
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr "啟用時將執行經 command3 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:31
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr "啟用時將執行經 command4 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:32
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr "啟用時將執行經 command5 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:33
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr "啟用時將執行經 command6 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:34
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr "啟用時將執行經 command7 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:35
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr "啟用時將執行經 command8 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:36
+#, fuzzy
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr "啟用時將執行經 command9 識別之外圍程序指令的按鍵組合"
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "指令行 10"
+
+#: ../metadata/commands.xml.in.h:40
+msgid "Command line 1"
+msgstr "指令行 1"
+
+#: ../metadata/commands.xml.in.h:41
+msgid "Command line 10"
+msgstr "指令行 10"
+
+#: ../metadata/commands.xml.in.h:42
+msgid "Command line 11"
+msgstr "指令行 11"
+
+#: ../metadata/commands.xml.in.h:43
+msgid "Command line 2"
+msgstr "指令行 2"
+
+#: ../metadata/commands.xml.in.h:44
+msgid "Command line 3"
+msgstr "指令行 3"
+
+#: ../metadata/commands.xml.in.h:45
+msgid "Command line 4"
+msgstr "指令行 4"
+
+#: ../metadata/commands.xml.in.h:46
+msgid "Command line 5"
+msgstr "指令行 5"
+
+#: ../metadata/commands.xml.in.h:47
+msgid "Command line 6"
+msgstr "指令行 6"
+
+#: ../metadata/commands.xml.in.h:48
+msgid "Command line 7"
+msgstr "指令行 7"
+
+#: ../metadata/commands.xml.in.h:49
+msgid "Command line 8"
+msgstr "指令行 8"
+
+#: ../metadata/commands.xml.in.h:50
+msgid "Command line 9"
+msgstr "指令行 9"
+
+#: ../metadata/commands.xml.in.h:51
+#, fuzzy
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr "啟用 run_command10 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr "啟用 run_command1 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr "啟用 run_command10 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr "啟用 run_command11 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr "啟用 run_command2 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr "啟用 run_command3 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr "啟用 run_command4 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr "啟用 run_command5 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr "啟用 run_command6 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr "啟用 run_command7 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr "啟用 run_command8 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr "啟用 run_command9 時要在外圍程序中執行的指令行"
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "指令"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "執行指令 10"
+
+#: ../metadata/commands.xml.in.h:67
+msgid "Run command 1"
+msgstr "執行指令 1"
+
+#: ../metadata/commands.xml.in.h:68
+msgid "Run command 10"
+msgstr "執行指令 10"
+
+#: ../metadata/commands.xml.in.h:69
+msgid "Run command 11"
+msgstr "執行指令 11"
+
+#: ../metadata/commands.xml.in.h:70
+msgid "Run command 2"
+msgstr "執行指令 2"
+
+#: ../metadata/commands.xml.in.h:71
+msgid "Run command 3"
+msgstr "執行指令 3"
+
+#: ../metadata/commands.xml.in.h:72
+msgid "Run command 4"
+msgstr "執行指令 4"
+
+#: ../metadata/commands.xml.in.h:73
+msgid "Run command 5"
+msgstr "執行指令 5"
+
+#: ../metadata/commands.xml.in.h:74
+msgid "Run command 6"
+msgstr "執行指令 6"
+
+#: ../metadata/commands.xml.in.h:75
+msgid "Run command 7"
+msgstr "執行指令 7"
+
+#: ../metadata/commands.xml.in.h:76
+msgid "Run command 8"
+msgstr "執行指令 8"
+
+#: ../metadata/commands.xml.in.h:77
+msgid "Run command 9"
+msgstr "執行指令 9"
+
+#: ../metadata/core.xml.in.in.h:1
+#, fuzzy
+msgid "Active Plugins"
+msgstr "啟用外掛程式"
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr "使全螢幕的描繪動作不會重新導向到幕後 Pixmap"
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr "聲訊鈴聲"
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr "系統發出嗶聲時啟用聲訊"
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr "自動發出"
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr "自動發出延遲"
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr "自動偵測輸出設備"
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr "自動偵測重新整理速率"
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr "最佳"
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr "按一下以定焦"
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr "在視窗上按一下便可將輸入焦點移動到該視窗"
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr "關閉作用中視窗"
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr "預設圖示"
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr "預設的視窗圖示影像"
+
+#: ../metadata/core.xml.in.in.h:16
+#, fuzzy
+msgid "Desktop Size"
+msgstr "桌面立方體"
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr "偵測輸出"
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr "偵測重新整理速率"
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr "快"
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "定焦視窗類型"
+
+#: ../metadata/core.xml.in.in.h:25
+#, fuzzy
+msgid "Focus Prevention Windows"
+msgstr "定焦視窗類型"
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "定焦視窗類型"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr "一般選項"
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr "好"
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr "隱藏跳過工作列視窗"
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr "隱藏全部視窗並定焦桌面"
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr "進入顯示桌面模式時隱藏未在工作列的視窗"
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr "水平虛擬大小"
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr "最大化時忽略提示"
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr "視窗最大化時忽略大小增量與畫面提示"
+
+#: ../metadata/core.xml.in.in.h:39
+#, fuzzy
+msgid "Interval before raising selected windows"
+msgstr "提高選定視窗的時間間隔"
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+#, fuzzy
+msgid "Level of focus stealing prevention"
+msgstr "啟用 ZEN 分割區"
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr "光源"
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr "最新主動式外掛程式清單"
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr "描述輸出設備的字串清單"
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr "降低視窗高度"
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr "將視窗降低到其他視窗之下"
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr "將視窗水平最大化"
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr "將視窗垂直最大化"
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr "最大化作用中視窗"
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr "將作用中視窗水平最大化"
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr "將作用中視窗垂直最大化"
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr "最小化作用中視窗"
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr "一般"
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr "桌面數"
+
+#: ../metadata/core.xml.in.in.h:59
+#, fuzzy
+msgid "Number of virtual desktops"
+msgstr "虛擬桌面數"
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr "只在垂直空白期間執行螢幕更新"
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr "輸出"
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+#, fuzzy
+msgid "Ping Delay"
+msgstr "下雨延遲"
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr "按一下時提高"
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr "提高視窗"
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr "在時間間隔後提高選定視窗"
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr "將視窗提高到比其他視窗高"
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr "在按一下時提高視窗高度"
+
+#: ../metadata/core.xml.in.in.h:73
+msgid "Refresh Rate"
+msgstr "重新整理速率"
+
+#: ../metadata/core.xml.in.in.h:74
+#, fuzzy
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr "水平虛擬大小的螢幕大小倍數"
+
+#: ../metadata/core.xml.in.in.h:75
+#, fuzzy
+msgid "Screen size multiplier for vertical virtual size"
+msgstr "垂直虛擬大小的螢幕大小倍數"
+
+#: ../metadata/core.xml.in.in.h:76
+#, fuzzy
+msgid "Show Desktop"
+msgstr "縮放桌面"
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr "減慢動畫速度"
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr "同步化到 VBlank"
+
+#: ../metadata/core.xml.in.in.h:80
+#, fuzzy
+msgid "Texture Compression"
+msgstr "材質篩選"
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr "材質過濾器"
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr "材質篩選"
+
+#: ../metadata/core.xml.in.in.h:83
+#, fuzzy
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr "螢幕重新描繪的速率 (次數/秒)"
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr "將視窗切換到最大"
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr "將視窗水平切換到最大"
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr "將視窗垂直切換到最大"
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr "將視窗切換到遮蔽"
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr "將使用中視窗切換到最大"
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr "將使用中視窗水平切換到最大"
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr "將使用中視窗垂直切換到最大"
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr "將使用中視窗切換到遮蔽"
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr "切換使用減慢動畫速度"
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr "作用中視窗解除最大化"
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr "全螢幕視窗解除重新導向"
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr "在螢幕轉換時使用擴散光"
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr "垂直虛擬大小"
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr "加速"
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr "換至下一張投影片"
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr "顯示天空頂動畫"
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr "旋轉立方體時顯示天空頂動畫"
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "自動發出"
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr "立方體的頂面和底面顏色"
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr "要使用的天空頂後援漸層之底部色彩停止點"
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr "要使用的天空頂後援漸層之頂部色彩停止點"
+
+#: ../metadata/cube.xml.in.h:13
+#, fuzzy
+msgid "Cube Caps"
+msgstr "立方體色彩"
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr "立方體色彩"
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr "桌面立方體"
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr "摺疊加速"
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr "摺疊速度"
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr "摺疊時間間隔"
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr "在可能使用更高品質比例時產生 Mipmap"
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr "返回上一張投影片"
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr "影像檔"
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr "用來作為天空頂材質的影像"
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr "立方體內部"
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr "立方體內部"
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr "應該要描繪至立方體頂面的 PNG 和 SVG 檔案清單"
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr "下一張投影片"
+
+#: ../metadata/cube.xml.in.h:31
+#, fuzzy
+msgid "One big cube"
+msgstr "立方體內部"
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr "旋轉時的透明度"
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr "非旋轉時的透明度"
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr "桌面視窗在旋轉時的透明度"
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr "桌面視窗在未旋轉時的透明度"
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr "將視窗放到立方體"
+
+#: ../metadata/cube.xml.in.h:37
+#, fuzzy
+msgid "Prev Slide"
+msgstr "上一張投影片"
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr "描繪天空頂"
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr "調整影像比例"
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr "調整影像比例以覆蓋立方體頂面"
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr "選擇立方體要如何顯示,如果有多個輸出裝置可使用"
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr "天空頂"
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr "天空頂漸層結束色彩"
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr "天空頂漸層開始色彩"
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr "天空頂影像"
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr "速度"
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr "時間間隔"
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr "展開"
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr "展開立方體"
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+msgid "Command"
+msgstr "指令"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr "如果沒有裝飾程式正在執行,則需執行的裝飾程式指令行。"
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr "投影 X 軸偏移"
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr "投影 Y 軸偏移"
+
+#: ../metadata/decoration.xml.in.h:7
+#, fuzzy
+msgid "Drop shadow color"
+msgstr "投影半徑"
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr "投影半徑不透明度"
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr "投影半徑"
+
+#: ../metadata/decoration.xml.in.h:11
+#, fuzzy
+msgid "Shadow Color"
+msgstr "嵌入視窗"
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr "陰影偏移 X 軸"
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr "陰影偏移 Y 軸"
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr "陰影不透明度"
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr "陰影半徑"
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "嵌入視窗"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr "視窗裝飾"
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr "視窗裝飾"
+
+#: ../metadata/decoration.xml.in.h:19
+#, fuzzy
+msgid "Windows that should be decorated"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/decoration.xml.in.h:20
+#, fuzzy
+msgid "Windows that should have a shadow"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "旋轉速度"
+
+#: ../metadata/fade.xml.in.h:4
+#, fuzzy
+msgid "Constant time"
+msgstr "等比縮放 Y 軸"
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "調整大小視窗"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+#, fuzzy
+msgid "Fade Mode"
+msgstr "翻轉時間"
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr "淡出/淡入速度"
+
+#: ../metadata/fade.xml.in.h:10
+#, fuzzy
+msgid "Fade Time"
+msgstr "翻轉時間"
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr "系統發出嗶聲時啟用淡出/淡入特效"
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr "在映射時淡入視窗,以及在解除映射時淡出視窗"
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/fade.xml.in.h:15
+msgid "Fading Windows"
+msgstr "視窗淡出中"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr "全螢幕警示鈴聲"
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr "系統發出嗶聲時啟用全螢幕淡出/淡入特效"
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr "警示鈴聲"
+
+#: ../metadata/fade.xml.in.h:23
+#, fuzzy
+msgid "Window fade mode"
+msgstr "Window 淡出/淡入速度"
+
+#: ../metadata/fade.xml.in.h:24
+#, fuzzy
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr "應該要在調整比例模式中調整比例的視窗類型"
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be fading"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/fs.xml.in.h:1
+#, fuzzy
+msgid "Mount Point"
+msgstr "點"
+
+#: ../metadata/fs.xml.in.h:2
+#, fuzzy
+msgid "Mount point"
+msgstr "新增點"
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+#, fuzzy
+msgid "Open a terminal"
+msgstr "在終端機執行"
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr "執行對話方塊"
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "螢幕擷取指令行"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr "螢幕擷取指令行"
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr "顯示主功能表"
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr "顯示執行應用程式對話方塊"
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr "顯示主功能表"
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr "擷取螢幕畫面"
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr "擷取視窗螢幕畫面"
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "螢幕擷取指令行"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr "視窗螢幕擷取指令行"
+
+#: ../metadata/ini.xml.in.h:1
+#, fuzzy
+msgid "Ini"
+msgstr "不要修改"
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+#, fuzzy
+msgid "Inotify"
+msgstr "不要修改"
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr "最小化特效"
+
+#: ../metadata/minimize.xml.in.h:2
+#, fuzzy
+msgid "Minimize Windows"
+msgstr "最小化視窗"
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr "最小化速度"
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr "最小化時間間隔"
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr "遮蔽阻力"
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr "遮蔽阻力"
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr "在最小化和解除最小化時轉換視窗"
+
+#: ../metadata/minimize.xml.in.h:10
+#, fuzzy
+msgid "Windows that should be transformed when minimized"
+msgstr "最小化時應該轉換的視窗類型"
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr "等比縮放 Y 軸"
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr "等比縮放 Y 軸對應到工作環境區域"
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr "起始化視窗移動"
+
+#: ../metadata/move.xml.in.h:5
+#, fuzzy
+msgid "Lazy Positioning"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr "移動視窗"
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr "移動視窗"
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr "不透明度"
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr "移動視窗的不透明度"
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr "在拖曳已最大化視窗時為其解除嵌入和自動解除最大化"
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr "解除嵌入最大化視窗"
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr "開始移動視窗"
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:2
+#, fuzzy
+msgid "Brightness Decrease"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:3
+#, fuzzy
+msgid "Brightness Increase"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:4
+#, fuzzy
+msgid "Brightness Step"
+msgstr "亮度"
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+#, fuzzy
+msgid "Decrease"
+msgstr "降低不透明度"
+
+#: ../metadata/obs.xml.in.h:7
+#, fuzzy
+msgid "Increase"
+msgstr "提高不透明度"
+
+#: ../metadata/obs.xml.in.h:9
+#, fuzzy
+msgid "Opacity Decrease"
+msgstr "不透明度變更間隔"
+
+#: ../metadata/obs.xml.in.h:10
+#, fuzzy
+msgid "Opacity Increase"
+msgstr "不透明度變更間隔"
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr "不透明度間隔"
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "移動視窗的不透明度"
+
+#: ../metadata/obs.xml.in.h:13
+#, fuzzy
+msgid "Opacity, Brightness and Saturation"
+msgstr "旋轉時的透明度"
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+msgid "Saturation"
+msgstr "飽和度"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "飽和度"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "飽和度"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "飽和度"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+#, fuzzy
+msgid "Window specific settings"
+msgstr "視窗裝飾"
+
+#: ../metadata/obs.xml.in.h:22
+#, fuzzy
+msgid "Window values"
+msgstr "視窗類型"
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "映射視窗類型"
+
+#: ../metadata/obs.xml.in.h:24
+#, fuzzy
+msgid "Windows that should have a different brightness by default"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/obs.xml.in.h:25
+#, fuzzy
+msgid "Windows that should have a different opacity by default"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/obs.xml.in.h:26
+#, fuzzy
+msgid "Windows that should have a different saturation by default"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+#, fuzzy
+msgid "Fixed Window Placement"
+msgstr "視窗管理員"
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "定焦視窗類型"
+
+#: ../metadata/place.xml.in.h:6
+#, fuzzy
+msgid "Horizontal viewport positions"
+msgstr "水平虛擬大小"
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr "放置視窗"
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr "在映射時將視窗放置到適當位置"
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr "隨機"
+
+#: ../metadata/place.xml.in.h:17
+#, fuzzy
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr "選擇立方體要如何顯示,如果有多個輸出裝置可使用"
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+#, fuzzy
+msgid "Use active output device"
+msgstr "在所有的輸出裝置上"
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+#, fuzzy
+msgid "Vertical viewport positions"
+msgstr "水平虛擬大小"
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr "視窗位置解決方式"
+
+#: ../metadata/place.xml.in.h:25
+#, fuzzy
+msgid "Windows that should be positioned by default"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/place.xml.in.h:26
+#, fuzzy
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr "應該要在調整比例模式中調整比例的視窗類型"
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+#, fuzzy
+msgid "Windows with fixed positions"
+msgstr "視窗裝飾"
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr "解決方式"
+
+#: ../metadata/place.xml.in.h:31
+#, fuzzy
+msgid "X Positions"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/place.xml.in.h:32
+#, fuzzy
+msgid "X Viewport Positions"
+msgstr "水平虛擬大小"
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+#, fuzzy
+msgid "Y Positions"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/place.xml.in.h:35
+#, fuzzy
+msgid "Y Viewport Positions"
+msgstr "水平虛擬大小"
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+#, fuzzy
+msgid "Regex Matching"
+msgstr "切換視窗嵌入"
+
+#: ../metadata/regex.xml.in.h:2
+#, fuzzy
+msgid "Regex window matching"
+msgstr "切換視窗嵌入"
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+#, fuzzy
+msgid "Border Color"
+msgstr "立方體色彩"
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+#, fuzzy
+msgid "Fill Color"
+msgstr "立方體色彩"
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/resize.xml.in.h:12
+msgid "Initiate Window Resize"
+msgstr "起始化視窗調整大小"
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:15
+#, fuzzy
+msgid "Outline"
+msgstr "立方體色彩"
+
+#: ../metadata/resize.xml.in.h:16
+#, fuzzy
+msgid "Outline Resize Windows"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+#, fuzzy
+msgid "Rectangle Resize Windows"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr "開始調整視窗大小"
+
+#: ../metadata/resize.xml.in.h:22
+#, fuzzy
+msgid "Start resizing window by stretching it"
+msgstr "開始使用鍵盤調整視窗大小"
+
+#: ../metadata/resize.xml.in.h:23
+#, fuzzy
+msgid "Start resizing window normally"
+msgstr "開始調整視窗大小"
+
+#: ../metadata/resize.xml.in.h:24
+#, fuzzy
+msgid "Start resizing window with outline"
+msgstr "開始調整視窗大小"
+
+#: ../metadata/resize.xml.in.h:25
+#, fuzzy
+msgid "Start resizing window with rectangle"
+msgstr "開始調整視窗大小"
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+#, fuzzy
+msgid "Stretch Resize Windows"
+msgstr "調整大小視窗"
+
+#: ../metadata/resize.xml.in.h:28
+#, fuzzy
+msgid "Windows that normal resize should be used for"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/resize.xml.in.h:29
+#, fuzzy
+msgid "Windows that outline resize should be used for"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/resize.xml.in.h:30
+#, fuzzy
+msgid "Windows that rectangle resize should be used for"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/resize.xml.in.h:31
+#, fuzzy
+msgid "Windows that stretch resize should be used for"
+msgstr "應該淡出/淡入的視窗類型"
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr "邊緣翻轉 DnD"
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr "邊緣翻轉移動"
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr "邊緣翻轉指標"
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr "翻轉時間"
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr "往左檢視區翻轉並使指標變形"
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr "將物件拖曳到螢幕邊緣時翻轉到下一個檢視區"
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr "將指標移動到螢幕邊緣時翻轉到下一個檢視區"
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr "將視窗移動到螢幕邊緣時翻轉到下一個檢視區"
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr "往右檢視區翻轉並使指標變形"
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr "指標移動時反轉 Y 軸"
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr "指標反轉 Y 軸"
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr "指標靈敏度"
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+#, fuzzy
+msgid "Raise window when rotating"
+msgstr "在按一下時提高視窗高度"
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr "旋轉立方體"
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr "往左旋轉翻轉"
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr "往右旋轉翻轉"
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr "往左旋轉"
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr "隨視窗往左旋轉"
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr "往右旋轉"
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr "隨視窗往右旋轉"
+
+#: ../metadata/rotate.xml.in.h:25
+msgid "Rotate To"
+msgstr "旋轉至"
+
+#: ../metadata/rotate.xml.in.h:26
+#, fuzzy
+msgid "Rotate To Face 1"
+msgstr "往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:27
+#, fuzzy
+msgid "Rotate To Face 1 with Window"
+msgstr "隨視窗往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr "往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr "隨視窗往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr "往面 11 旋轉"
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr "隨視窗往面 11 旋轉"
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr "往面 12 旋轉"
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr "隨視窗往面 12 旋轉"
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr "往面 2 旋轉"
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr "隨視窗往面 2 旋轉"
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr "往面 3 旋轉"
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr "隨視窗往面 3 旋轉"
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr "往面 4 旋轉"
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr "隨視窗往面 4 旋轉"
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr "往面 5 旋轉"
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr "隨視窗往面 5 旋轉"
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr "往面 6 旋轉"
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr "隨視窗往面 6 旋轉"
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr "往面 7 旋轉"
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr "隨視窗往面 7 旋轉"
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr "往面 8 旋轉"
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr "隨視窗往面 8 旋轉"
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr "往面 9 旋轉"
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr "隨視窗往面 9 旋轉"
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "旋轉立方體"
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr "旋轉桌面立方體"
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr "往左旋轉"
+
+#: ../metadata/rotate.xml.in.h:53
+#, fuzzy
+msgid "Rotate left and bring active window along"
+msgstr "往左旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr "往右旋轉"
+
+#: ../metadata/rotate.xml.in.h:55
+#, fuzzy
+msgid "Rotate right and bring active window along"
+msgstr "往右旋轉並隨同作用中視窗一起旋轉"
+
+# 轉到第1面
+#: ../metadata/rotate.xml.in.h:56
+#, fuzzy
+msgid "Rotate to cube face"
+msgstr "往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "隨視窗往面 10 旋轉"
+
+# 轉到第1面
+#: ../metadata/rotate.xml.in.h:58
+#, fuzzy
+msgid "Rotate to face 1"
+msgstr "往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:59
+#, fuzzy
+msgid "Rotate to face 1 and bring active window along"
+msgstr "往面 10 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr "往面 10 旋轉"
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr "往面 10 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr "往面 11 旋轉"
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr "往面 11 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr "往面 12 旋轉"
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr "往面 12 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr "往面 2 旋轉"
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr "往面 2 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr "往面 3 旋轉"
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr "往面 3 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr "往面 4 旋轉"
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr "往面 4 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr "往面 5 旋轉"
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr "往面 5 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr "往面 6 旋轉"
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr "往面 6 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr "往面 7 旋轉"
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr "往面 7 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr "往面 8 旋轉"
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr "往面 8 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr "往面 9 旋轉"
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr "往面 9 旋轉並隨同作用中視窗一起旋轉"
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr "往檢視區旋轉"
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "旋轉視窗"
+
+#: ../metadata/rotate.xml.in.h:84
+msgid "Rotate with window"
+msgstr "隨視窗旋轉"
+
+#: ../metadata/rotate.xml.in.h:85
+msgid "Rotation Acceleration"
+msgstr "旋轉加速"
+
+#: ../metadata/rotate.xml.in.h:86
+msgid "Rotation Speed"
+msgstr "旋轉速度"
+
+#: ../metadata/rotate.xml.in.h:87
+msgid "Rotation Timestep"
+msgstr "旋轉時間間隔"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "旋轉速度"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr "指標移動靈敏度"
+
+#: ../metadata/rotate.xml.in.h:90
+#, fuzzy
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr "嵌入立方體旋轉至頂面"
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr "嵌入立方體旋轉至頂面"
+
+#: ../metadata/rotate.xml.in.h:92
+#, fuzzy
+msgid "Snap To Bottom Face"
+msgstr "嵌入至頂面"
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr "嵌入至頂面"
+
+#: ../metadata/rotate.xml.in.h:95
+msgid "Start Rotation"
+msgstr "開始旋轉"
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr "逾時多久需翻轉檢視區"
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr "縮放"
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr "不透明度比例"
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr "大"
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr "暗化背景"
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr "調整視窗比例時暗化背景"
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr "象徵"
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr "停留時間"
+
+#: ../metadata/scale.xml.in.h:14
+msgid "Initiate Window Picker"
+msgstr "起始化視窗選擇器"
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr "啟始化所有視窗的視窗選擇器"
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr "啟始化視窗群組的視窗選擇器"
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr "在目前輸出啟始化群組的視窗選擇器"
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr "配置並開始轉換所有視窗"
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr "配置並開始轉換視窗群組"
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr "配置和開始轉換視窗"
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr "在目前輸出配置並開始轉換視窗"
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr "在所有的輸出裝置上"
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr "在目前輸出裝置上"
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr "重疊圖示"
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr "調整視窗比例後在上面重疊圖示"
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr "調整比例"
+
+#: ../metadata/scale.xml.in.h:32
+#, fuzzy
+msgid "Scale Windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr "調整比例速度"
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr "調整比例時間間隔"
+
+#: ../metadata/scale.xml.in.h:35
+msgid "Scale windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+msgid "Space between windows"
+msgstr "視窗間隔"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr "間距"
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr "停留在視窗上多久 (毫秒) 後停止調整比例模式"
+
+#: ../metadata/scale.xml.in.h:42
+#, fuzzy
+msgid "Windows that should be scaled in scale mode"
+msgstr "應該要在調整比例模式中調整比例的視窗類型"
+
+#: ../metadata/screenshot.xml.in.h:1
+#, fuzzy
+msgid "Automatically open screenshot in this application"
+msgstr "登入時自動啟動 applet"
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "目錄\n"
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "擷取螢幕畫面"
+
+#: ../metadata/screenshot.xml.in.h:5
+#, fuzzy
+msgid "Launch Application"
+msgstr "啟動應用程式"
+
+#: ../metadata/screenshot.xml.in.h:6
+#, fuzzy
+msgid "Put screenshot images in this directory"
+msgstr "遞迴搜尋此目錄"
+
+#: ../metadata/screenshot.xml.in.h:7
+#, fuzzy
+msgid "Screenshot"
+msgstr "螢幕"
+
+#: ../metadata/screenshot.xml.in.h:8
+#, fuzzy
+msgid "Screenshot plugin"
+msgstr "螢幕擷取指令行"
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr "亮度比例"
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr "飽和度比例"
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr "應用程式切換器"
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "自動發出"
+
+#: ../metadata/switcher.xml.in.h:8
+msgid "Bring To Front"
+msgstr "提到最上層"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr "將選取視窗提到最上層"
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr "切換視窗時桌面應縮小的距離"
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr "圖示"
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr "最小化"
+
+#: ../metadata/switcher.xml.in.h:15
+#, fuzzy
+msgid "Next Panel"
+msgstr "桌面立方體"
+
+#: ../metadata/switcher.xml.in.h:16
+msgid "Next window"
+msgstr "下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr "看不到切換器時快顯切換器,並選取下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr "看不到切換器時快顯切換器,並從所有視窗選取下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr "看不到切換器時快顯切換器,並選取上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr "看不到切換器時快顯切換器,並從所有視窗選取上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:24
+#, fuzzy
+msgid "Prev Panel"
+msgstr "上一張投影片"
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr "上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:26
+#, fuzzy
+msgid "Prev window (All windows)"
+msgstr "上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:27
+#, fuzzy
+msgid "Prev window (No popup)"
+msgstr "上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "選取下一個視窗"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "選取上一個視窗"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr "顯示圖示於縮圖旁"
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr "顯示最小化的視窗"
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr "切換器速度"
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr "切換器時間間隔"
+
+#: ../metadata/switcher.xml.in.h:39
+#, fuzzy
+msgid "Switcher windows"
+msgstr "調整視窗比例"
+
+#: ../metadata/switcher.xml.in.h:41
+#, fuzzy
+msgid "Windows that should be shown in switcher"
+msgstr "應該要顯示在切換器中的視窗類型"
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr "影像播放"
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr "影像播放"
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr "新增線"
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr "新增點"
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr "新增水波特效到不同的桌面動作"
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr "每滴雨之間的延遲 (毫秒)"
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr "啟用指標水波特效"
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr "線"
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr "偏移比例"
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr "點"
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr "下雨延遲"
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr "標題波紋"
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr "切換下雨"
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr "切換下雨特效"
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr "切換雨刷"
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr "切換雨刷效果"
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr "水波特效"
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr "水波偏移比例"
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr "視窗標題的波紋效果"
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr "定焦特效"
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr "定焦視窗特效"
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "定焦視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr "摩擦力"
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "抓取視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr "格線解析度"
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr "反轉視窗嵌入"
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr "讓視窗晃動"
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr "映射特效"
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr "映射視窗特效"
+
+#: ../metadata/wobbly.xml.in.h:11
+#, fuzzy
+msgid "Map Windows"
+msgstr "映射視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr "最大化特效"
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr "最小格線大小"
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr "最小頂點格線大小"
+
+#: ../metadata/wobbly.xml.in.h:15
+#, fuzzy
+msgid "Move Windows"
+msgstr "移動視窗"
+
+# 'driver' as in '(hardware) driver update'
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr "晃動"
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr "嵌入反轉"
+
+#: ../metadata/wobbly.xml.in.h:19
+msgid "Snap windows"
+msgstr "嵌入視窗"
+
+#: ../metadata/wobbly.xml.in.h:20
+msgid "Spring Friction"
+msgstr "彈簧摩擦力"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr "彈簧 K 值"
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr "彈簧常數"
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr "切換視窗嵌入"
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr "針對搖擺視窗特效使用彈簧模式"
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr "頂點格線解析度"
+
+#: ../metadata/wobbly.xml.in.h:26
+#, fuzzy
+msgid "Windows that should wobble when focused"
+msgstr "應該要在定焦時搖擺的視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:27
+#, fuzzy
+msgid "Windows that should wobble when grabbed"
+msgstr "應該要在抓取時搖擺的視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:28
+#, fuzzy
+msgid "Windows that should wobble when mapped"
+msgstr "應該要在映射時搖擺的視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:29
+#, fuzzy
+msgid "Windows that should wobble when moved"
+msgstr "應該要在移動時搖擺的視窗類型"
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr "視窗最大化和解除最大化時啟用搖擺特效"
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr "搖擺視窗"
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr "線性過濾器"
+
+#: ../metadata/zoom.xml.in.h:5
+#, fuzzy
+msgid "Use linear filter when zoomed in"
+msgstr "在放大時使用線性過濾器"
+
+#: ../metadata/zoom.xml.in.h:6
+msgid "Zoom Desktop"
+msgstr "縮放桌面"
+
+#: ../metadata/zoom.xml.in.h:7
+msgid "Zoom In"
+msgstr "放大"
+
+#: ../metadata/zoom.xml.in.h:8
+msgid "Zoom Out"
+msgstr "縮小"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "放大"
+
+#: ../metadata/zoom.xml.in.h:10
+msgid "Zoom Speed"
+msgstr "縮放速度"
+
+#: ../metadata/zoom.xml.in.h:11
+msgid "Zoom Timestep"
+msgstr "縮放時間間隔"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr "縮放和平移桌面立方體"
+
+#: ../metadata/zoom.xml.in.h:13
+msgid "Zoom factor"
+msgstr "縮放倍率"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "放大"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "指令行 1"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "執行指令 1"
+
+#, fuzzy
+#~ msgid "Screenshot commands"
+#~ msgstr "螢幕擷取指令行"
+
+#, fuzzy
+#~ msgid "Screenshot key bindings"
+#~ msgstr "螢幕擷取指令行"
+
+#~ msgid "Decrease window opacity"
+#~ msgstr "降低視窗不透明度"
+
+#~ msgid "Increase window opacity"
+#~ msgstr "提高視窗不透明度"
+
+#, fuzzy
+#~ msgid "Opacity windows"
+#~ msgstr "視窗間隔"
+
+#~ msgid "Background Images"
+#~ msgstr "背景圖案"
+
+#~ msgid "Background images"
+#~ msgstr "背景圖案"
+
+#, fuzzy
+#~ msgid "Place windows on a plane"
+#~ msgstr "將視窗放到立方體"
+
+#, fuzzy
+#~ msgid "Plane Down"
+#~ msgstr "Page Down"
+
+#, fuzzy
+#~ msgid "Plane Left"
+#~ msgstr "往左旋轉"
+
+#, fuzzy
+#~ msgid "Plane Right"
+#~ msgstr "往右旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 1"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 10"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 11"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 12"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 2"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 3"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 4"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 5"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 6"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 7"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 8"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face 9"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane Up"
+#~ msgstr "Page Up"
+
+#, fuzzy
+#~ msgid "Plane down"
+#~ msgstr "放置視窗"
+
+#, fuzzy
+#~ msgid "Plane left"
+#~ msgstr "往左旋轉"
+
+#, fuzzy
+#~ msgid "Plane right"
+#~ msgstr "往右旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 1"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 10"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 11"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 12"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 2"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 3"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 4"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 5"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 6"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 7"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 8"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face 9"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane up"
+#~ msgstr "Page Up"
+
+#~ msgid "Open window menu"
+#~ msgstr "開啟視窗功能表"
+
+#~ msgid "Dock"
+#~ msgstr "黏合"
+
+#~ msgid "Toolbar"
+#~ msgstr "工具列"
+
+#~ msgid "Menu"
+#~ msgstr "功能表"
+
+#~ msgid "Utility"
+#~ msgstr "公用程式"
+
+#~ msgid "Splash"
+#~ msgstr "開頭顯示畫面"
+
+#~ msgid "Dialog"
+#~ msgstr "對話方塊"
+
+#~ msgid "DropdownMenu"
+#~ msgstr "DropdownMenu"
+
+#~ msgid "PopupMenu"
+#~ msgstr "PopupMenu"
+
+#~ msgid "Tooltip"
+#~ msgstr "工具提示"
+
+#~ msgid "Notification"
+#~ msgstr "通知"
+
+#~ msgid "Combo"
+#~ msgstr "組合"
+
+#~ msgid "Dnd"
+#~ msgstr "Dnd"
+
+#~ msgid "ModalDialog"
+#~ msgstr "ModalDialog"
+
+#~ msgid "Fullscreen"
+#~ msgstr "全螢幕"
+
+#~ msgid "Unknown"
+#~ msgstr "未知的"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command0 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command1 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command10 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command10 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command11 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command11 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command2 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command3 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command4 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command5 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command6 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command7 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command8 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "啟用時將執行經 command9 識別之外圍程序指令的按鍵組合"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add line (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Add point (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Advance to next slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Amount of brightness in percent (0-100)"
+#~ msgstr "亮度比例"
+
+#, fuzzy
+#~ msgid "Amount of opacity in percent (0-100)"
+#~ msgstr "不透明度比例"
+
+#, fuzzy
+#~ msgid "Amount of saturation in percent (0-100)"
+#~ msgstr "飽和度比例"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "飽和度"
+
+#, fuzzy
+#~ msgid ""
+#~ "Clear (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Close active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Decrease window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Delay (in ms) between each rain-drop (0-3600000)"
+#~ msgstr "每滴雨之間的延遲 (毫秒)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Distance desktop should be zoom out while switching windows (0.0-5.0)"
+#~ msgstr "切換視窗時桌面應縮小的距離"
+
+#~ msgid "Do not modify"
+#~ msgstr "不要修改"
+
+#, fuzzy
+#~ msgid ""
+#~ "Draw using tool (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Drop shadow X offset (-16-16)"
+#~ msgstr "投影 X 軸偏移"
+
+#, fuzzy
+#~ msgid "Drop shadow Y offset (-16-16)"
+#~ msgstr "投影 Y 軸偏移"
+
+#, fuzzy
+#~ msgid "Drop shadow opacity (0.01-6.00)"
+#~ msgstr "投影半徑不透明度"
+
+#, fuzzy
+#~ msgid "Drop shadow radius (0.0-48.0)"
+#~ msgstr "投影半徑"
+
+#, fuzzy
+#~ msgid ""
+#~ "Enable pointer water effects (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to left viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Flip to right viewport and warp pointer (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#~ msgid "Focus Window Effect (None, Shiver)"
+#~ msgstr "定焦視窗特效 (無、瞬間)"
+
+#, fuzzy
+#~ msgid "Focus prevention windows (match)"
+#~ msgstr "選取上一個視窗"
+
+#~ msgid "Fold Acceleration (1.0-20.0)"
+#~ msgstr "摺疊加速 (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Fold Speed (0.0-50.0)"
+#~ msgstr "摺疊速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Fold Timestep (0.0-50.0)"
+#~ msgstr "摺疊時間間隔 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Gaussian radius (1-15)"
+#~ msgstr "俄羅斯聯邦"
+
+#, fuzzy
+#~ msgid "Gaussian strength (0.00-1.00)"
+#~ msgstr "俄語"
+
+#, fuzzy
+#~ msgid ""
+#~ "Go back to previous slide (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Hide all windows and focus desktop (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Increase window opacity (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate drawing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate annotate erasing (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate clone selection (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Initiate rectangle screenshot (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Interval before raising selected windows (0-10000)"
+#~ msgstr "提高選定視窗的時間間隔"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming all windows (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming window group (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Layout and start transforming windows on current output (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "在目前輸出配置並開始轉換視窗"
+
+#, fuzzy
+#~ msgid ""
+#~ "Lower window beneath other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Make window shiver (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#~ msgid "Map Window Effect (None, Shiver)"
+#~ msgstr "映射視窗特效 (無、瞬間)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window horizontally (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Maximize active window vertically (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Minimize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Minimize speed (0.0-50.0)"
+#~ msgstr "最小化速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimize timestep (0.0-50.0)"
+#~ msgstr "最小化速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Minimum Vertex Grid Size (4-128)"
+#~ msgstr "最小頂點格線大小"
+
+#, fuzzy
+#~ msgid "Number of virtual desktops (1-36)"
+#~ msgstr "虛擬桌面數"
+
+#, fuzzy
+#~ msgid "Opacity change step (1-50)"
+#~ msgstr "不透明度變更間隔"
+
+#, fuzzy
+#~ msgid "Opacity level of moving windows (1-100)"
+#~ msgstr "移動視窗的不透明度"
+
+#, fuzzy
+#~ msgid "Opacity level of resizing windows (1-100)"
+#~ msgstr "移動視窗的不透明度"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open a terminal (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Open window menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Overlay an icon on windows once they are scaled (None, Emblem, Big)"
+#~ msgstr "調整視窗比例後在上面重疊圖示"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane down (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Plane up (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#~ msgid "Plugins that this must load before"
+#~ msgstr "在此之前必須先載入的外掛程式"
+
+#~ msgid "Plugins that this requires"
+#~ msgstr "這時需要的外掛程式"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "看不到切換器時快顯切換器,並從所有視窗選取下一個視窗"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select next window out of all windows "
+#~ "(Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "看不到切換器時快顯切換器,並從所有視窗選取下一個視窗"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window (Left, Right, "
+#~ "Top, Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "看不到切換器時快顯切換器,並從所有視窗選取上一個視窗"
+
+#, fuzzy
+#~ msgid ""
+#~ "Popup switcher if not visible and select previous window out of all "
+#~ "windows (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "看不到切換器時快顯切換器,並從所有視窗選取上一個視窗"
+
+#, fuzzy
+#~ msgid ""
+#~ "Pulse effect (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Raise window above other windows (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate left and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate right and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 1 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 10 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 11 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 12 and bring active window along (Left, Right, Top, "
+#~ "Bottom, TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 2 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 3 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 4 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 5 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 6 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 7 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 8 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to face 9 and bring active window along (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate to viewport (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Rotate with window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Rotation Acceleration (1.0-20.0)"
+#~ msgstr "摺疊加速 (1.0-20.0)"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "縮放速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Rotation Timestep (0.0-50.0)"
+#~ msgstr "縮放時間間隔 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale speed (0.0-50.0)"
+#~ msgstr "調整比例速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Scale timestep (0.0-50.0)"
+#~ msgstr "調整比例時間間隔 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for horizontal virtual size (1-32)"
+#~ msgstr "水平虛擬大小的螢幕大小倍數"
+
+#, fuzzy
+#~ msgid "Screen size multiplier for vertical virtual size (1-32)"
+#~ msgstr "垂直虛擬大小的螢幕大小倍數"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select next window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Select previous window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Sensitivity of pointer movement (0.01-100.00)"
+#~ msgstr "指標移動靈敏度"
+
+#~ msgid "Shade resistance (0-100)"
+#~ msgstr "遮蔽阻力 (0-100)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show Run Application dialog (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Show the main menu (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Space between windows (0-250)"
+#~ msgstr "視窗間隔"
+
+#, fuzzy
+#~ msgid "Spring Friction (0.0-10.0)"
+#~ msgstr "彈簧摩擦力"
+
+#, fuzzy
+#~ msgid "Spring Konstant (0.0-10.0)"
+#~ msgstr "彈簧常數"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start Rotation (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start moving window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Start resizing window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Switcher speed (0.0-50.0)"
+#~ msgstr "調整比例速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Switcher timestep (0.0-50.0)"
+#~ msgstr "調整比例時間間隔 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Take a screenshot of a window (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#~ msgid "Texture filtering (Fast, Good, Best)"
+#~ msgstr "材質篩選 (快、好、最佳)"
+
+#, fuzzy
+#~ msgid "The rate at which the screen is redrawn (times/second) (1-200)"
+#~ msgstr "螢幕重新描繪的速率 (次數/秒)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Time (in ms) before scale mode is terminated when hovering over a window "
+#~ "(50-10000)"
+#~ msgstr "停留在視窗上多久 (毫秒) 後停止調整比例模式"
+
+#, fuzzy
+#~ msgid "Timeout before flipping viewport (0-1000)"
+#~ msgstr "逾時多久需翻轉檢視區"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized horizontally (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window maximized vertically (Left, Right, Top, Bottom, "
+#~ "TopLeft, TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle active window shaded (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle rain effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle use of slow animations (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle window snapping (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Toggle wiper effect (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#~ msgid "USe linear filter when zoomed in"
+#~ msgstr "在放大時使用線性過濾器"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfold cube (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unmaximize active window (Left, Right, Top, Bottom, TopLeft, TopRight, "
+#~ "BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Vertex Grid Resolution (1-64)"
+#~ msgstr "頂點格線解析度"
+
+#, fuzzy
+#~ msgid "Water offset scale (0.0-10.0)"
+#~ msgstr "水波偏移比例"
+
+#, fuzzy
+#~ msgid ""
+#~ "Wave effect from window title (Left, Right, Top, Bottom, TopLeft, "
+#~ "TopRight, BottomLeft, BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Window blur speed (0.0-10.0)"
+#~ msgstr "Window 淡出/淡入速度"
+
+#, fuzzy
+#~ msgid "Window fade speed (0.0-25.0)"
+#~ msgstr "Window 淡出/淡入速度"
+
+#, fuzzy
+#~ msgid "Windows that should be affected by focus blur (match)"
+#~ msgstr "應該淡出/淡入的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be decorated (match)"
+#~ msgstr "應該淡出/淡入的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be fading (match)"
+#~ msgstr "應該淡出/淡入的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be have a shadow (match)"
+#~ msgstr "應該淡出/淡入的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be scaled in scale mode (match)"
+#~ msgstr "應該要在調整比例模式中調整比例的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be shown in switcher (match)"
+#~ msgstr "應該要顯示在切換器中的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should be transformed when minimized (match)"
+#~ msgstr "最小化時應該轉換的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should use alpha blur by default (match)"
+#~ msgstr "應該淡出/淡入的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when focused (match)"
+#~ msgstr "應該要在定焦時搖擺的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when grabbed (match)"
+#~ msgstr "應該要在抓取時搖擺的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when mapped (match)"
+#~ msgstr "應該要在映射時搖擺的視窗類型"
+
+#, fuzzy
+#~ msgid "Windows that should wobble when moved (match)"
+#~ msgstr "應該要在移動時搖擺的視窗類型"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom In (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid ""
+#~ "Zoom Out (Left, Right, Top, Bottom, TopLeft, TopRight, BottomLeft, "
+#~ "BottomRight)"
+#~ msgstr "應該要起始化調整比例模式的熱角 (左上角、右上角、左下角、右下角)"
+
+#, fuzzy
+#~ msgid "Zoom Speed (0.0-50.0)"
+#~ msgstr "縮放速度 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom Timestep (0.0-50.0)"
+#~ msgstr "縮放時間間隔 (0.1-50.0)"
+
+#, fuzzy
+#~ msgid "Zoom factor (1.01-3.00)"
+#~ msgstr "縮放倍率"
+
+#~ msgid "."
+#~ msgstr "."
+
+#, fuzzy
+#~ msgid "Plane To Face %d"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face %d"
+#~ msgstr "往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane To Face %d with Window"
+#~ msgstr "隨視窗往面 %d 旋轉"
+
+#, fuzzy
+#~ msgid "Plane to face %d and bring active window along"
+#~ msgstr "往面 %d 旋轉並隨同作用中視窗一起旋轉"
+
+#~ msgid "Rotate To Face %d"
+#~ msgstr "往面 %d 旋轉"
+
+#~ msgid "Rotate to face %d"
+#~ msgstr "往面 %d 旋轉"
+
+#~ msgid "Rotate To Face %d with Window"
+#~ msgstr "隨視窗往面 %d 旋轉"
+
+#~ msgid "Rotate to face %d and bring active window along"
+#~ msgstr "往面 %d 旋轉並隨同作用中視窗一起旋轉"
+
+#~ msgid "Command line %d"
+#~ msgstr "指令行 %d"
+
+#~ msgid "Command line to be executed in shell when run_command%d is invoked"
+#~ msgstr "啟用 run_command%d 時要在外圍程序中執行的指令行"
+
+#~ msgid "Run command %d"
+#~ msgstr "執行指令 %d"
+
+#~ msgid ""
+#~ "A keybinding that when invoked, will run the shell command identified by "
+#~ "command%d"
+#~ msgstr "啟用時將執行經 command%d 識別之外圍程序指令的按鍵組合"
+
+#~ msgid "Move Window Types"
+#~ msgstr "移動視窗類型"
+
+#~ msgid "Corners"
+#~ msgstr "角"
+
+#~ msgid "Focus window when mouse moves over them"
+#~ msgstr "在滑鼠移動到上方時啟用定焦視窗"
+
+#~ msgid "Initiate All Windows"
+#~ msgstr "起始化全部視窗"
+
+#~ msgid "Initiate Keyboard Window Move"
+#~ msgstr "啟始以鍵盤移動視窗"
+
+#~ msgid "Initiate Keyboard Window Resize"
+#~ msgstr "啟始以鍵盤調整視窗大小"
+
+#~ msgid "Initiate Window Switcher"
+#~ msgstr "起始化視窗切換器"
+
+#~ msgid "Modifier to show switcher for all windows"
+#~ msgstr "可使所有視窗顯示切換器的修改鍵"
+
+#~ msgid "Return from scale view"
+#~ msgstr "從比例檢視返回"
+
+#~ msgid "Show switcher"
+#~ msgstr "顯示切換器"
+
+#~ msgid "Sloppy Focus"
+#~ msgstr "寬鬆定焦"
+
+#~ msgid "Start moving window using keyboard"
+#~ msgstr "開始使用鍵盤移動視窗"
+
+#~ msgid "Terminate"
+#~ msgstr "終止"
+
+#~ msgid "Water effect on system beep"
+#~ msgstr "系統發出嗶聲時啟用水波特效"
+
+#~ msgid ""
+#~ "Window types that should be fading (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要淡出的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭顯示、對話"
+#~ "方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should be transformed when minimized (Desktop, Dock, "
+#~ "Toolbar, Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, "
+#~ "Unknown)"
+#~ msgstr ""
+#~ "應該要在最小化時轉換的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭"
+#~ "顯示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should scaled in scale mode (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要在調整比例模式中調整比例的視窗類型 (桌面、停駐、工具列、功能表、公用"
+#~ "程式、開頭顯示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should shown in switcher (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要顯示在切換器中的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭"
+#~ "顯示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should wobble when focused (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要在定焦時搖擺的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭顯"
+#~ "示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should wobble when grabbed (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要在抓取時搖擺的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭顯"
+#~ "示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should wobble when mapped (Desktop, Dock, Toolbar, "
+#~ "Menu, Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要在映射時搖擺的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭顯"
+#~ "示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid ""
+#~ "Window types that should wobble when moved (Desktop, Dock, Toolbar, Menu, "
+#~ "Utility, Splash, Dialog, ModalDialog, Normal, Fullscreen, Unknown)"
+#~ msgstr ""
+#~ "應該要在移動時搖擺的視窗類型 (桌面、停駐、工具列、功能表、公用程式、開頭顯"
+#~ "示、對話方塊、強制回應對話方塊、一般、全螢幕、未知的)"
+
+#~ msgid "Wobble effect on system beep"
+#~ msgstr "系統發出嗶聲時啟用搖擺特效"
diff --git a/po/zu.po b/po/zu.po
new file mode 100644
index 0000000..54a4e08
--- /dev/null
+++ b/po/zu.po
@@ -0,0 +1,3159 @@
+# Copyright (C) 2007 SuSE Linux Products GmbH, Nuernberg
+# This file is distributed under the same license as the package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: installation\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-19 09:10+0100\n"
+"PO-Revision-Date: 2006-11-03 14:26\n"
+"Last-Translator: Novell Language <language@novell.com>\n"
+"Language-Team: Novell Language <language@novell.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../gtk/gnome/50-compiz-desktop-key.xml.in.h:1
+msgid "Desktop"
+msgstr ""
+
+#: ../gtk/gnome/50-compiz-key.xml.in.h:1
+msgid "Window Management"
+msgstr ""
+
+#: ../gtk/gnome/compiz.desktop.in.h:1
+msgid "Compiz"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:426 ../metadata/scale.xml.in.h:25
+#: ../metadata/wobbly.xml.in.h:16
+msgid "None"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:427
+#: ../gtk/window-decorator/gtk-window-decorator.c:4616
+msgid "Shade"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:428 ../metadata/place.xml.in.h:9
+msgid "Maximize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:429
+msgid "Maximize Horizontally"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:430
+msgid "Maximize Vertically"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:431
+msgid "Minimize"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:432
+msgid "Raise"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:433
+msgid "Lower"
+msgstr ""
+
+#: ../gtk/gnome/compiz-window-manager.c:434
+#: ../gtk/window-decorator/gtk-window-decorator.c:4597
+#: ../metadata/core.xml.in.in.h:100
+msgid "Window Menu"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:1
+msgid "Action to take when scrolling the mouse wheel on a window title bar."
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:2
+msgid "Blur type"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:3
+msgid "Metacity theme active window opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:4
+msgid "Metacity theme active window opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:5
+msgid "Metacity theme opacity"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:6
+msgid "Metacity theme opacity shade"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:7
+msgid "Opacity to use for active windows with metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:8
+msgid "Opacity to use for metacity theme decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:9
+msgid ""
+"Shade active windows with metacity theme decorations from opaque to "
+"translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:10
+msgid ""
+"Shade windows with metacity theme decorations from opaque to translucent"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:11
+msgid "Title bar mouse wheel action"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:12
+msgid "Type of blur used for window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:13
+msgid "Use metacity theme"
+msgstr ""
+
+#: ../gtk/window-decorator/gwd.schemas.in.h:14
+msgid "Use metacity theme when drawing window decorations"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4405
+#: ../metadata/core.xml.in.in.h:12
+msgid "Close Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4427
+#: ../metadata/core.xml.in.in.h:93
+msgid "Unmaximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4430
+#: ../metadata/core.xml.in.in.h:49
+msgid "Maximize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4472
+#: ../metadata/core.xml.in.in.h:55
+msgid "Minimize Window"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4636
+msgid "Make Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4662
+msgid "Stick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4682
+msgid "Unshade"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4702
+msgid "Unmake Above"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:4728
+msgid "Unstick"
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5076
+#, c-format
+msgid "The window \"%s\" is not responding."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5085
+msgid ""
+"Forcing this application to quit will cause you to lose any unsaved changes."
+msgstr ""
+
+#: ../gtk/window-decorator/gtk-window-decorator.c:5100
+msgid "_Force Quit"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:1
+#, fuzzy
+msgid "Annotate"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:2
+msgid "Annotate Fill Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:3
+msgid "Annotate Stroke Color"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:4
+#, fuzzy
+msgid "Annotate plugin"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:5
+msgid "Clear"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:6
+msgid "Draw"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:7
+msgid "Draw using tool"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:8
+msgid "Fill color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:9 ../metadata/clone.xml.in.h:2
+#: ../metadata/rotate.xml.in.h:12 ../metadata/screenshot.xml.in.h:3
+#: ../metadata/water.xml.in.h:6 ../metadata/zoom.xml.in.h:2
+#, fuzzy
+msgid "Initiate"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:10
+#, fuzzy
+msgid "Initiate annotate drawing"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:11
+#, fuzzy
+msgid "Initiate annotate erasing"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:12
+#, fuzzy
+msgid "Initiate erase"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/annotate.xml.in.h:13
+msgid "Line width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:14
+msgid "Line width for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:15
+msgid "Stroke color for annotations"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:16
+msgid "Stroke width"
+msgstr ""
+
+#: ../metadata/annotate.xml.in.h:17
+msgid "Stroke width for annotations"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:1
+msgid "4xBilinear"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:2
+msgid "Alpha Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:3
+msgid "Alpha blur windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:4
+msgid "Blur Filter"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:5
+#, fuzzy
+msgid "Blur Occlusion"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/blur.xml.in.h:6
+#, fuzzy
+msgid "Blur Saturation"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/blur.xml.in.h:7
+msgid "Blur Speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:8
+msgid "Blur Windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:9
+msgid "Blur behind translucent parts of windows"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:10
+#, fuzzy
+msgid "Blur saturation"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/blur.xml.in.h:11
+#, fuzzy
+msgid "Blur windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/blur.xml.in.h:12
+msgid "Blur windows that doesn't have focus"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:13
+msgid "Disable blurring of screen regions obscured by other windows."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:14
+msgid "Filter method used for blurring"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:15
+msgid "Focus Blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:16
+#, fuzzy
+msgid "Focus blur windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/blur.xml.in.h:17
+msgid "Gaussian"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:18
+msgid "Gaussian Radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:19
+msgid "Gaussian Strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:20
+msgid "Gaussian radius"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:21
+msgid "Gaussian strength"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:22
+msgid "Independent texture fetch"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:23 ../metadata/cube.xml.in.h:27
+#: ../metadata/decoration.xml.in.h:10 ../metadata/switcher.xml.in.h:14
+msgid "Mipmap"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:24
+msgid "Mipmap LOD"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:25
+msgid "Mipmap level-of-detail"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:26
+msgid "Pulse"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:27
+msgid "Pulse effect"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:28
+msgid ""
+"Use the available texture units to do as many as possible independent "
+"texture fetches."
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:29
+msgid "Window blur speed"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:30
+msgid "Windows that should be affected by focus blur"
+msgstr ""
+
+#: ../metadata/blur.xml.in.h:31
+msgid "Windows that should be use alpha blur by default"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:1
+msgid "Clone Output"
+msgstr ""
+
+#: ../metadata/clone.xml.in.h:3
+#, fuzzy
+msgid "Initiate clone selection"
+msgstr "Ukukhethwa Kwekhathalogi"
+
+#: ../metadata/clone.xml.in.h:4
+msgid "Output clone handler"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:1
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:2
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:3
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:4
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:5
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:6
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:7
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:8
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:9
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:10
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:11
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:12
+msgid ""
+"A button binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:13
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:14
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:15
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:16
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:17
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:18
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:19
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:20
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:21
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:22
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:23
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:24
+msgid ""
+"A keybinding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:25
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command0"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:26
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command1"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:27
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command10"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:28
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command11"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:29
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command2"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:30
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command3"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:31
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command4"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:32
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command5"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:33
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command6"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:34
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command7"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:35
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command8"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:36
+msgid ""
+"An edge binding that when invoked, will run the shell command identified by "
+"command9"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:37
+msgid "Assigns bindings to arbitrary commands"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:38
+msgid "Button Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:39
+#, fuzzy
+msgid "Command line 0"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:40
+#, fuzzy
+msgid "Command line 1"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:41
+#, fuzzy
+msgid "Command line 10"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:42
+#, fuzzy
+msgid "Command line 11"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:43
+#, fuzzy
+msgid "Command line 2"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:44
+#, fuzzy
+msgid "Command line 3"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:45
+#, fuzzy
+msgid "Command line 4"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:46
+#, fuzzy
+msgid "Command line 5"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:47
+#, fuzzy
+msgid "Command line 6"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:48
+#, fuzzy
+msgid "Command line 7"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:49
+#, fuzzy
+msgid "Command line 8"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:50
+#, fuzzy
+msgid "Command line 9"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:51
+msgid "Command line to be executed in shell when run_command0 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:52
+msgid "Command line to be executed in shell when run_command1 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:53
+msgid "Command line to be executed in shell when run_command10 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:54
+msgid "Command line to be executed in shell when run_command11 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:55
+msgid "Command line to be executed in shell when run_command2 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:56
+msgid "Command line to be executed in shell when run_command3 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:57
+msgid "Command line to be executed in shell when run_command4 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:58
+msgid "Command line to be executed in shell when run_command5 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:59
+msgid "Command line to be executed in shell when run_command6 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:60
+msgid "Command line to be executed in shell when run_command7 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:61
+msgid "Command line to be executed in shell when run_command8 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:62
+msgid "Command line to be executed in shell when run_command9 is invoked"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:63 ../metadata/gnomecompat.xml.in.h:1
+#, fuzzy
+msgid "Commands"
+msgstr "Amakhomandi:"
+
+#: ../metadata/commands.xml.in.h:64
+msgid "Edge Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:65
+msgid "Key Bindings"
+msgstr ""
+
+#: ../metadata/commands.xml.in.h:66
+#, fuzzy
+msgid "Run command 0"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:67
+#, fuzzy
+msgid "Run command 1"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:68
+#, fuzzy
+msgid "Run command 10"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:69
+#, fuzzy
+msgid "Run command 11"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:70
+#, fuzzy
+msgid "Run command 2"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:71
+#, fuzzy
+msgid "Run command 3"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:72
+#, fuzzy
+msgid "Run command 4"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:73
+#, fuzzy
+msgid "Run command 5"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:74
+#, fuzzy
+msgid "Run command 6"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:75
+#, fuzzy
+msgid "Run command 7"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:76
+#, fuzzy
+msgid "Run command 8"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/commands.xml.in.h:77
+#, fuzzy
+msgid "Run command 9"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/core.xml.in.in.h:1
+msgid "Active Plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:2
+msgid ""
+"Allow drawing of fullscreen windows to not be redirected to offscreen pixmaps"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:3
+msgid "Audible Bell"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:4
+msgid "Audible system beep"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:5
+msgid "Auto-Raise"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:6
+msgid "Auto-Raise Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:7
+msgid "Automatic detection of output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:8
+msgid "Automatic detection of refresh rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:9
+msgid "Best"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:10
+msgid "Click To Focus"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:11
+msgid "Click on window moves input focus to it"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:13
+msgid "Close active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:14
+msgid "Default Icon"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:15
+msgid "Default window icon image"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:16
+msgid "Desktop Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:17
+msgid "Detect Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:18
+msgid "Detect Refresh Rate"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:19
+msgid "Display Settings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:20
+msgid ""
+"Duration the pointer must rest in a screen edge before an edge action is "
+"taken."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:21
+msgid "Edge Trigger Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:22
+msgid "Fast"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:23
+msgid "Focus &amp; Raise Behaviour"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:24
+#, fuzzy
+msgid "Focus Prevention Level"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/core.xml.in.in.h:25
+msgid "Focus Prevention Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:26
+#, fuzzy
+msgid "Focus prevention windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/core.xml.in.in.h:27
+msgid "Force independent output painting."
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:28
+msgid "General Options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:29
+msgid "General compiz options"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:30
+msgid "Good"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:31
+msgid "Hide Skip Taskbar Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:32
+msgid "Hide all windows and focus desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:33
+msgid "Hide windows not in taskbar when entering show desktop mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:34
+msgid "High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:35
+msgid "Horizontal Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:36
+msgid "If available use compression for textures converted from images"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:37
+msgid "Ignore Hints When Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:38
+msgid "Ignore size increment and aspect hints when window is maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:39
+msgid "Interval before raising selected windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:40
+msgid "Interval between ping messages"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:41
+msgid "Key bindings"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:42
+msgid "Level of focus stealing prevention"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:43
+msgid "Lighting"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:44
+msgid "List of currently active plugins"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:45
+msgid "List of strings describing output devices"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:46
+msgid "Low"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:47
+msgid "Lower Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:48
+msgid "Lower window beneath other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:50
+msgid "Maximize Window Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:51
+msgid "Maximize Window Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:52
+msgid "Maximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:53
+msgid "Maximize active window horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:54
+msgid "Maximize active window vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:56
+msgid "Minimize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:57 ../metadata/resize.xml.in.h:13
+msgid "Normal"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:58
+msgid "Number of Desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:59
+msgid "Number of virtual desktops"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:60
+msgid "Off"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:61
+msgid "Only perform screen updates during vertical blanking period"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:62
+msgid "Outputs"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:63
+msgid "Overlapping Output Handling"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:64
+msgid "Paint each output device independly, even if the output devices overlap"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:65
+msgid "Ping Delay"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:66
+msgid "Prefer larger output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:67
+msgid "Prefer smaller output"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:68
+msgid "Raise On Click"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:69
+msgid "Raise Window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:70
+msgid "Raise selected windows after interval"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:71
+msgid "Raise window above other windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:72
+msgid "Raise windows when clicked"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:73
+#, fuzzy
+msgid "Refresh Rate"
+msgstr "&Vuselela kabusha"
+
+#: ../metadata/core.xml.in.in.h:74
+msgid "Screen size multiplier for horizontal virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:75
+msgid "Screen size multiplier for vertical virtual size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:76
+msgid "Show Desktop"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:77
+msgid "Slow Animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:78
+msgid "Smart mode"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:79
+msgid "Sync To VBlank"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:80
+msgid "Texture Compression"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:81
+msgid "Texture Filter"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:82
+msgid "Texture filtering"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:83
+msgid "The rate at which the screen is redrawn (times/second)"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:84
+msgid "Toggle Window Maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:85
+msgid "Toggle Window Maximized Horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:86
+msgid "Toggle Window Maximized Vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:87
+msgid "Toggle Window Shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:88
+msgid "Toggle active window maximized"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:89
+msgid "Toggle active window maximized horizontally"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:90
+msgid "Toggle active window maximized vertically"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:91
+msgid "Toggle active window shaded"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:92
+msgid "Toggle use of slow animations"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:94
+msgid "Unmaximize active window"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:95
+msgid "Unredirect Fullscreen Windows"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:96
+msgid "Use diffuse light when screen is transformed"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:97
+msgid "Vertical Virtual Size"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:98
+msgid "Very High"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:99
+msgid "Which one of overlapping output devices should be preferred"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:101
+msgid "Window menu button binding"
+msgstr ""
+
+#: ../metadata/core.xml.in.in.h:102
+msgid "Window menu key binding"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:1 ../metadata/rotate.xml.in.h:1
+msgid "Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:2
+msgid "Adjust Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:3
+msgid "Adjust top face image to rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:4
+msgid "Advance to next slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:5
+msgid "Animate Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:6
+msgid "Animate skydome when rotating cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:7 ../metadata/scale.xml.in.h:2
+msgid "Appearance"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:8
+#, fuzzy
+msgid "Automatic"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/cube.xml.in.h:9 ../metadata/scale.xml.in.h:3
+msgid "Behaviour"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:10
+msgid "Color of top and bottom sides of the cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:11
+msgid "Color to use for the bottom color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:12
+msgid "Color to use for the top color-stop of the skydome-fallback gradient"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:13
+msgid "Cube Caps"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:14
+msgid "Cube Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:15
+msgid "Desktop Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:16
+msgid "Fold Acceleration"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:17
+msgid "Fold Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:18
+msgid "Fold Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:19 ../metadata/switcher.xml.in.h:11
+msgid "Generate mipmaps when possible for higher quality scaling"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:20
+msgid "Go back to previous slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:21
+msgid "Image files"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:22
+msgid "Image to use as texture for the skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:23
+msgid "Initiates Cube transparency only if rotation is mouse driven."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:24
+msgid "Inside Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:25
+msgid "Inside cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:26
+msgid "List of PNG and SVG files that should be rendered on top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:28 ../metadata/place.xml.in.h:10
+#: ../metadata/scale.xml.in.h:24
+msgid "Multi Output Mode"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:29
+msgid "Multiple cubes"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:30
+msgid "Next Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:31
+msgid "One big cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:32
+msgid "Opacity During Rotation"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:33
+msgid "Opacity When Not Rotating"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:34
+msgid "Opacity of desktop window during rotation."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:35
+msgid "Opacity of desktop window when not rotating."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:36
+msgid "Place windows on cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:37
+msgid "Prev Slide"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:38
+msgid "Render skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:39
+msgid "Scale image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:40
+msgid "Scale images to cover top face of cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:41
+msgid "Selects how the cube is displayed if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:42
+msgid "Skydome"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:43
+msgid "Skydome Gradient End Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:44
+msgid "Skydome Gradient Start Color"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:45
+msgid "Skydome Image"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:46 ../metadata/minimize.xml.in.h:7
+#: ../metadata/rotate.xml.in.h:94 ../metadata/scale.xml.in.h:39
+#: ../metadata/switcher.xml.in.h:36 ../metadata/zoom.xml.in.h:3
+msgid "Speed"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:47 ../metadata/minimize.xml.in.h:8
+#: ../metadata/rotate.xml.in.h:97 ../metadata/scale.xml.in.h:41
+#: ../metadata/switcher.xml.in.h:40 ../metadata/zoom.xml.in.h:4
+msgid "Timestep"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:48
+msgid "Transparency Only on Mouse Rotate"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:49
+msgid "Transparent Cube"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:50
+msgid "Unfold"
+msgstr ""
+
+#: ../metadata/cube.xml.in.h:51
+msgid "Unfold cube"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:1
+msgid "Dbus"
+msgstr ""
+
+#: ../metadata/dbus.xml.in.h:2
+msgid "Dbus Control Backend"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:1
+msgid "Allow mipmaps to be generated for decoration textures"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:2
+#, fuzzy
+msgid "Command"
+msgstr "Amakhomandi:"
+
+#: ../metadata/decoration.xml.in.h:3
+#, fuzzy
+msgid "Decoration windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/decoration.xml.in.h:4
+msgid ""
+"Decorator command line that is executed if no decorator is already running"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:5
+msgid "Drop shadow X offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:6
+msgid "Drop shadow Y offset"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:7
+msgid "Drop shadow color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:8
+msgid "Drop shadow opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:9
+msgid "Drop shadow radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:11
+msgid "Shadow Color"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:12
+msgid "Shadow Offset X"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:13
+msgid "Shadow Offset Y"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:14
+msgid "Shadow Opacity"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:15
+msgid "Shadow Radius"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:16
+#, fuzzy
+msgid "Shadow windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/decoration.xml.in.h:17
+msgid "Window Decoration"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:18
+msgid "Window decorations"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:19
+msgid "Windows that should be decorated"
+msgstr ""
+
+#: ../metadata/decoration.xml.in.h:20
+msgid "Windows that should have a shadow"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:2
+#, no-c-format
+msgid "Brightness (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:3
+#, fuzzy
+msgid "Constant speed"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/fade.xml.in.h:4
+msgid "Constant time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:5
+#, fuzzy
+msgid "Dim Unresponsive Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/fade.xml.in.h:6
+msgid "Dim windows that are not responding to window manager requests"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:7
+msgid "Fade Mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:8
+msgid "Fade On Minimize/Open/Close"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:9
+msgid "Fade Speed"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:10
+msgid "Fade Time"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:11
+msgid "Fade effect on minimize/open/close window events"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:12
+msgid "Fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:13
+msgid "Fade in windows when mapped and fade out windows when unmapped"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:14
+#, fuzzy
+msgid "Fade windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/fade.xml.in.h:15
+#, fuzzy
+msgid "Fading Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/fade.xml.in.h:16
+msgid "Fullscreen Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:17
+msgid "Fullscreen fade effect on system beep"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:19
+#, no-c-format
+msgid "Saturation (in %) of unresponsive windows"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:20
+msgid "Unresponsive Window Brightness"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:21
+msgid "Unresponsive Window Saturation"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:22
+msgid "Visual Bell"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:23
+msgid "Window fade mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:24
+msgid "Window fade speed in \"Constant speed\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:25
+msgid "Window fade time (in ms) in \"Constant time\" mode"
+msgstr ""
+
+#: ../metadata/fade.xml.in.h:26
+msgid "Windows that should be fading"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:1
+msgid "Mount Point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:2
+msgid "Mount point"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:3
+msgid "Userspace File System"
+msgstr ""
+
+#: ../metadata/fs.xml.in.h:4
+msgid "Userspace file system"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:1
+msgid "GConf"
+msgstr ""
+
+#: ../metadata/gconf.xml.in.h:2
+msgid "GConf Control Backend"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:1
+msgid "GLib"
+msgstr ""
+
+#: ../metadata/glib.xml.in.h:2
+msgid "GLib main loop support"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:2
+msgid "Gnome Compatibility"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:3
+msgid "Open a terminal"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:4
+msgid "Options that keep Compiz compatible to the Gnome desktop environment"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:5
+msgid "Run Dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:6
+#, fuzzy
+msgid "Run terminal command"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:7
+msgid "Screenshot command line"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:8
+msgid "Show Main Menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:9
+msgid "Show Run Application dialog"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:10
+msgid "Show the main menu"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:11
+msgid "Take a screenshot"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:12
+msgid "Take a screenshot of a window"
+msgstr ""
+
+#: ../metadata/gnomecompat.xml.in.h:13
+#, fuzzy
+msgid "Terminal command line"
+msgstr "Ikhomandi '%1'"
+
+#: ../metadata/gnomecompat.xml.in.h:14
+msgid "Window screenshot command line"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:1
+msgid "Ini"
+msgstr ""
+
+#: ../metadata/ini.xml.in.h:2
+msgid "Ini Flat File Backend"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:1
+msgid "File change notification plugin"
+msgstr ""
+
+#: ../metadata/inotify.xml.in.h:2
+msgid "Inotify"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:1
+msgid "Kconfig"
+msgstr ""
+
+#: ../metadata/kconfig.xml.in.h:2
+msgid "Kconfig Control Backend"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:1
+msgid "Minimize Effect"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:2
+msgid "Minimize Windows"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:3
+msgid "Minimize speed"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:4
+msgid "Minimize timestep"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:5
+msgid "Shade Resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:6
+msgid "Shade resistance"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:9
+msgid "Transform windows when they are minimized and unminimized"
+msgstr ""
+
+#: ../metadata/minimize.xml.in.h:10
+msgid "Windows that should be transformed when minimized"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:1
+msgid "Constrain Y"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:2
+msgid "Constrain Y coordinate to workspace area"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:3
+msgid "Do not update the server-side position of windows until finished moving"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:4
+msgid "Initiate Window Move"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:5
+msgid "Lazy Positioning"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:6
+msgid "Move Window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:7
+msgid "Move window"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:8 ../metadata/obs.xml.in.h:8
+#: ../metadata/scale.xml.in.h:28 ../metadata/switcher.xml.in.h:19
+msgid "Opacity"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:9
+msgid "Opacity level of moving windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:10
+msgid "Snapoff and auto unmaximized maximized windows when dragging"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:11
+msgid "Snapoff maximized windows"
+msgstr ""
+
+#: ../metadata/move.xml.in.h:12
+msgid "Start moving window"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:1 ../metadata/switcher.xml.in.h:7
+msgid "Brightness"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:2
+msgid "Brightness Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:3
+msgid "Brightness Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:4
+msgid "Brightness Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:5
+msgid "Brightness values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:6
+msgid "Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:7
+msgid "Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:9
+msgid "Opacity Decrease"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:10
+msgid "Opacity Increase"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:11
+msgid "Opacity Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:12
+#, fuzzy
+msgid "Opacity values for windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/obs.xml.in.h:13
+msgid "Opacity, Brightness and Saturation"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:14
+msgid "Opacity, Brightness and Saturation adjustments"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:15 ../metadata/switcher.xml.in.h:29
+#, fuzzy
+msgid "Saturation"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/obs.xml.in.h:16
+#, fuzzy
+msgid "Saturation Decrease"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/obs.xml.in.h:17
+#, fuzzy
+msgid "Saturation Increase"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/obs.xml.in.h:18
+#, fuzzy
+msgid "Saturation Step"
+msgstr "Gcina ukuhlela"
+
+#: ../metadata/obs.xml.in.h:19
+msgid "Saturation values for windows"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:20
+msgid "Step"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:21
+msgid "Window specific settings"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:22
+msgid "Window values"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:23
+#, fuzzy
+msgid "Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/obs.xml.in.h:24
+msgid "Windows that should have a different brightness by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:25
+msgid "Windows that should have a different opacity by default"
+msgstr ""
+
+#: ../metadata/obs.xml.in.h:26
+msgid "Windows that should have a different saturation by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:1
+msgid "Algorithm to use for window placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:2
+msgid "Cascade"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:3
+msgid "Centered"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:4
+msgid "Fixed Window Placement"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:5
+#, fuzzy
+msgid "Force Placement Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/place.xml.in.h:6
+msgid "Horizontal viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:7
+msgid "Keep In Workarea"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:8
+msgid ""
+"Keep placed window in work area, even if that means that the position might "
+"differ from the specified position"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:11
+msgid "Place Windows"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:12
+msgid "Place across all outputs"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:13
+msgid "Place windows at appropriate positions when mapped"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:14
+msgid "Placement Mode"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:15
+#, fuzzy
+msgid "Positioned windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/place.xml.in.h:16
+msgid "Random"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:17
+msgid ""
+"Selects how window placement should behave if multiple outputs are selected"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:18
+msgid "Smart"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:19
+msgid "Use active output device"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:20
+msgid "Use output device of focussed window"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:21
+msgid "Use output device with pointer"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:22
+msgid "Vertical viewport positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:23
+#, fuzzy
+msgid "Viewport positioned windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/place.xml.in.h:24
+msgid "Window placement workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:25
+msgid "Windows that should be positioned by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:26
+msgid "Windows that should be positioned in specific viewports by default"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:27
+msgid ""
+"Windows that should forcedly be placed, even if they indicate the window "
+"manager should avoid placing them."
+msgstr ""
+
+#: ../metadata/place.xml.in.h:28
+msgid "Windows with fixed positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:29
+msgid "Windows with fixed viewport"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:30
+msgid "Workarounds"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:31
+msgid "X Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:32
+msgid "X Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:33
+msgid "X position values"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:34
+msgid "Y Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:35
+msgid "Y Viewport Positions"
+msgstr ""
+
+#: ../metadata/place.xml.in.h:36
+msgid "Y position values"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:1
+msgid "Png"
+msgstr ""
+
+#: ../metadata/png.xml.in.h:2
+msgid "Png image loader"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:1
+msgid "Regex Matching"
+msgstr ""
+
+#: ../metadata/regex.xml.in.h:2
+msgid "Regex window matching"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:1 ../metadata/rotate.xml.in.h:2
+#: ../metadata/scale.xml.in.h:5 ../metadata/switcher.xml.in.h:6
+msgid "Bindings"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:2
+msgid "Border Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:3
+msgid "Border color used for outline and rectangle resize modes"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:4
+msgid "Default Resize Mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:5
+msgid "Default mode used for window resizing"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:6
+msgid "Fill Color"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:7
+msgid "Fill color used for rectangle resize mode"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:8
+#, fuzzy
+msgid "Initiate Normal Window Resize"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/resize.xml.in.h:9
+#, fuzzy
+msgid "Initiate Outline Window Resize"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/resize.xml.in.h:10
+#, fuzzy
+msgid "Initiate Rectangle Window Resize"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/resize.xml.in.h:11
+#, fuzzy
+msgid "Initiate Stretch Window Resize"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/resize.xml.in.h:12
+#, fuzzy
+msgid "Initiate Window Resize"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/resize.xml.in.h:14
+#, fuzzy
+msgid "Normal Resize Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/resize.xml.in.h:15
+msgid "Outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:16
+msgid "Outline Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:17
+msgid "Rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:18
+msgid "Rectangle Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:19
+msgid "Resize Window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:20
+msgid "Resize window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:21
+msgid "Start resizing window"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:22
+msgid "Start resizing window by stretching it"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:23
+msgid "Start resizing window normally"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:24
+msgid "Start resizing window with outline"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:25
+msgid "Start resizing window with rectangle"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:26
+msgid "Stretch"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:27
+msgid "Stretch Resize Windows"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:28
+msgid "Windows that normal resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:29
+msgid "Windows that outline resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:30
+msgid "Windows that rectangle resize should be used for"
+msgstr ""
+
+#: ../metadata/resize.xml.in.h:31
+msgid "Windows that stretch resize should be used for"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:3
+msgid "Edge Flip DnD"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:4
+msgid "Edge Flip Move"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:5
+msgid "Edge Flip Pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:6
+msgid "Flip Time"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:7
+msgid "Flip to left viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:8
+msgid "Flip to next viewport when dragging object to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:9
+msgid "Flip to next viewport when moving pointer to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:10
+msgid "Flip to next viewport when moving window to screen edge"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:11
+msgid "Flip to right viewport and warp pointer"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:13
+msgid "Invert Y axis for pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:14
+msgid "Pointer Invert Y"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:15
+msgid "Pointer Sensitivity"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:16
+msgid "Raise on rotate"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:17
+msgid "Raise window when rotating"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:18
+msgid "Rotate Cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:19
+msgid "Rotate Flip Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:20
+msgid "Rotate Flip Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:21
+msgid "Rotate Left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:22
+msgid "Rotate Left with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:23
+msgid "Rotate Right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:24
+msgid "Rotate Right with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:25
+#, fuzzy
+msgid "Rotate To"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/rotate.xml.in.h:26
+msgid "Rotate To Face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:27
+msgid "Rotate To Face 1 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:28
+msgid "Rotate To Face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:29
+msgid "Rotate To Face 10 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:30
+msgid "Rotate To Face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:31
+msgid "Rotate To Face 11 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:32
+msgid "Rotate To Face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:33
+msgid "Rotate To Face 12 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:34
+msgid "Rotate To Face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:35
+msgid "Rotate To Face 2 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:36
+msgid "Rotate To Face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:37
+msgid "Rotate To Face 3 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:38
+msgid "Rotate To Face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:39
+msgid "Rotate To Face 4 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:40
+msgid "Rotate To Face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:41
+msgid "Rotate To Face 5 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:42
+msgid "Rotate To Face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:43
+msgid "Rotate To Face 6 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:44
+msgid "Rotate To Face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:45
+msgid "Rotate To Face 7 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:46
+msgid "Rotate To Face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:47
+msgid "Rotate To Face 8 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:48
+msgid "Rotate To Face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:49
+msgid "Rotate To Face 9 with Window"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:50
+#, fuzzy
+msgid "Rotate cube"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/rotate.xml.in.h:51
+msgid "Rotate desktop cube"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:52
+msgid "Rotate left"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:53
+msgid "Rotate left and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:54
+msgid "Rotate right"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:55
+msgid "Rotate right and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:56
+msgid "Rotate to cube face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:57
+#, fuzzy
+msgid "Rotate to cube face with window"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/rotate.xml.in.h:58
+msgid "Rotate to face 1"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:59
+msgid "Rotate to face 1 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:60
+msgid "Rotate to face 10"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:61
+msgid "Rotate to face 10 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:62
+msgid "Rotate to face 11"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:63
+msgid "Rotate to face 11 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:64
+msgid "Rotate to face 12"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:65
+msgid "Rotate to face 12 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:66
+msgid "Rotate to face 2"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:67
+msgid "Rotate to face 2 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:68
+msgid "Rotate to face 3"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:69
+msgid "Rotate to face 3 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:70
+msgid "Rotate to face 4"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:71
+msgid "Rotate to face 4 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:72
+msgid "Rotate to face 5"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:73
+msgid "Rotate to face 5 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:74
+msgid "Rotate to face 6"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:75
+msgid "Rotate to face 6 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:76
+msgid "Rotate to face 7"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:77
+msgid "Rotate to face 7 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:78
+msgid "Rotate to face 8"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:79
+msgid "Rotate to face 8 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:80
+msgid "Rotate to face 9"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:81
+msgid "Rotate to face 9 and bring active window along"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:82
+msgid "Rotate to viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:83
+#, fuzzy
+msgid "Rotate window"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/rotate.xml.in.h:84
+#, fuzzy
+msgid "Rotate with window"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/rotate.xml.in.h:85
+#, fuzzy
+msgid "Rotation Acceleration"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/rotate.xml.in.h:86
+#, fuzzy
+msgid "Rotation Speed"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/rotate.xml.in.h:87
+#, fuzzy
+msgid "Rotation Timestep"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/rotate.xml.in.h:88
+#, fuzzy
+msgid "Rotation Zoom"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/rotate.xml.in.h:89
+msgid "Sensitivity of pointer movement"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:90
+msgid "Snap Cube Rotation to Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:91
+msgid "Snap Cube Rotation to Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:92
+msgid "Snap To Bottom Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:93
+msgid "Snap To Top Face"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:95
+#, fuzzy
+msgid "Start Rotation"
+msgstr "Iqalisa Ukufaka Uhlelo..."
+
+#: ../metadata/rotate.xml.in.h:96
+msgid "Timeout before flipping viewport"
+msgstr ""
+
+#: ../metadata/rotate.xml.in.h:98 ../metadata/switcher.xml.in.h:42
+msgid "Zoom"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:1 ../metadata/switcher.xml.in.h:2
+msgid "Amount of opacity in percent"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:4
+msgid "Big"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:6
+msgid "Button Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:7
+msgid ""
+"Button bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:8
+msgid "Click Desktop to Show Desktop"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:9
+msgid "Darken Background"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:10
+msgid "Darken background when scaling windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:11
+msgid "Emblem"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:12
+msgid "Enter Show Desktop mode when Desktop is clicked during Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:13
+msgid "Hover Time"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:14
+#, fuzzy
+msgid "Initiate Window Picker"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/scale.xml.in.h:15
+msgid "Initiate Window Picker For All Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:16
+msgid "Initiate Window Picker For Window Group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:17
+msgid "Initiate Window Picker For Windows on Current Output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:18
+msgid "Key Bindings Toggle Scale Mode"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:19
+msgid ""
+"Key bindings toggle scale mode instead of enabling it when pressed and "
+"disabling it when released."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:20
+msgid "Layout and start transforming all windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:21
+msgid "Layout and start transforming window group"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:22
+msgid "Layout and start transforming windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:23
+msgid "Layout and start transforming windows on current output"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:26
+msgid "On all output devices"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:27
+msgid "On current output device"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:29
+msgid "Overlay Icon"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:30
+msgid "Overlay an icon on windows once they are scaled"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:31
+msgid "Scale"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:32
+msgid "Scale Windows"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:33
+msgid "Scale speed"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:34
+msgid "Scale timestep"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:35
+#, fuzzy
+msgid "Scale windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/scale.xml.in.h:36
+msgid "Selects where windows are scaled if multiple output devices are used."
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:37
+#, fuzzy
+msgid "Space between windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/scale.xml.in.h:38
+msgid "Spacing"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:40
+msgid ""
+"Time (in ms) before scale mode is terminated when hovering over a window"
+msgstr ""
+
+#: ../metadata/scale.xml.in.h:42
+msgid "Windows that should be scaled in scale mode"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:1
+msgid "Automatically open screenshot in this application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:2
+#, fuzzy
+msgid "Directory"
+msgstr "&I-Local Directory..."
+
+#: ../metadata/screenshot.xml.in.h:4
+#, fuzzy
+msgid "Initiate rectangle screenshot"
+msgstr "Ukukhethwa Kwekhathalogi"
+
+#: ../metadata/screenshot.xml.in.h:5
+msgid "Launch Application"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:6
+msgid "Put screenshot images in this directory"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:7
+msgid "Screenshot"
+msgstr ""
+
+#: ../metadata/screenshot.xml.in.h:8
+msgid "Screenshot plugin"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:1
+msgid "Svg"
+msgstr ""
+
+#: ../metadata/svg.xml.in.h:2
+msgid "Svg image loader"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:1
+msgid "Amount of brightness in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:3
+msgid "Amount of saturation in percent"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:4
+msgid "Application Switcher"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:5
+#, fuzzy
+msgid "Auto Rotate"
+msgstr "Ilungiselela ukuqala..."
+
+#: ../metadata/switcher.xml.in.h:8
+#, fuzzy
+msgid "Bring To Front"
+msgstr "Ngesikhathi Iqaliswa Kabusha"
+
+#: ../metadata/switcher.xml.in.h:9
+msgid "Bring selected window to front"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:10
+msgid "Distance desktop should be zoom out while switching windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:12
+msgid "Icon"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:13
+msgid "Minimized"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:15
+msgid "Next Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:16
+#, fuzzy
+msgid "Next window"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/switcher.xml.in.h:17
+#, fuzzy
+msgid "Next window (All windows)"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/switcher.xml.in.h:18
+#, fuzzy
+msgid "Next window (No popup)"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/switcher.xml.in.h:20
+msgid "Popup switcher if not visible and select next window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:21
+msgid "Popup switcher if not visible and select next window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:22
+msgid "Popup switcher if not visible and select previous window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:23
+msgid ""
+"Popup switcher if not visible and select previous window out of all windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:24
+msgid "Prev Panel"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:25
+msgid "Prev window"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:26
+msgid "Prev window (All windows)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:27
+msgid "Prev window (No popup)"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:28
+msgid "Rotate to the selected window while switching"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:30
+#, fuzzy
+msgid "Select next panel type window."
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/switcher.xml.in.h:31
+msgid "Select next window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:32
+#, fuzzy
+msgid "Select previous panel type window."
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/switcher.xml.in.h:33
+msgid "Select previous window without showing the popup window."
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:34
+msgid "Show icon next to thumbnail"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:35
+msgid "Show minimized windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:37
+msgid "Switcher speed"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:38
+msgid "Switcher timestep"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:39
+msgid "Switcher windows"
+msgstr ""
+
+#: ../metadata/switcher.xml.in.h:41
+msgid "Windows that should be shown in switcher"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:1
+msgid "Provide YV12 colorspace support"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:2
+msgid "Video Playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:3
+msgid "Video playback"
+msgstr ""
+
+#: ../metadata/video.xml.in.h:4
+msgid "YV12 colorspace"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:1
+msgid "Add line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:2
+msgid "Add point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:3
+msgid "Adds water effects to different desktop actions"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:4
+msgid "Delay (in ms) between each rain-drop"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:5
+msgid "Enable pointer water effects"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:7
+msgid "Line"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:8
+msgid "Offset Scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:9
+msgid "Point"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:10
+msgid "Rain Delay"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:11
+msgid "Title wave"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:12
+msgid "Toggle rain"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:13
+msgid "Toggle rain effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:14
+msgid "Toggle wiper"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:15
+msgid "Toggle wiper effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:16
+msgid "Water Effect"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:17
+msgid "Water offset scale"
+msgstr ""
+
+#: ../metadata/water.xml.in.h:18
+msgid "Wave effect from window title"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:1
+msgid "Focus Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:2
+msgid "Focus Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:3
+#, fuzzy
+msgid "Focus Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/wobbly.xml.in.h:4
+msgid "Friction"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:5
+#, fuzzy
+msgid "Grab Windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/wobbly.xml.in.h:6
+msgid "Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:7
+msgid "Inverted window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:8
+msgid "Make window shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:9
+msgid "Map Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:10
+msgid "Map Window Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:11
+msgid "Map Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:12
+msgid "Maximize Effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:13
+msgid "Minimum Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:14
+msgid "Minimum Vertex Grid Size"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:15
+msgid "Move Windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:17
+msgid "Shiver"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:18
+msgid "Snap Inverted"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:19
+#, fuzzy
+msgid "Snap windows"
+msgstr "Ungakhethi &Lutho"
+
+#: ../metadata/wobbly.xml.in.h:20
+#, fuzzy
+msgid "Spring Friction"
+msgstr "Ngesikhathi Iqaliswa Kabusha"
+
+#: ../metadata/wobbly.xml.in.h:21
+msgid "Spring K"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:22
+msgid "Spring Konstant"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:23
+msgid "Toggle window snapping"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:24
+msgid "Use spring model for wobbly window effect"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:25
+msgid "Vertex Grid Resolution"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:26
+msgid "Windows that should wobble when focused"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:27
+msgid "Windows that should wobble when grabbed"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:28
+msgid "Windows that should wobble when mapped"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:29
+msgid "Windows that should wobble when moved"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:30
+msgid "Wobble effect when maximizing and unmaximizing windows"
+msgstr ""
+
+#: ../metadata/wobbly.xml.in.h:31
+msgid "Wobbly Windows"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:1
+msgid "Filter Linear"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:5
+msgid "Use linear filter when zoomed in"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:6
+#, fuzzy
+msgid "Zoom Desktop"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:7
+#, fuzzy
+msgid "Zoom In"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:8
+#, fuzzy
+msgid "Zoom Out"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:9
+#, fuzzy
+msgid "Zoom Pan"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:10
+#, fuzzy
+msgid "Zoom Speed"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:11
+#, fuzzy
+msgid "Zoom Timestep"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:12
+msgid "Zoom and pan desktop cube"
+msgstr ""
+
+#: ../metadata/zoom.xml.in.h:13
+#, fuzzy
+msgid "Zoom factor"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#: ../metadata/zoom.xml.in.h:14
+#, fuzzy
+msgid "Zoom pan"
+msgstr "Ukufaka Uhlelo Kuphothuliwe"
+
+#, fuzzy
+#~ msgid "Command line 12"
+#~ msgstr "Ikhomandi '%1'"
+
+#, fuzzy
+#~ msgid "Run command 12"
+#~ msgstr "Ikhomandi '%1'"
+
+#~ msgid "Unknown"
+#~ msgstr "Akwaziwa"
+
+#, fuzzy
+#~ msgid "Blur saturation (0-100)"
+#~ msgstr "Gcina ukuhlela"
+
+#, fuzzy
+#~ msgid "Rotation Speed (0.0-50.0)"
+#~ msgstr "Ukufaka Uhlelo Kuphothuliwe"
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..683d695
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,32 @@
+INCLUDES = \
+ @COMPIZ_CFLAGS@ \
+ @GL_CFLAGS@ \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -DPLUGINDIR=\"$(plugindir)\" \
+ -DIMAGEDIR=\"$(imagedir)\" \
+ -DMETADATADIR=\"$(metadatadir)\"
+
+bin_PROGRAMS = compiz
+
+compiz_LDADD = @COMPIZ_LIBS@ @GL_LIBS@ -lm
+compiz_LDFLAGS = -export-dynamic
+compiz_SOURCES = \
+ main.c \
+ privates.c \
+ object.c \
+ core.c \
+ texture.c \
+ display.c \
+ screen.c \
+ window.c \
+ event.c \
+ paint.c \
+ option.c \
+ plugin.c \
+ session.c \
+ fragment.c \
+ matrix.c \
+ cursor.c \
+ match.c \
+ metadata.c
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..22ee411
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,622 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = compiz$(EXEEXT)
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_compiz_OBJECTS = main.$(OBJEXT) privates.$(OBJEXT) object.$(OBJEXT) \
+ core.$(OBJEXT) texture.$(OBJEXT) display.$(OBJEXT) \
+ screen.$(OBJEXT) window.$(OBJEXT) event.$(OBJEXT) \
+ paint.$(OBJEXT) option.$(OBJEXT) plugin.$(OBJEXT) \
+ session.$(OBJEXT) fragment.$(OBJEXT) matrix.$(OBJEXT) \
+ cursor.$(OBJEXT) match.$(OBJEXT) metadata.$(OBJEXT)
+compiz_OBJECTS = $(am_compiz_OBJECTS)
+compiz_DEPENDENCIES =
+compiz_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(compiz_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(compiz_SOURCES)
+DIST_SOURCES = $(compiz_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANNOTATE_CFLAGS = @ANNOTATE_CFLAGS@
+ANNOTATE_LIBS = @ANNOTATE_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPIZ_CFLAGS = @COMPIZ_CFLAGS@
+COMPIZ_LIBS = @COMPIZ_LIBS@
+COMPIZ_REQUIRES = @COMPIZ_REQUIRES@
+COMPIZ_VERSION_MAJOR = @COMPIZ_VERSION_MAJOR@
+COMPIZ_VERSION_MICRO = @COMPIZ_VERSION_MICRO@
+COMPIZ_VERSION_MINOR = @COMPIZ_VERSION_MINOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_CFLAGS = @DBUS_GLIB_CFLAGS@
+DBUS_GLIB_LIBS = @DBUS_GLIB_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DECORATION_CFLAGS = @DECORATION_CFLAGS@
+DECORATION_LIBS = @DECORATION_LIBS@
+DECORATION_REQUIRES = @DECORATION_REQUIRES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FUSE_CFLAGS = @FUSE_CFLAGS@
+FUSE_LIBS = @FUSE_LIBS@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEY_BINDINGS_CFLAGS = @GNOME_KEY_BINDINGS_CFLAGS@
+GNOME_KEY_BINDINGS_LIBS = @GNOME_KEY_BINDINGS_LIBS@
+GNOME_WINDOW_SETTINGS_CFLAGS = @GNOME_WINDOW_SETTINGS_CFLAGS@
+GNOME_WINDOW_SETTINGS_LIBS = @GNOME_WINDOW_SETTINGS_LIBS@
+GREP = @GREP@
+GTK_WINDOW_DECORATOR_CFLAGS = @GTK_WINDOW_DECORATOR_CFLAGS@
+GTK_WINDOW_DECORATOR_LIBS = @GTK_WINDOW_DECORATOR_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+KCONFIG_CFLAGS = @KCONFIG_CFLAGS@
+KCONFIG_LIBS = @KCONFIG_LIBS@
+KDE4_CFLAGS = @KDE4_CFLAGS@
+KDE4_LIBS = @KDE4_LIBS@
+KDE4_WINDOW_DECORATOR_CFLAGS = @KDE4_WINDOW_DECORATOR_CFLAGS@
+KDE4_WINDOW_DECORATOR_LIBS = @KDE4_WINDOW_DECORATOR_LIBS@
+KDE_CFLAGS = @KDE_CFLAGS@
+KDE_KCFG_DIR = @KDE_KCFG_DIR@
+KDE_KCONFIG_DIR = @KDE_KCONFIG_DIR@
+KDE_LIBS = @KDE_LIBS@
+KDE_WINDOW_DECORATOR_CFLAGS = @KDE_WINDOW_DECORATOR_CFLAGS@
+KDE_WINDOW_DECORATOR_LIBS = @KDE_WINDOW_DECORATOR_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
+LIBRSVG_LIBS = @LIBRSVG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+METACITY_CFLAGS = @METACITY_CFLAGS@
+METACITY_LIBS = @METACITY_LIBS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+QDBUSXML2CPP = @QDBUSXML2CPP@
+QT4_MOC = @QT4_MOC@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_plugins = @default_plugins@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kcfgdir = @kcfgdir@
+keybindingsdir = @keybindingsdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+metadatadir = @metadatadir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+stylesheetdir = @stylesheetdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+windowsettingsdatadir = @windowsettingsdatadir@
+windowsettingslibdir = @windowsettingslibdir@
+INCLUDES = \
+ @COMPIZ_CFLAGS@ \
+ @GL_CFLAGS@ \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -DPLUGINDIR=\"$(plugindir)\" \
+ -DIMAGEDIR=\"$(imagedir)\" \
+ -DMETADATADIR=\"$(metadatadir)\"
+
+compiz_LDADD = @COMPIZ_LIBS@ @GL_LIBS@ -lm
+compiz_LDFLAGS = -export-dynamic
+compiz_SOURCES = \
+ main.c \
+ privates.c \
+ object.c \
+ core.c \
+ texture.c \
+ display.c \
+ screen.c \
+ window.c \
+ event.c \
+ paint.c \
+ option.c \
+ plugin.c \
+ session.c \
+ fragment.c \
+ matrix.c \
+ cursor.c \
+ match.c \
+ metadata.c
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+compiz$(EXEEXT): $(compiz_OBJECTS) $(compiz_DEPENDENCIES)
+ @rm -f compiz$(EXEEXT)
+ $(compiz_LINK) $(compiz_OBJECTS) $(compiz_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/core.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cursor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/display.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fragment.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/match.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matrix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metadata.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/option.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paint.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/privates.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/screen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texture.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/core.c b/src/core.c
new file mode 100644
index 0000000..6b69a28
--- /dev/null
+++ b/src/core.c
@@ -0,0 +1,305 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <string.h>
+
+#include <compiz-core.h>
+
+CompCore core;
+
+static char *corePrivateIndices = 0;
+static int corePrivateLen = 0;
+
+static int
+reallocCorePrivate (int size,
+ void *closure)
+{
+ void *privates;
+
+ privates = realloc (core.base.privates, size * sizeof (CompPrivate));
+ if (!privates)
+ return FALSE;
+
+ core.base.privates = (CompPrivate *) privates;
+
+ return TRUE;
+}
+
+int
+allocCoreObjectPrivateIndex (CompObject *parent)
+{
+ return allocatePrivateIndex (&corePrivateLen,
+ &corePrivateIndices,
+ reallocCorePrivate,
+ 0);
+}
+
+void
+freeCoreObjectPrivateIndex (CompObject *parent,
+ int index)
+{
+ freePrivateIndex (corePrivateLen, corePrivateIndices, index);
+}
+
+CompBool
+forEachCoreObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure)
+{
+ return TRUE;
+}
+
+char *
+nameCoreObject (CompObject *object)
+{
+ return NULL;
+}
+
+CompObject *
+findCoreObject (CompObject *parent,
+ const char *name)
+{
+ return NULL;
+}
+
+int
+allocateCorePrivateIndex (void)
+{
+ return compObjectAllocatePrivateIndex (NULL, COMP_OBJECT_TYPE_CORE);
+}
+
+void
+freeCorePrivateIndex (int index)
+{
+ compObjectFreePrivateIndex (NULL, COMP_OBJECT_TYPE_CORE, index);
+}
+
+static CompBool
+initCorePluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+ return TRUE;
+}
+
+static void
+finiCorePluginForObject (CompPlugin *p,
+ CompObject *o)
+{
+}
+
+static CompBool
+setOptionForPlugin (CompObject *object,
+ const char *plugin,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompPlugin *p;
+
+ p = findActivePlugin (plugin);
+ if (p && p->vTable->setObjectOption)
+ return (*p->vTable->setObjectOption) (p, object, name, value);
+
+ return FALSE;
+}
+
+static void
+coreObjectAdd (CompObject *parent,
+ CompObject *object)
+{
+ object->parent = parent;
+}
+
+static void
+coreObjectRemove (CompObject *parent,
+ CompObject *object)
+{
+ object->parent = NULL;
+}
+
+static void
+fileWatchAdded (CompCore *core,
+ CompFileWatch *fileWatch)
+{
+}
+
+static void
+fileWatchRemoved (CompCore *core,
+ CompFileWatch *fileWatch)
+{
+}
+
+CompBool
+initCore (void)
+{
+ CompPlugin *corePlugin;
+
+ compObjectInit (&core.base, 0, COMP_OBJECT_TYPE_CORE);
+
+ core.displays = NULL;
+
+ core.tmpRegion = XCreateRegion ();
+ if (!core.tmpRegion)
+ return FALSE;
+
+ core.outputRegion = XCreateRegion ();
+ if (!core.outputRegion)
+ {
+ XDestroyRegion (core.tmpRegion);
+ return FALSE;
+ }
+
+ core.fileWatch = NULL;
+ core.lastFileWatchHandle = 1;
+
+ core.timeouts = NULL;
+ core.lastTimeoutHandle = 1;
+
+ core.watchFds = NULL;
+ core.lastWatchFdHandle = 1;
+ core.watchPollFds = NULL;
+ core.nWatchFds = 0;
+
+ gettimeofday (&core.lastTimeout, 0);
+
+ core.initPluginForObject = initCorePluginForObject;
+ core.finiPluginForObject = finiCorePluginForObject;
+
+ core.setOptionForPlugin = setOptionForPlugin;
+
+ core.objectAdd = coreObjectAdd;
+ core.objectRemove = coreObjectRemove;
+
+ core.fileWatchAdded = fileWatchAdded;
+ core.fileWatchRemoved = fileWatchRemoved;
+
+ core.sessionEvent = sessionEvent;
+ core.logMessage = logMessage;
+
+ corePlugin = loadPlugin ("core");
+ if (!corePlugin)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't load core plugin");
+ return FALSE;
+ }
+
+ if (!pushPlugin (corePlugin))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't activate core plugin");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void
+finiCore (void)
+{
+ CompPlugin *p;
+
+ while (core.displays)
+ removeDisplay (core.displays);
+
+ if (core.watchPollFds)
+ free (core.watchPollFds);
+
+ while ((p = popPlugin ()))
+ unloadPlugin (p);
+
+ XDestroyRegion (core.outputRegion);
+ XDestroyRegion (core.tmpRegion);
+}
+
+void
+addDisplayToCore (CompDisplay *d)
+{
+ CompDisplay *prev;
+
+ for (prev = core.displays; prev && prev->next; prev = prev->next);
+
+ if (prev)
+ prev->next = d;
+ else
+ core.displays = d;
+}
+
+CompFileWatchHandle
+addFileWatch (const char *path,
+ int mask,
+ FileWatchCallBackProc callBack,
+ void *closure)
+{
+ CompFileWatch *fileWatch;
+
+ fileWatch = malloc (sizeof (CompFileWatch));
+ if (!fileWatch)
+ return 0;
+
+ fileWatch->path = strdup (path);
+ fileWatch->mask = mask;
+ fileWatch->callBack = callBack;
+ fileWatch->closure = closure;
+ fileWatch->handle = core.lastFileWatchHandle++;
+
+ if (core.lastFileWatchHandle == MAXSHORT)
+ core.lastFileWatchHandle = 1;
+
+ fileWatch->next = core.fileWatch;
+ core.fileWatch = fileWatch;
+
+ (*core.fileWatchAdded) (&core, fileWatch);
+
+ return fileWatch->handle;
+}
+
+void
+removeFileWatch (CompFileWatchHandle handle)
+{
+ CompFileWatch *p = 0, *w;
+
+ for (w = core.fileWatch; w; w = w->next)
+ {
+ if (w->handle == handle)
+ break;
+
+ p = w;
+ }
+
+ if (w)
+ {
+ if (p)
+ p->next = w->next;
+ else
+ core.fileWatch = w->next;
+
+ (*core.fileWatchRemoved) (&core, w);
+
+ if (w->path)
+ free (w->path);
+
+ free (w);
+ }
+}
diff --git a/src/cursor.c b/src/cursor.c
new file mode 100644
index 0000000..559a285
--- /dev/null
+++ b/src/cursor.c
@@ -0,0 +1,196 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+
+#include <compiz-core.h>
+
+static void
+setCursorMatrix (CompCursor *c)
+{
+ c->matrix = c->image->texture.matrix;
+ c->matrix.x0 -= (c->x * c->matrix.xx);
+ c->matrix.y0 -= (c->y * c->matrix.yy);
+}
+
+void
+addCursor (CompScreen *s)
+{
+ CompCursor *c;
+
+ c = malloc (sizeof (CompCursor));
+ if (c)
+ {
+ c->screen = s;
+ c->image = NULL;
+ c->x = 0;
+ c->y = 0;
+
+ c->next = s->cursors;
+ s->cursors = c;
+
+ updateCursor (c, 0, 0, 0);
+
+ /* XFixesHideCursor (s->display->display, s->root); */
+ }
+}
+
+Bool
+damageCursorRect (CompCursor *c,
+ Bool initial,
+ BoxPtr rect)
+{
+ return FALSE;
+}
+
+void
+addCursorDamageRect (CompCursor *c,
+ BoxPtr rect)
+{
+ REGION region;
+
+ if (c->screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ region.extents = *rect;
+
+ if (!(*c->screen->damageCursorRect) (c, FALSE, &region.extents))
+ {
+ region.extents.x1 += c->x;
+ region.extents.y1 += c->y;
+ region.extents.x2 += c->x;
+ region.extents.y2 += c->y;
+
+ region.rects = &region.extents;
+ region.numRects = region.size = 1;
+
+ damageScreenRegion (c->screen, &region);
+ }
+}
+
+void
+addCursorDamage (CompCursor *c)
+{
+ BoxRec box;
+
+ if (c->screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = c->image->width;
+ box.y2 = c->image->height;
+
+ addCursorDamageRect (c, &box);
+}
+
+void
+updateCursor (CompCursor *c,
+ int x,
+ int y,
+ unsigned long serial)
+{
+ /* new current cursor */
+ if (!c->image || c->image->serial != serial)
+ {
+ CompCursorImage *cursorImage;
+
+ cursorImage = findCursorImageAtScreen (c->screen, serial);
+ if (!cursorImage)
+ {
+ Display *dpy = c->screen->display->display;
+ XFixesCursorImage *image;
+
+ image = XFixesGetCursorImage (dpy);
+ if (!image)
+ return;
+
+ cursorImage = malloc (sizeof (CompCursorImage));
+ if (!cursorImage)
+ {
+ XFree (image);
+ return;
+ }
+
+ x = image->x;
+ y = image->y;
+
+ cursorImage->serial = image->cursor_serial;
+ cursorImage->xhot = image->xhot;
+ cursorImage->yhot = image->yhot;
+ cursorImage->width = image->width;
+ cursorImage->height = image->height;
+
+ initTexture (c->screen, &cursorImage->texture);
+
+ if (!imageBufferToTexture (c->screen,
+ &cursorImage->texture,
+ (char *) image->pixels,
+ image->width,
+ image->height))
+ {
+ free (cursorImage);
+ XFree (image);
+ return;
+ }
+
+ XFree (image);
+
+ cursorImage->next = c->screen->cursorImages;
+ c->screen->cursorImages = cursorImage;
+ }
+
+ if (c->image)
+ addCursorDamage (c);
+
+ c->image = cursorImage;
+
+ c->x = x - c->image->xhot;
+ c->y = y - c->image->yhot;
+
+ setCursorMatrix (c);
+
+ addCursorDamage (c);
+ }
+ else
+ {
+ int newX, newY;
+
+ newX = x - c->image->xhot;
+ newY = y - c->image->yhot;
+
+ if (c->x != newX || c->y != newY)
+ {
+ addCursorDamage (c);
+
+ c->x = newX;
+ c->y = newY;
+
+ setCursorMatrix (c);
+
+ addCursorDamage (c);
+ }
+ }
+}
diff --git a/src/display.c b/src/display.c
new file mode 100644
index 0000000..caf63d4
--- /dev/null
+++ b/src/display.c
@@ -0,0 +1,2809 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/poll.h>
+#include <assert.h>
+
+#define XK_MISCELLANY
+#include <X11/keysymdef.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/extensions/Xcomposite.h>
+#include <X11/extensions/Xrandr.h>
+#include <X11/extensions/shape.h>
+
+#include <compiz-core.h>
+
+static unsigned int virtualModMask[] = {
+ CompAltMask, CompMetaMask, CompSuperMask, CompHyperMask,
+ CompModeSwitchMask, CompNumLockMask, CompScrollLockMask
+};
+
+static CompScreen *targetScreen = NULL;
+static CompOutput *targetOutput;
+
+static Bool inHandleEvent = FALSE;
+
+static const CompTransform identity = {
+ {
+ 1.0, 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0
+ }
+};
+
+int lastPointerX = 0;
+int lastPointerY = 0;
+int pointerX = 0;
+int pointerY = 0;
+
+#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
+
+static char *displayPrivateIndices = 0;
+static int displayPrivateLen = 0;
+
+static int
+reallocDisplayPrivate (int size,
+ void *closure)
+{
+ CompDisplay *d;
+ void *privates;
+
+ for (d = core.displays; d; d = d->next)
+ {
+ privates = realloc (d->base.privates, size * sizeof (CompPrivate));
+ if (!privates)
+ return FALSE;
+
+ d->base.privates = (CompPrivate *) privates;
+ }
+
+ return TRUE;
+}
+
+int
+allocDisplayObjectPrivateIndex (CompObject *parent)
+{
+ return allocatePrivateIndex (&displayPrivateLen,
+ &displayPrivateIndices,
+ reallocDisplayPrivate,
+ 0);
+}
+
+void
+freeDisplayObjectPrivateIndex (CompObject *parent,
+ int index)
+{
+ freePrivateIndex (displayPrivateLen, displayPrivateIndices, index);
+}
+
+CompBool
+forEachDisplayObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure)
+{
+ if (parent->type == COMP_OBJECT_TYPE_CORE)
+ {
+ CompDisplay *d;
+
+ for (d = core.displays; d; d = d->next)
+ {
+ if (!(*proc) (&d->base, closure))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+char *
+nameDisplayObject (CompObject *object)
+{
+ return NULL;
+}
+
+CompObject *
+findDisplayObject (CompObject *parent,
+ const char *name)
+{
+ if (parent->type == COMP_OBJECT_TYPE_CORE)
+ {
+ if (!name || !name[0])
+ return &core.displays->base;
+ }
+
+ return NULL;
+}
+
+int
+allocateDisplayPrivateIndex (void)
+{
+ return compObjectAllocatePrivateIndex (NULL, COMP_OBJECT_TYPE_DISPLAY);
+}
+
+void
+freeDisplayPrivateIndex (int index)
+{
+ compObjectFreePrivateIndex (NULL, COMP_OBJECT_TYPE_DISPLAY, index);
+}
+
+static Bool
+closeWin (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+ unsigned int time;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+ time = getIntOptionNamed (option, nOption, "time", CurrentTime);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w && (w->actions & CompWindowActionCloseMask))
+ closeWindow (w, time);
+
+ return TRUE;
+}
+
+static Bool
+unmaximize (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, 0);
+
+ return TRUE;
+}
+
+static Bool
+minimize (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w && (w->actions & CompWindowActionMinimizeMask))
+ minimizeWindow (w);
+
+ return TRUE;
+}
+
+static Bool
+maximize (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, MAXIMIZE_STATE);
+
+ return TRUE;
+}
+
+static Bool
+maximizeHorizontally (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, w->state | CompWindowStateMaximizedHorzMask);
+
+ return TRUE;
+}
+
+static Bool
+maximizeVertically (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, w->state | CompWindowStateMaximizedVertMask);
+
+ return TRUE;
+}
+
+static Bool
+showDesktop (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ {
+ if (s->showingDesktopMask == 0)
+ (*s->enterShowDesktopMode) (s);
+ else
+ (*s->leaveShowDesktopMode) (s, NULL);
+ }
+
+ return TRUE;
+}
+
+static Bool
+toggleSlowAnimations (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompScreen *s;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "root", 0);
+
+ s = findScreenAtDisplay (d, xid);
+ if (s)
+ s->slowAnimations = !s->slowAnimations;
+
+ return TRUE;
+}
+
+static Bool
+raiseInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ raiseWindow (w);
+
+ return TRUE;
+}
+
+static Bool
+lowerInitiate (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ lowerWindow (w);
+
+ return TRUE;
+}
+
+static Bool
+windowMenu (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w && !w->screen->maxGrab)
+ {
+ int x, y, button;
+ Time time;
+
+ time = getIntOptionNamed (option, nOption, "time", CurrentTime);
+ button = getIntOptionNamed (option, nOption, "button", 0);
+ x = getIntOptionNamed (option, nOption, "x", w->attrib.x);
+ y = getIntOptionNamed (option, nOption, "y", w->attrib.y);
+
+ toolkitAction (w->screen,
+ w->screen->display->toolkitActionWindowMenuAtom,
+ time,
+ w->id,
+ button,
+ x,
+ y);
+ }
+
+ return TRUE;
+}
+
+static Bool
+toggleMaximized (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ {
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ maximizeWindow (w, 0);
+ else
+ maximizeWindow (w, MAXIMIZE_STATE);
+ }
+
+ return TRUE;
+}
+
+static Bool
+toggleMaximizedHorizontally (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, w->state ^ CompWindowStateMaximizedHorzMask);
+
+ return TRUE;
+}
+
+static Bool
+toggleMaximizedVertically (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w)
+ maximizeWindow (w, w->state ^ CompWindowStateMaximizedVertMask);
+
+ return TRUE;
+}
+
+static Bool
+shade (CompDisplay *d,
+ CompAction *action,
+ CompActionState state,
+ CompOption *option,
+ int nOption)
+{
+ CompWindow *w;
+ Window xid;
+
+ xid = getIntOptionNamed (option, nOption, "window", 0);
+
+ w = findTopLevelWindowAtDisplay (d, xid);
+ if (w && (w->actions & CompWindowActionShadeMask))
+ {
+ w->state ^= CompWindowStateShadedMask;
+ updateWindowAttributes (w, CompStackingUpdateModeNone);
+ }
+
+ return TRUE;
+}
+
+const CompMetadataOptionInfo coreDisplayOptionInfo[COMP_DISPLAY_OPTION_NUM] = {
+ { "abi", "int", 0, 0, 0 },
+ { "active_plugins", "list", "<type>string</type>", 0, 0 },
+ { "texture_filter", "int", RESTOSTRING (0, 2), 0, 0 },
+ { "click_to_focus", "bool", 0, 0, 0 },
+ { "autoraise", "bool", 0, 0, 0 },
+ { "autoraise_delay", "int", 0, 0, 0 },
+ { "close_window_key", "key", 0, closeWin, 0 },
+ { "close_window_button", "button", 0, closeWin, 0 },
+ { "slow_animations_key", "key", 0, toggleSlowAnimations, 0 },
+ { "raise_window_key", "key", 0, raiseInitiate, 0 },
+ { "raise_window_button", "button", 0, raiseInitiate, 0 },
+ { "lower_window_key", "key", 0, lowerInitiate, 0 },
+ { "lower_window_button", "button", 0, lowerInitiate, 0 },
+ { "unmaximize_window_key", "key", 0, unmaximize, 0 },
+ { "minimize_window_key", "key", 0, minimize, 0 },
+ { "minimize_window_button", "button", 0, minimize, 0 },
+ { "maximize_window_key", "key", 0, maximize, 0 },
+ { "maximize_window_horizontally_key", "key", 0, maximizeHorizontally, 0 },
+ { "maximize_window_vertically_key", "key", 0, maximizeVertically, 0 },
+ { "window_menu_button", "button", 0, windowMenu, 0 },
+ { "window_menu_key", "key", 0, windowMenu, 0 },
+ { "show_desktop_key", "key", 0, showDesktop, 0 },
+ { "show_desktop_edge", "edge", 0, showDesktop, 0 },
+ { "raise_on_click", "bool", 0, 0, 0 },
+ { "audible_bell", "bool", 0, 0, 0 },
+ { "toggle_window_maximized_key", "key", 0, toggleMaximized, 0 },
+ { "toggle_window_maximized_button", "button", 0, toggleMaximized, 0 },
+ { "toggle_window_maximized_horizontally_key", "key", 0,
+ toggleMaximizedHorizontally, 0 },
+ { "toggle_window_maximized_vertically_key", "key", 0,
+ toggleMaximizedVertically, 0 },
+ { "hide_skip_taskbar_windows", "bool", 0, 0, 0 },
+ { "toggle_window_shaded_key", "key", 0, shade, 0 },
+ { "ignore_hints_when_maximized", "bool", 0, 0, 0 },
+ { "ping_delay", "int", "<min>1000</min>", 0, 0 },
+ { "edge_delay", "int", "<min>0</min>", 0, 0 }
+};
+
+CompOption *
+getDisplayOptions (CompPlugin *plugin,
+ CompDisplay *display,
+ int *count)
+{
+ *count = NUM_OPTIONS (display);
+ return display->opt;
+}
+
+static void
+setAudibleBell (CompDisplay *display,
+ Bool audible)
+{
+ if (display->xkbExtension)
+ XkbChangeEnabledControls (display->display,
+ XkbUseCoreKbd,
+ XkbAudibleBellMask,
+ audible ? XkbAudibleBellMask : 0);
+}
+
+static Bool
+pingTimeout (void *closure)
+{
+ CompDisplay *d = closure;
+ CompScreen *s;
+ CompWindow *w;
+ XEvent ev;
+ int ping = d->lastPing + 1;
+
+ ev.type = ClientMessage;
+ ev.xclient.window = 0;
+ ev.xclient.message_type = d->wmProtocolsAtom;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = d->wmPingAtom;
+ ev.xclient.data.l[1] = ping;
+ ev.xclient.data.l[2] = 0;
+ ev.xclient.data.l[3] = 0;
+ ev.xclient.data.l[4] = 0;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->attrib.map_state != IsViewable)
+ continue;
+
+ if (!(w->type & CompWindowTypeNormalMask))
+ continue;
+
+ if (w->protocols & CompWindowProtocolPingMask)
+ {
+ if (w->transientFor)
+ continue;
+
+ if (w->lastPong < d->lastPing)
+ {
+ if (w->alive)
+ {
+ w->alive = FALSE;
+
+ if (w->closeRequests)
+ {
+ toolkitAction (s,
+ d->toolkitActionForceQuitDialogAtom,
+ w->lastCloseRequestTime,
+ w->id,
+ TRUE,
+ 0,
+ 0);
+
+ w->closeRequests = 0;
+ }
+
+ addWindowDamage (w);
+ }
+ }
+
+ ev.xclient.window = w->id;
+ ev.xclient.data.l[2] = w->id;
+
+ XSendEvent (d->display, w->id, FALSE, NoEventMask, &ev);
+ }
+ }
+ }
+
+ d->lastPing = ping;
+
+ return TRUE;
+}
+
+Bool
+setDisplayOption (CompPlugin *plugin,
+ CompDisplay *display,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ o = compFindOption (display->opt, NUM_OPTIONS (display), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case COMP_DISPLAY_OPTION_ABI:
+ break;
+ case COMP_DISPLAY_OPTION_ACTIVE_PLUGINS:
+ if (compSetOptionList (o, value))
+ {
+ display->dirtyPluginList = TRUE;
+ return TRUE;
+ }
+ break;
+ case COMP_DISPLAY_OPTION_TEXTURE_FILTER:
+ if (compSetIntOption (o, value))
+ {
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ damageScreen (s);
+
+ if (!o->value.i)
+ display->textureFilter = GL_NEAREST;
+ else
+ display->textureFilter = GL_LINEAR;
+
+ return TRUE;
+ }
+ break;
+ case COMP_DISPLAY_OPTION_PING_DELAY:
+ if (compSetIntOption (o, value))
+ {
+ if (display->pingHandle)
+ compRemoveTimeout (display->pingHandle);
+
+ display->pingHandle =
+ compAddTimeout (o->value.i, o->value.i + 500,
+ pingTimeout, display);
+ return TRUE;
+ }
+ break;
+ case COMP_DISPLAY_OPTION_AUDIBLE_BELL:
+ if (compSetBoolOption (o, value))
+ {
+ setAudibleBell (display, o->value.b);
+ return TRUE;
+ }
+ break;
+ default:
+ if (compSetDisplayOption (display, o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+updatePlugins (CompDisplay *d)
+{
+ CompOption *o;
+ CompPlugin *p, **pop = 0;
+ int nPop, i, j;
+
+ d->dirtyPluginList = FALSE;
+
+ o = &d->opt[COMP_DISPLAY_OPTION_ACTIVE_PLUGINS];
+
+ /* The old plugin list always begins with the core plugin. To make sure
+ we don't unnecessarily unload plugins if the new plugin list does not
+ contain the core plugin, we have to use an offset */
+ if (o->value.list.nValue > 0 && strcmp (o->value.list.value[0].s, "core"))
+ i = 0;
+ else
+ i = 1;
+
+ /* j is initialized to 1 to make sure we never pop the core plugin */
+ for (j = 1; j < d->plugin.list.nValue && i < o->value.list.nValue; i++, j++)
+ {
+ if (strcmp (d->plugin.list.value[j].s, o->value.list.value[i].s))
+ break;
+ }
+
+ nPop = d->plugin.list.nValue - j;
+
+ if (nPop)
+ {
+ pop = malloc (sizeof (CompPlugin *) * nPop);
+ if (!pop)
+ {
+ (*core.setOptionForPlugin) (&d->base, "core", o->name, &d->plugin);
+ return;
+ }
+ }
+
+ for (j = 0; j < nPop; j++)
+ {
+ pop[j] = popPlugin ();
+ d->plugin.list.nValue--;
+ free (d->plugin.list.value[d->plugin.list.nValue].s);
+ }
+
+ for (; i < o->value.list.nValue; i++)
+ {
+ p = 0;
+ for (j = 0; j < nPop; j++)
+ {
+ if (pop[j] && strcmp (pop[j]->vTable->name,
+ o->value.list.value[i].s) == 0)
+ {
+ if (pushPlugin (pop[j]))
+ {
+ p = pop[j];
+ pop[j] = 0;
+ break;
+ }
+ }
+ }
+
+ if (p == 0)
+ {
+ p = loadPlugin (o->value.list.value[i].s);
+ if (p)
+ {
+ if (!pushPlugin (p))
+ {
+ unloadPlugin (p);
+ p = 0;
+ }
+ }
+ }
+
+ if (p)
+ {
+ CompOptionValue *value;
+
+ value = realloc (d->plugin.list.value, sizeof (CompOptionValue) *
+ (d->plugin.list.nValue + 1));
+ if (value)
+ {
+ value[d->plugin.list.nValue].s = strdup (p->vTable->name);
+
+ d->plugin.list.value = value;
+ d->plugin.list.nValue++;
+ }
+ else
+ {
+ p = popPlugin ();
+ unloadPlugin (p);
+ }
+ }
+ }
+
+ for (j = 0; j < nPop; j++)
+ {
+ if (pop[j])
+ unloadPlugin (pop[j]);
+ }
+
+ if (nPop)
+ free (pop);
+
+ (*core.setOptionForPlugin) (&d->base, "core", o->name, &d->plugin);
+}
+
+static void
+addTimeout (CompTimeout *timeout)
+{
+ CompTimeout *p = 0, *t;
+
+ for (t = core.timeouts; t; t = t->next)
+ {
+ if (timeout->minTime < t->minLeft)
+ break;
+
+ p = t;
+ }
+
+ timeout->next = t;
+ timeout->minLeft = timeout->minTime;
+ timeout->maxLeft = timeout->maxTime;
+
+ if (p)
+ p->next = timeout;
+ else
+ core.timeouts = timeout;
+}
+
+CompTimeoutHandle
+compAddTimeout (int minTime,
+ int maxTime,
+ CallBackProc callBack,
+ void *closure)
+{
+ CompTimeout *timeout;
+
+ timeout = malloc (sizeof (CompTimeout));
+ if (!timeout)
+ return 0;
+
+ timeout->minTime = minTime;
+ timeout->maxTime = (maxTime >= minTime) ? maxTime : minTime;
+ timeout->callBack = callBack;
+ timeout->closure = closure;
+ timeout->handle = core.lastTimeoutHandle++;
+
+ if (core.lastTimeoutHandle == MAXSHORT)
+ core.lastTimeoutHandle = 1;
+
+ addTimeout (timeout);
+
+ return timeout->handle;
+}
+
+void *
+compRemoveTimeout (CompTimeoutHandle handle)
+{
+ CompTimeout *p = 0, *t;
+ void *closure = NULL;
+
+ for (t = core.timeouts; t; t = t->next)
+ {
+ if (t->handle == handle)
+ break;
+
+ p = t;
+ }
+
+ if (t)
+ {
+ if (p)
+ p->next = t->next;
+ else
+ core.timeouts = t->next;
+
+ closure = t->closure;
+
+ free (t);
+ }
+
+ return closure;
+}
+
+CompWatchFdHandle
+compAddWatchFd (int fd,
+ short int events,
+ CallBackProc callBack,
+ void *closure)
+{
+ CompWatchFd *watchFd;
+
+ watchFd = malloc (sizeof (CompWatchFd));
+ if (!watchFd)
+ return 0;
+
+ watchFd->fd = fd;
+ watchFd->callBack = callBack;
+ watchFd->closure = closure;
+ watchFd->handle = core.lastWatchFdHandle++;
+
+ if (core.lastWatchFdHandle == MAXSHORT)
+ core.lastWatchFdHandle = 1;
+
+ watchFd->next = core.watchFds;
+ core.watchFds = watchFd;
+
+ core.nWatchFds++;
+
+ core.watchPollFds = realloc (core.watchPollFds,
+ core.nWatchFds * sizeof (struct pollfd));
+
+ core.watchPollFds[core.nWatchFds - 1].fd = fd;
+ core.watchPollFds[core.nWatchFds - 1].events = events;
+
+ return watchFd->handle;
+}
+
+void
+compRemoveWatchFd (CompWatchFdHandle handle)
+{
+ CompWatchFd *p = 0, *w;
+ int i;
+
+ for (i = core.nWatchFds - 1, w = core.watchFds; w; i--, w = w->next)
+ {
+ if (w->handle == handle)
+ break;
+
+ p = w;
+ }
+
+ if (w)
+ {
+ if (p)
+ p->next = w->next;
+ else
+ core.watchFds = w->next;
+
+ core.nWatchFds--;
+
+ if (i < core.nWatchFds)
+ memmove (&core.watchPollFds[i], &core.watchPollFds[i + 1],
+ (core.nWatchFds - i) * sizeof (struct pollfd));
+
+ free (w);
+ }
+}
+
+short int
+compWatchFdEvents (CompWatchFdHandle handle)
+{
+ CompWatchFd *w;
+ int i;
+
+ for (i = core.nWatchFds - 1, w = core.watchFds; w; i--, w = w->next)
+ if (w->handle == handle)
+ return core.watchPollFds[i].revents;
+
+ return 0;
+}
+
+#define TIMEVALDIFF(tv1, tv2) \
+ ((tv1)->tv_sec == (tv2)->tv_sec || (tv1)->tv_usec >= (tv2)->tv_usec) ? \
+ ((((tv1)->tv_sec - (tv2)->tv_sec) * 1000000) + \
+ ((tv1)->tv_usec - (tv2)->tv_usec)) / 1000 : \
+ ((((tv1)->tv_sec - 1 - (tv2)->tv_sec) * 1000000) + \
+ (1000000 + (tv1)->tv_usec - (tv2)->tv_usec)) / 1000
+
+static int
+getTimeToNextRedraw (CompScreen *s,
+ struct timeval *tv,
+ struct timeval *lastTv,
+ Bool idle)
+{
+ int diff, next;
+
+ diff = TIMEVALDIFF (tv, lastTv);
+
+ /* handle clock rollback */
+ if (diff < 0)
+ diff = 0;
+
+ if (idle ||
+ (s->getVideoSync && s->opt[COMP_SCREEN_OPTION_SYNC_TO_VBLANK].value.b))
+ {
+ if (s->timeMult > 1)
+ {
+ s->frameStatus = -1;
+ s->redrawTime = s->optimalRedrawTime;
+ s->timeMult--;
+ }
+ }
+ else
+ {
+ if (diff > s->redrawTime)
+ {
+ if (s->frameStatus > 0)
+ s->frameStatus = 0;
+
+ next = s->optimalRedrawTime * (s->timeMult + 1);
+ if (diff > next)
+ {
+ s->frameStatus--;
+ if (s->frameStatus < -1)
+ {
+ s->timeMult++;
+ s->redrawTime = diff = next;
+ }
+ }
+ }
+ else if (diff < s->redrawTime)
+ {
+ if (s->frameStatus < 0)
+ s->frameStatus = 0;
+
+ if (s->timeMult > 1)
+ {
+ next = s->optimalRedrawTime * (s->timeMult - 1);
+ if (diff < next)
+ {
+ s->frameStatus++;
+ if (s->frameStatus > 4)
+ {
+ s->timeMult--;
+ s->redrawTime = next;
+ }
+ }
+ }
+ }
+ }
+
+ if (diff > s->redrawTime)
+ return 0;
+
+ return s->redrawTime - diff;
+}
+
+static const int maskTable[] = {
+ ShiftMask, LockMask, ControlMask, Mod1Mask,
+ Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask
+};
+static const int maskTableSize = sizeof (maskTable) / sizeof (int);
+
+void
+updateModifierMappings (CompDisplay *d)
+{
+ unsigned int modMask[CompModNum];
+ int i, minKeycode, maxKeycode, keysymsPerKeycode = 0;
+ KeySym* key;
+
+ for (i = 0; i < CompModNum; i++)
+ modMask[i] = 0;
+
+ XDisplayKeycodes (d->display, &minKeycode, &maxKeycode);
+ key = XGetKeyboardMapping (d->display,
+ minKeycode, (maxKeycode - minKeycode + 1),
+ &keysymsPerKeycode);
+
+ if (d->modMap)
+ XFreeModifiermap (d->modMap);
+
+ d->modMap = XGetModifierMapping (d->display);
+ if (d->modMap && d->modMap->max_keypermod > 0)
+ {
+ KeySym keysym;
+ int index, size, mask;
+
+ size = maskTableSize * d->modMap->max_keypermod;
+
+ for (i = 0; i < size; i++)
+ {
+ if (!d->modMap->modifiermap[i])
+ continue;
+
+ index = 0;
+ do
+ {
+ keysym = XKeycodeToKeysym (d->display,
+ d->modMap->modifiermap[i],
+ index++);
+ } while (!keysym && index < keysymsPerKeycode);
+
+ if (keysym)
+ {
+ mask = maskTable[i / d->modMap->max_keypermod];
+
+ if (keysym == XK_Alt_L ||
+ keysym == XK_Alt_R)
+ {
+ modMask[CompModAlt] |= mask;
+ }
+ else if (keysym == XK_Meta_L ||
+ keysym == XK_Meta_R)
+ {
+ modMask[CompModMeta] |= mask;
+ }
+ else if (keysym == XK_Super_L ||
+ keysym == XK_Super_R)
+ {
+ modMask[CompModSuper] |= mask;
+ }
+ else if (keysym == XK_Hyper_L ||
+ keysym == XK_Hyper_R)
+ {
+ modMask[CompModHyper] |= mask;
+ }
+ else if (keysym == XK_Mode_switch)
+ {
+ modMask[CompModModeSwitch] |= mask;
+ }
+ else if (keysym == XK_Scroll_Lock)
+ {
+ modMask[CompModScrollLock] |= mask;
+ }
+ else if (keysym == XK_Num_Lock)
+ {
+ modMask[CompModNumLock] |= mask;
+ }
+ }
+ }
+
+ for (i = 0; i < CompModNum; i++)
+ {
+ if (!modMask[i])
+ modMask[i] = CompNoMask;
+ }
+
+ if (memcmp (modMask, d->modMask, sizeof (modMask)))
+ {
+ CompScreen *s;
+
+ memcpy (d->modMask, modMask, sizeof (modMask));
+
+ d->ignoredModMask = LockMask |
+ (modMask[CompModNumLock] & ~CompNoMask) |
+ (modMask[CompModScrollLock] & ~CompNoMask);
+
+ for (s = d->screens; s; s = s->next)
+ updatePassiveGrabs (s);
+ }
+ }
+
+ if (key)
+ XFree (key);
+}
+
+unsigned int
+virtualToRealModMask (CompDisplay *d,
+ unsigned int modMask)
+{
+ int i;
+
+ for (i = 0; i < CompModNum; i++)
+ {
+ if (modMask & virtualModMask[i])
+ {
+ modMask &= ~virtualModMask[i];
+ modMask |= d->modMask[i];
+ }
+ }
+
+ return modMask;
+}
+
+unsigned int
+keycodeToModifiers (CompDisplay *d,
+ int keycode)
+{
+ unsigned int mods = 0;
+ int mod, k;
+
+ for (mod = 0; mod < maskTableSize; mod++)
+ {
+ for (k = 0; k < d->modMap->max_keypermod; k++)
+ {
+ if (d->modMap->modifiermap[mod * d->modMap->max_keypermod + k] ==
+ keycode)
+ mods |= maskTable[mod];
+ }
+ }
+
+ return mods;
+}
+
+static int
+doPoll (int timeout)
+{
+ int rv;
+
+ rv = poll (core.watchPollFds, core.nWatchFds, timeout);
+ if (rv)
+ {
+ CompWatchFd *w;
+ int i;
+
+ for (i = core.nWatchFds - 1, w = core.watchFds; w; i--, w = w->next)
+ {
+ if (core.watchPollFds[i].revents != 0 && w->callBack)
+ (*w->callBack) (w->closure);
+ }
+ }
+
+ return rv;
+}
+
+static void
+handleTimeouts (struct timeval *tv)
+{
+ CompTimeout *t;
+ int timeDiff;
+
+ timeDiff = TIMEVALDIFF (tv, &core.lastTimeout);
+
+ /* handle clock rollback */
+ if (timeDiff < 0)
+ timeDiff = 0;
+
+ for (t = core.timeouts; t; t = t->next)
+ {
+ t->minLeft -= timeDiff;
+ t->maxLeft -= timeDiff;
+ }
+
+ while (core.timeouts && core.timeouts->minLeft <= 0)
+ {
+ t = core.timeouts;
+ if ((*t->callBack) (t->closure))
+ {
+ core.timeouts = t->next;
+ addTimeout (t);
+ }
+ else
+ {
+ core.timeouts = t->next;
+ free (t);
+ }
+ }
+
+ core.lastTimeout = *tv;
+}
+
+static void
+waitForVideoSync (CompScreen *s)
+{
+ unsigned int sync;
+
+ if (!s->opt[COMP_SCREEN_OPTION_SYNC_TO_VBLANK].value.b)
+ return;
+
+ if (s->getVideoSync)
+ {
+ glFlush ();
+
+ (*s->getVideoSync) (&sync);
+ (*s->waitVideoSync) (2, (sync + 1) % 2, &sync);
+ }
+}
+
+
+void
+paintScreen (CompScreen *s,
+ CompOutput *outputs,
+ int numOutput,
+ unsigned int mask)
+{
+ XRectangle r;
+ int i;
+
+ for (i = 0; i < numOutput; i++)
+ {
+ targetScreen = s;
+ targetOutput = &outputs[i];
+
+ r.x = outputs[i].region.extents.x1;
+ r.y = s->height - outputs[i].region.extents.y2;
+ r.width = outputs[i].width;
+ r.height = outputs[i].height;
+
+ if (s->lastViewport.x != r.x ||
+ s->lastViewport.y != r.y ||
+ s->lastViewport.width != r.width ||
+ s->lastViewport.height != r.height)
+ {
+ glViewport (r.x, r.y, r.width, r.height);
+ s->lastViewport = r;
+ }
+
+ if (mask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ {
+ (*s->paintOutput) (s,
+ &defaultScreenPaintAttrib,
+ &identity,
+ &outputs[i].region, &outputs[i],
+ PAINT_SCREEN_REGION_MASK |
+ PAINT_SCREEN_FULL_MASK);
+ }
+ else if (mask & COMP_SCREEN_DAMAGE_REGION_MASK)
+ {
+ XIntersectRegion (core.tmpRegion,
+ &outputs[i].region,
+ core.outputRegion);
+
+ if (!(*s->paintOutput) (s,
+ &defaultScreenPaintAttrib,
+ &identity,
+ core.outputRegion, &outputs[i],
+ PAINT_SCREEN_REGION_MASK))
+ {
+ (*s->paintOutput) (s,
+ &defaultScreenPaintAttrib,
+ &identity,
+ &outputs[i].region, &outputs[i],
+ PAINT_SCREEN_FULL_MASK);
+
+ XUnionRegion (core.tmpRegion,
+ &outputs[i].region,
+ core.tmpRegion);
+
+ }
+ }
+ }
+}
+
+void
+eventLoop (void)
+{
+ XEvent event;
+ int timeDiff;
+ struct timeval tv;
+ CompDisplay *d;
+ CompScreen *s;
+ CompWindow *w;
+ CompTimeout *t;
+ int time, timeToNextRedraw = 0;
+ unsigned int damageMask, mask;
+
+ for (d = core.displays; d; d = d->next)
+ d->watchFdHandle =
+ compAddWatchFd (ConnectionNumber (d->display), POLLIN, NULL, NULL);
+
+ for (;;)
+ {
+ if (restartSignal || shutDown)
+ break;
+
+ for (d = core.displays; d; d = d->next)
+ {
+ if (d->dirtyPluginList)
+ updatePlugins (d);
+
+ while (XPending (d->display))
+ {
+ XNextEvent (d->display, &event);
+
+ switch (event.type) {
+ case ButtonPress:
+ case ButtonRelease:
+ pointerX = event.xbutton.x_root;
+ pointerY = event.xbutton.y_root;
+ break;
+ case KeyPress:
+ case KeyRelease:
+ pointerX = event.xkey.x_root;
+ pointerY = event.xkey.y_root;
+ break;
+ case MotionNotify:
+ pointerX = event.xmotion.x_root;
+ pointerY = event.xmotion.y_root;
+ break;
+ case EnterNotify:
+ case LeaveNotify:
+ pointerX = event.xcrossing.x_root;
+ pointerY = event.xcrossing.y_root;
+ break;
+ case ClientMessage:
+ if (event.xclient.message_type == d->xdndPositionAtom)
+ {
+ pointerX = event.xclient.data.l[2] >> 16;
+ pointerY = event.xclient.data.l[2] & 0xffff;
+ }
+ default:
+ break;
+ }
+
+ sn_display_process_event (d->snDisplay, &event);
+
+ inHandleEvent = TRUE;
+
+ (*d->handleEvent) (d, &event);
+
+ inHandleEvent = FALSE;
+
+ lastPointerX = pointerX;
+ lastPointerY = pointerY;
+ }
+ }
+
+ for (d = core.displays; d; d = d->next)
+ {
+ for (s = d->screens; s; s = s->next)
+ {
+ if (s->damageMask)
+ {
+ finishScreenDrawing (s);
+ }
+ else
+ {
+ s->idle = TRUE;
+ }
+ }
+ }
+
+ damageMask = 0;
+ timeToNextRedraw = MAXSHORT;
+
+ for (d = core.displays; d; d = d->next)
+ {
+ for (s = d->screens; s; s = s->next)
+ {
+ if (!s->damageMask)
+ continue;
+
+ if (!damageMask)
+ {
+ gettimeofday (&tv, 0);
+ damageMask |= s->damageMask;
+ }
+
+ s->timeLeft = getTimeToNextRedraw (s, &tv, &s->lastRedraw,
+ s->idle);
+ if (s->timeLeft < timeToNextRedraw)
+ timeToNextRedraw = s->timeLeft;
+ }
+ }
+
+ if (damageMask)
+ {
+ time = timeToNextRedraw;
+ if (time)
+ time = doPoll (time);
+
+ if (time == 0)
+ {
+ gettimeofday (&tv, 0);
+
+ if (core.timeouts)
+ handleTimeouts (&tv);
+
+ for (d = core.displays; d; d = d->next)
+ {
+ for (s = d->screens; s; s = s->next)
+ {
+ if (!s->damageMask || s->timeLeft > timeToNextRedraw)
+ continue;
+
+ targetScreen = s;
+
+ timeDiff = TIMEVALDIFF (&tv, &s->lastRedraw);
+
+ /* handle clock rollback */
+ if (timeDiff < 0)
+ timeDiff = 0;
+
+ makeScreenCurrent (s);
+
+ if (s->slowAnimations)
+ {
+ (*s->preparePaintScreen) (s,
+ s->idle ? 2 :
+ (timeDiff * 2) /
+ s->redrawTime);
+ }
+ else
+ (*s->preparePaintScreen) (s,
+ s->idle ? s->redrawTime :
+ timeDiff);
+
+ /* substract top most overlay window region */
+ if (s->overlayWindowCount)
+ {
+ for (w = s->reverseWindows; w; w = w->prev)
+ {
+ if (w->destroyed || w->invisible)
+ continue;
+
+ if (!w->redirected)
+ XSubtractRegion (s->damage, w->region,
+ s->damage);
+
+ break;
+ }
+
+ if (s->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ {
+ s->damageMask &= ~COMP_SCREEN_DAMAGE_ALL_MASK;
+ s->damageMask |=
+ COMP_SCREEN_DAMAGE_REGION_MASK;
+ }
+ }
+
+ if (s->damageMask & COMP_SCREEN_DAMAGE_REGION_MASK)
+ {
+ XIntersectRegion (s->damage, &s->region,
+ core.tmpRegion);
+
+ if (core.tmpRegion->numRects == 1 &&
+ core.tmpRegion->rects->x1 == 0 &&
+ core.tmpRegion->rects->y1 == 0 &&
+ core.tmpRegion->rects->x2 == s->width &&
+ core.tmpRegion->rects->y2 == s->height)
+ damageScreen (s);
+ }
+
+ EMPTY_REGION (s->damage);
+
+ mask = s->damageMask;
+ s->damageMask = 0;
+
+ if (s->clearBuffers)
+ {
+ if (mask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ glClear (GL_COLOR_BUFFER_BIT);
+ }
+
+ if (s->opt[COMP_SCREEN_OPTION_FORCE_INDEPENDENT].value.b
+ || !s->hasOverlappingOutputs)
+ (*s->paintScreen) (s, s->outputDev,
+ s->nOutputDev,
+ mask);
+ else
+ (*s->paintScreen) (s, &s->fullscreenOutput, 1,
+ mask);
+
+ targetScreen = NULL;
+ targetOutput = &s->outputDev[0];
+
+ waitForVideoSync (s);
+
+ if (mask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ {
+ glXSwapBuffers (d->display, s->output);
+ }
+ else
+ {
+ BoxPtr pBox;
+ int nBox, y;
+
+ pBox = core.tmpRegion->rects;
+ nBox = core.tmpRegion->numRects;
+
+ if (s->copySubBuffer)
+ {
+ while (nBox--)
+ {
+ y = s->height - pBox->y2;
+
+ (*s->copySubBuffer) (d->display,
+ s->output,
+ pBox->x1, y,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1);
+
+ pBox++;
+ }
+ }
+ else
+ {
+ glEnable (GL_SCISSOR_TEST);
+ glDrawBuffer (GL_FRONT);
+
+ while (nBox--)
+ {
+ y = s->height - pBox->y2;
+
+ glBitmap (0, 0, 0, 0,
+ pBox->x1 - s->rasterX,
+ y - s->rasterY,
+ NULL);
+
+ s->rasterX = pBox->x1;
+ s->rasterY = y;
+
+ glScissor (pBox->x1, y,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1);
+
+ glCopyPixels (pBox->x1, y,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1,
+ GL_COLOR);
+
+ pBox++;
+ }
+
+ glDrawBuffer (GL_BACK);
+ glDisable (GL_SCISSOR_TEST);
+ glFlush ();
+ }
+ }
+
+ s->lastRedraw = tv;
+
+ (*s->donePaintScreen) (s);
+
+ /* remove destroyed windows */
+ while (s->pendingDestroys)
+ {
+ CompWindow *w;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->destroyed)
+ {
+ addWindowDamage (w);
+ removeWindow (w);
+ break;
+ }
+ }
+
+ s->pendingDestroys--;
+ }
+
+ s->idle = FALSE;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (core.timeouts)
+ {
+ if (core.timeouts->minLeft > 0)
+ {
+ t = core.timeouts;
+ time = t->maxLeft;
+ while (t && t->minLeft <= time)
+ {
+ if (t->maxLeft < time)
+ time = t->maxLeft;
+ t = t->next;
+ }
+ doPoll (time);
+ }
+
+ gettimeofday (&tv, 0);
+
+ handleTimeouts (&tv);
+ }
+ else
+ {
+ doPoll (-1);
+ }
+ }
+ }
+
+ for (d = core.displays; d; d = d->next)
+ compRemoveWatchFd (d->watchFdHandle);
+}
+
+static int errors = 0;
+
+static int
+errorHandler (Display *dpy,
+ XErrorEvent *e)
+{
+
+#ifdef DEBUG
+ char str[128];
+#endif
+
+ errors++;
+
+#ifdef DEBUG
+ XGetErrorDatabaseText (dpy, "XlibMessage", "XError", "", str, 128);
+ fprintf (stderr, "%s", str);
+
+ XGetErrorText (dpy, e->error_code, str, 128);
+ fprintf (stderr, ": %s\n ", str);
+
+ XGetErrorDatabaseText (dpy, "XlibMessage", "MajorCode", "%d", str, 128);
+ fprintf (stderr, str, e->request_code);
+
+ sprintf (str, "%d", e->request_code);
+ XGetErrorDatabaseText (dpy, "XRequest", str, "", str, 128);
+ if (strcmp (str, ""))
+ fprintf (stderr, " (%s)", str);
+ fprintf (stderr, "\n ");
+
+ XGetErrorDatabaseText (dpy, "XlibMessage", "MinorCode", "%d", str, 128);
+ fprintf (stderr, str, e->minor_code);
+ fprintf (stderr, "\n ");
+
+ XGetErrorDatabaseText (dpy, "XlibMessage", "ResourceID", "%d", str, 128);
+ fprintf (stderr, str, e->resourceid);
+ fprintf (stderr, "\n");
+
+ /* abort (); */
+#endif
+
+ return 0;
+}
+
+int
+compCheckForError (Display *dpy)
+{
+ int e;
+
+ XSync (dpy, FALSE);
+
+ e = errors;
+ errors = 0;
+
+ return e;
+}
+
+/* add actions that should be automatically added as no screens
+ existed when they were initialized. */
+static void
+addScreenActions (CompScreen *s)
+{
+ int i;
+
+ for (i = 0; i < COMP_DISPLAY_OPTION_NUM; i++)
+ {
+ if (!isActionOption (&s->display->opt[i]))
+ continue;
+
+ if (s->display->opt[i].value.action.state & CompActionStateAutoGrab)
+ addScreenAction (s, &s->display->opt[i].value.action);
+ }
+}
+
+void
+addScreenToDisplay (CompDisplay *display,
+ CompScreen *s)
+{
+ CompScreen *prev;
+
+ for (prev = display->screens; prev && prev->next; prev = prev->next);
+
+ if (prev)
+ prev->next = s;
+ else
+ display->screens = s;
+
+ addScreenActions (s);
+}
+
+static void
+freeDisplay (CompDisplay *d)
+{
+ compFiniDisplayOptions (d, d->opt, COMP_DISPLAY_OPTION_NUM);
+
+ compFiniOptionValue (&d->plugin, CompOptionTypeList);
+
+ if (d->modMap)
+ XFreeModifiermap (d->modMap);
+
+ if (d->screenInfo)
+ XFree (d->screenInfo);
+
+ if (d->screenPrivateIndices)
+ free (d->screenPrivateIndices);
+
+ if (d->base.privates)
+ free (d->base.privates);
+
+ free (d);
+}
+
+Bool
+addDisplay (const char *name)
+{
+ CompDisplay *d;
+ CompPrivate *privates;
+ Display *dpy;
+ Window focus;
+ int revertTo, i;
+ int compositeMajor, compositeMinor;
+ int fixesMinor;
+ int xkbOpcode;
+ int firstScreen, lastScreen;
+
+ d = malloc (sizeof (CompDisplay));
+ if (!d)
+ return FALSE;
+
+ if (displayPrivateLen)
+ {
+ privates = malloc (displayPrivateLen * sizeof (CompPrivate));
+ if (!privates)
+ {
+ free (d);
+ return FALSE;
+ }
+ }
+ else
+ privates = 0;
+
+ compObjectInit (&d->base, privates, COMP_OBJECT_TYPE_DISPLAY);
+
+ d->next = NULL;
+ d->screens = NULL;
+
+ d->watchFdHandle = 0;
+
+ d->screenPrivateIndices = 0;
+ d->screenPrivateLen = 0;
+
+ d->edgeDelayHandle = 0;
+
+ d->modMap = 0;
+
+ for (i = 0; i < CompModNum; i++)
+ d->modMask[i] = CompNoMask;
+
+ d->ignoredModMask = LockMask;
+
+ compInitOptionValue (&d->plugin);
+
+ d->plugin.list.type = CompOptionTypeString;
+ d->plugin.list.nValue = 1;
+ d->plugin.list.value = malloc (sizeof (CompOptionValue));
+
+ if (!d->plugin.list.value) {
+ free (d);
+ return FALSE;
+ }
+
+ d->plugin.list.value->s = strdup ("core");
+ if (!d->plugin.list.value->s) {
+ free (d->plugin.list.value);
+ free (d);
+ return FALSE;
+ }
+
+ d->dirtyPluginList = TRUE;
+
+ d->textureFilter = GL_LINEAR;
+ d->below = None;
+
+ d->activeWindow = 0;
+
+ d->autoRaiseHandle = 0;
+ d->autoRaiseWindow = None;
+
+ d->display = dpy = XOpenDisplay (name);
+ if (!d->display)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't open display %s", XDisplayName (name));
+ return FALSE;
+ }
+
+ if (!compInitDisplayOptionsFromMetadata (d,
+ &coreMetadata,
+ coreDisplayOptionInfo,
+ d->opt,
+ COMP_DISPLAY_OPTION_NUM))
+ return FALSE;
+
+ d->opt[COMP_DISPLAY_OPTION_ABI].value.i = CORE_ABIVERSION;
+
+ snprintf (d->displayString, 255, "DISPLAY=%s", DisplayString (dpy));
+
+#ifdef DEBUG
+ XSynchronize (dpy, TRUE);
+#endif
+
+ XSetErrorHandler (errorHandler);
+
+ updateModifierMappings (d);
+
+ d->handleEvent = handleEvent;
+ d->handleCompizEvent = handleCompizEvent;
+
+ d->fileToImage = fileToImage;
+ d->imageToFile = imageToFile;
+
+ d->matchInitExp = matchInitExp;
+ d->matchExpHandlerChanged = matchExpHandlerChanged;
+ d->matchPropertyChanged = matchPropertyChanged;
+
+ d->supportedAtom = XInternAtom (dpy, "_NET_SUPPORTED", 0);
+ d->supportingWmCheckAtom = XInternAtom (dpy, "_NET_SUPPORTING_WM_CHECK", 0);
+
+ d->utf8StringAtom = XInternAtom (dpy, "UTF8_STRING", 0);
+
+ d->wmNameAtom = XInternAtom (dpy, "_NET_WM_NAME", 0);
+
+ d->winTypeAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE", 0);
+ d->winTypeDesktopAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DESKTOP",
+ 0);
+ d->winTypeDockAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DOCK", 0);
+ d->winTypeToolbarAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_TOOLBAR",
+ 0);
+ d->winTypeMenuAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_MENU", 0);
+ d->winTypeUtilAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_UTILITY",
+ 0);
+ d->winTypeSplashAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_SPLASH", 0);
+ d->winTypeDialogAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DIALOG", 0);
+ d->winTypeNormalAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_NORMAL", 0);
+
+ d->winTypeDropdownMenuAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", 0);
+ d->winTypePopupMenuAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_POPUP_MENU", 0);
+ d->winTypeTooltipAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_TOOLTIP", 0);
+ d->winTypeNotificationAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_NOTIFICATION", 0);
+ d->winTypeComboAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_COMBO", 0);
+ d->winTypeDndAtom =
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DND", 0);
+
+ d->winOpacityAtom = XInternAtom (dpy, "_NET_WM_WINDOW_OPACITY", 0);
+ d->winBrightnessAtom = XInternAtom (dpy, "_NET_WM_WINDOW_BRIGHTNESS", 0);
+ d->winSaturationAtom = XInternAtom (dpy, "_NET_WM_WINDOW_SATURATION", 0);
+
+ d->winActiveAtom = XInternAtom (dpy, "_NET_ACTIVE_WINDOW", 0);
+
+ d->winDesktopAtom = XInternAtom (dpy, "_NET_WM_DESKTOP", 0);
+
+ d->workareaAtom = XInternAtom (dpy, "_NET_WORKAREA", 0);
+
+ d->desktopViewportAtom = XInternAtom (dpy, "_NET_DESKTOP_VIEWPORT", 0);
+ d->desktopGeometryAtom = XInternAtom (dpy, "_NET_DESKTOP_GEOMETRY", 0);
+ d->currentDesktopAtom = XInternAtom (dpy, "_NET_CURRENT_DESKTOP", 0);
+ d->numberOfDesktopsAtom = XInternAtom (dpy, "_NET_NUMBER_OF_DESKTOPS", 0);
+
+ d->winStateAtom = XInternAtom (dpy, "_NET_WM_STATE", 0);
+ d->winStateModalAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_MODAL", 0);
+ d->winStateStickyAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_STICKY", 0);
+ d->winStateMaximizedVertAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_MAXIMIZED_VERT", 0);
+ d->winStateMaximizedHorzAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_MAXIMIZED_HORZ", 0);
+ d->winStateShadedAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_SHADED", 0);
+ d->winStateSkipTaskbarAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_SKIP_TASKBAR", 0);
+ d->winStateSkipPagerAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_SKIP_PAGER", 0);
+ d->winStateHiddenAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_HIDDEN", 0);
+ d->winStateFullscreenAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_FULLSCREEN", 0);
+ d->winStateAboveAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_ABOVE", 0);
+ d->winStateBelowAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_BELOW", 0);
+ d->winStateDemandsAttentionAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_DEMANDS_ATTENTION", 0);
+ d->winStateDisplayModalAtom =
+ XInternAtom (dpy, "_NET_WM_STATE_DISPLAY_MODAL", 0);
+
+ d->winActionMoveAtom = XInternAtom (dpy, "_NET_WM_ACTION_MOVE", 0);
+ d->winActionResizeAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_RESIZE", 0);
+ d->winActionStickAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_STICK", 0);
+ d->winActionMinimizeAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_MINIMIZE", 0);
+ d->winActionMaximizeHorzAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_MAXIMIZE_HORZ", 0);
+ d->winActionMaximizeVertAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_MAXIMIZE_VERT", 0);
+ d->winActionFullscreenAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_FULLSCREEN", 0);
+ d->winActionCloseAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_CLOSE", 0);
+ d->winActionShadeAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_SHADE", 0);
+ d->winActionChangeDesktopAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_CHANGE_DESKTOP", 0);
+ d->winActionAboveAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_ABOVE", 0);
+ d->winActionBelowAtom =
+ XInternAtom (dpy, "_NET_WM_ACTION_BELOW", 0);
+
+ d->wmAllowedActionsAtom = XInternAtom (dpy, "_NET_WM_ALLOWED_ACTIONS", 0);
+
+ d->wmStrutAtom = XInternAtom (dpy, "_NET_WM_STRUT", 0);
+ d->wmStrutPartialAtom = XInternAtom (dpy, "_NET_WM_STRUT_PARTIAL", 0);
+
+ d->wmUserTimeAtom = XInternAtom (dpy, "_NET_WM_USER_TIME", 0);
+
+ d->wmIconAtom = XInternAtom (dpy,"_NET_WM_ICON", 0);
+ d->wmIconGeometryAtom = XInternAtom (dpy, "_NET_WM_ICON_GEOMETRY", 0);
+
+ d->clientListAtom = XInternAtom (dpy, "_NET_CLIENT_LIST", 0);
+ d->clientListStackingAtom =
+ XInternAtom (dpy, "_NET_CLIENT_LIST_STACKING", 0);
+
+ d->frameExtentsAtom = XInternAtom (dpy, "_NET_FRAME_EXTENTS", 0);
+ d->frameWindowAtom = XInternAtom (dpy, "_NET_FRAME_WINDOW", 0);
+
+ d->wmStateAtom = XInternAtom (dpy, "WM_STATE", 0);
+ d->wmChangeStateAtom = XInternAtom (dpy, "WM_CHANGE_STATE", 0);
+ d->wmProtocolsAtom = XInternAtom (dpy, "WM_PROTOCOLS", 0);
+ d->wmClientLeaderAtom = XInternAtom (dpy, "WM_CLIENT_LEADER", 0);
+
+ d->wmDeleteWindowAtom = XInternAtom (dpy, "WM_DELETE_WINDOW", 0);
+ d->wmTakeFocusAtom = XInternAtom (dpy, "WM_TAKE_FOCUS", 0);
+ d->wmPingAtom = XInternAtom (dpy, "_NET_WM_PING", 0);
+
+ d->wmSyncRequestAtom = XInternAtom (dpy, "_NET_WM_SYNC_REQUEST", 0);
+ d->wmSyncRequestCounterAtom =
+ XInternAtom (dpy, "_NET_WM_SYNC_REQUEST_COUNTER", 0);
+
+ d->wmFullscreenMonitorsAtom =
+ XInternAtom (dpy, "_NET_WM_FULLSCREEN_MONITORS", 0);
+
+ d->closeWindowAtom = XInternAtom (dpy, "_NET_CLOSE_WINDOW", 0);
+ d->wmMoveResizeAtom = XInternAtom (dpy, "_NET_WM_MOVERESIZE", 0);
+ d->moveResizeWindowAtom = XInternAtom (dpy, "_NET_MOVERESIZE_WINDOW", 0);
+ d->restackWindowAtom = XInternAtom (dpy, "_NET_RESTACK_WINDOW", 0);
+
+ d->showingDesktopAtom = XInternAtom (dpy, "_NET_SHOWING_DESKTOP", 0);
+
+ d->xBackgroundAtom[0] = XInternAtom (dpy, "_XSETROOT_ID", 0);
+ d->xBackgroundAtom[1] = XInternAtom (dpy, "_XROOTPMAP_ID", 0);
+
+ d->toolkitActionAtom =
+ XInternAtom (dpy, "_COMPIZ_TOOLKIT_ACTION", 0);
+ d->toolkitActionWindowMenuAtom =
+ XInternAtom (dpy, "_COMPIZ_TOOLKIT_ACTION_WINDOW_MENU", 0);
+ d->toolkitActionForceQuitDialogAtom =
+ XInternAtom (dpy, "_COMPIZ_TOOLKIT_ACTION_FORCE_QUIT_DIALOG", 0);
+
+ d->mwmHintsAtom = XInternAtom (dpy, "_MOTIF_WM_HINTS", 0);
+
+ d->xdndAwareAtom = XInternAtom (dpy, "XdndAware", 0);
+ d->xdndEnterAtom = XInternAtom (dpy, "XdndEnter", 0);
+ d->xdndLeaveAtom = XInternAtom (dpy, "XdndLeave", 0);
+ d->xdndPositionAtom = XInternAtom (dpy, "XdndPosition", 0);
+ d->xdndStatusAtom = XInternAtom (dpy, "XdndStatus", 0);
+ d->xdndDropAtom = XInternAtom (dpy, "XdndDrop", 0);
+
+ d->managerAtom = XInternAtom (dpy, "MANAGER", 0);
+ d->targetsAtom = XInternAtom (dpy, "TARGETS", 0);
+ d->multipleAtom = XInternAtom (dpy, "MULTIPLE", 0);
+ d->timestampAtom = XInternAtom (dpy, "TIMESTAMP", 0);
+ d->versionAtom = XInternAtom (dpy, "VERSION", 0);
+ d->atomPairAtom = XInternAtom (dpy, "ATOM_PAIR", 0);
+
+ d->startupIdAtom = XInternAtom (dpy, "_NET_STARTUP_ID", 0);
+
+ d->snDisplay = sn_display_new (dpy, NULL, NULL);
+ if (!d->snDisplay)
+ return FALSE;
+
+ d->lastPing = 1;
+
+ if (!XQueryExtension (dpy,
+ COMPOSITE_NAME,
+ &d->compositeOpcode,
+ &d->compositeEvent,
+ &d->compositeError))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No composite extension");
+ return FALSE;
+ }
+
+ XCompositeQueryVersion (dpy, &compositeMajor, &compositeMinor);
+ if (compositeMajor == 0 && compositeMinor < 2)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Old composite extension");
+ return FALSE;
+ }
+
+ if (!XDamageQueryExtension (dpy, &d->damageEvent, &d->damageError))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No damage extension");
+ return FALSE;
+ }
+
+ if (!XSyncQueryExtension (dpy, &d->syncEvent, &d->syncError))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No sync extension");
+ return FALSE;
+ }
+
+ if (!XFixesQueryExtension (dpy, &d->fixesEvent, &d->fixesError))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No fixes extension");
+ return FALSE;
+ }
+
+ XFixesQueryVersion (dpy, &d->fixesVersion, &fixesMinor);
+ /*
+ if (d->fixesVersion < 5)
+ {
+ fprintf (stderr, "%s: Need fixes extension version 5 or later "
+ "for client-side cursor\n", programName);
+ }
+ */
+
+ d->randrExtension = XRRQueryExtension (dpy,
+ &d->randrEvent,
+ &d->randrError);
+
+ d->shapeExtension = XShapeQueryExtension (dpy,
+ &d->shapeEvent,
+ &d->shapeError);
+
+ d->xkbExtension = XkbQueryExtension (dpy,
+ &xkbOpcode,
+ &d->xkbEvent,
+ &d->xkbError,
+ NULL, NULL);
+ if (d->xkbExtension)
+ {
+ XkbSelectEvents (dpy,
+ XkbUseCoreKbd,
+ XkbBellNotifyMask | XkbStateNotifyMask,
+ XkbAllEventsMask);
+ }
+ else
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No XKB extension");
+
+ d->xkbEvent = d->xkbError = -1;
+ }
+
+ d->screenInfo = NULL;
+ d->nScreenInfo = 0;
+
+ d->xineramaExtension = XineramaQueryExtension (dpy,
+ &d->xineramaEvent,
+ &d->xineramaError);
+
+ if (d->xineramaExtension)
+ d->screenInfo = XineramaQueryScreens (dpy, &d->nScreenInfo);
+
+ d->escapeKeyCode = XKeysymToKeycode (dpy, XStringToKeysym ("Escape"));
+ d->returnKeyCode = XKeysymToKeycode (dpy, XStringToKeysym ("Return"));
+
+ addDisplayToCore (d);
+
+ /* TODO: bailout properly when objectInitPlugins fails */
+ assert (objectInitPlugins (&d->base));
+
+ (*core.objectAdd) (&core.base, &d->base);
+
+ if (onlyCurrentScreen)
+ {
+ firstScreen = DefaultScreen (dpy);
+ lastScreen = DefaultScreen (dpy);
+ }
+ else
+ {
+ firstScreen = 0;
+ lastScreen = ScreenCount (dpy) - 1;
+ }
+
+ for (i = firstScreen; i <= lastScreen; i++)
+ {
+ Window newWmSnOwner = None, newCmSnOwner = None;
+ Atom wmSnAtom = 0, cmSnAtom = 0;
+ Time wmSnTimestamp = 0;
+ XEvent event;
+ XSetWindowAttributes attr;
+ Window currentWmSnOwner, currentCmSnOwner;
+ char buf[128];
+ Window rootDummy, childDummy;
+ unsigned int uDummy;
+ int x, y, dummy;
+
+ sprintf (buf, "WM_S%d", i);
+ wmSnAtom = XInternAtom (dpy, buf, 0);
+
+ currentWmSnOwner = XGetSelectionOwner (dpy, wmSnAtom);
+
+ if (currentWmSnOwner != None)
+ {
+ if (!replaceCurrentWm)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Screen %d on display \"%s\" already "
+ "has a window manager; try using the "
+ "--replace option to replace the current "
+ "window manager.",
+ i, DisplayString (dpy));
+
+ continue;
+ }
+
+ XSelectInput (dpy, currentWmSnOwner,
+ StructureNotifyMask);
+ }
+
+ sprintf (buf, "_NET_WM_CM_S%d", i);
+ cmSnAtom = XInternAtom (dpy, buf, 0);
+
+ currentCmSnOwner = XGetSelectionOwner (dpy, cmSnAtom);
+
+ if (currentCmSnOwner != None)
+ {
+ if (!replaceCurrentWm)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Screen %d on display \"%s\" already "
+ "has a compositing manager; try using the "
+ "--replace option to replace the current "
+ "compositing manager.",
+ i, DisplayString (dpy));
+
+ continue;
+ }
+ }
+
+ attr.override_redirect = TRUE;
+ attr.event_mask = PropertyChangeMask;
+
+ newCmSnOwner = newWmSnOwner =
+ XCreateWindow (dpy, XRootWindow (dpy, i),
+ -100, -100, 1, 1, 0,
+ CopyFromParent, CopyFromParent,
+ CopyFromParent,
+ CWOverrideRedirect | CWEventMask,
+ &attr);
+
+ XChangeProperty (dpy,
+ newWmSnOwner,
+ d->wmNameAtom,
+ d->utf8StringAtom, 8,
+ PropModeReplace,
+ (unsigned char *) PACKAGE,
+ strlen (PACKAGE));
+
+ XWindowEvent (dpy,
+ newWmSnOwner,
+ PropertyChangeMask,
+ &event);
+
+ wmSnTimestamp = event.xproperty.time;
+
+ XSetSelectionOwner (dpy, wmSnAtom, newWmSnOwner, wmSnTimestamp);
+
+ if (XGetSelectionOwner (dpy, wmSnAtom) != newWmSnOwner)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Could not acquire window manager "
+ "selection on screen %d display \"%s\"",
+ i, DisplayString (dpy));
+
+ XDestroyWindow (dpy, newWmSnOwner);
+
+ continue;
+ }
+
+ /* Send client message indicating that we are now the WM */
+ event.xclient.type = ClientMessage;
+ event.xclient.window = XRootWindow (dpy, i);
+ event.xclient.message_type = d->managerAtom;
+ event.xclient.format = 32;
+ event.xclient.data.l[0] = wmSnTimestamp;
+ event.xclient.data.l[1] = wmSnAtom;
+ event.xclient.data.l[2] = 0;
+ event.xclient.data.l[3] = 0;
+ event.xclient.data.l[4] = 0;
+
+ XSendEvent (dpy, XRootWindow (dpy, i), FALSE,
+ StructureNotifyMask, &event);
+
+ /* Wait for old window manager to go away */
+ if (currentWmSnOwner != None)
+ {
+ do {
+ XWindowEvent (dpy, currentWmSnOwner,
+ StructureNotifyMask, &event);
+ } while (event.type != DestroyNotify);
+ }
+
+ compCheckForError (dpy);
+
+ XCompositeRedirectSubwindows (dpy, XRootWindow (dpy, i),
+ CompositeRedirectManual);
+
+ if (compCheckForError (dpy))
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Another composite manager is already "
+ "running on screen: %d", i);
+
+ continue;
+ }
+
+ XSetSelectionOwner (dpy, cmSnAtom, newCmSnOwner, wmSnTimestamp);
+
+ if (XGetSelectionOwner (dpy, cmSnAtom) != newCmSnOwner)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Could not acquire compositing manager "
+ "selection on screen %d display \"%s\"",
+ i, DisplayString (dpy));
+
+ continue;
+ }
+
+ XGrabServer (dpy);
+
+ XSelectInput (dpy, XRootWindow (dpy, i),
+ SubstructureRedirectMask |
+ SubstructureNotifyMask |
+ StructureNotifyMask |
+ PropertyChangeMask |
+ LeaveWindowMask |
+ EnterWindowMask |
+ KeyPressMask |
+ KeyReleaseMask |
+ ButtonPressMask |
+ ButtonReleaseMask |
+ FocusChangeMask |
+ ExposureMask);
+
+ if (compCheckForError (dpy))
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Another window manager is "
+ "already running on screen: %d", i);
+
+ XUngrabServer (dpy);
+ continue;
+ }
+
+ if (!addScreen (d, i, newWmSnOwner, wmSnAtom, wmSnTimestamp))
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Failed to manage screen: %d", i);
+ }
+
+ if (XQueryPointer (dpy, XRootWindow (dpy, i),
+ &rootDummy, &childDummy,
+ &x, &y, &dummy, &dummy, &uDummy))
+ {
+ lastPointerX = pointerX = x;
+ lastPointerY = pointerY = y;
+ }
+
+ XUngrabServer (dpy);
+ }
+
+ if (!d->screens)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No manageable screens found on display %s",
+ XDisplayName (name));
+ return FALSE;
+ }
+
+ setAudibleBell (d, d->opt[COMP_DISPLAY_OPTION_AUDIBLE_BELL].value.b);
+
+ XGetInputFocus (dpy, &focus, &revertTo);
+
+ /* move input focus to root window so that we get a FocusIn event when
+ moving it to the default window */
+ XSetInputFocus (dpy, d->screens->root, RevertToPointerRoot, CurrentTime);
+
+ if (focus == None || focus == PointerRoot)
+ {
+ focusDefaultWindow (d->screens);
+ }
+ else
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, focus);
+ if (w)
+ {
+ moveInputFocusToWindow (w);
+ }
+ else
+ focusDefaultWindow (d->screens);
+ }
+
+ d->pingHandle =
+ compAddTimeout (d->opt[COMP_DISPLAY_OPTION_PING_DELAY].value.i,
+ d->opt[COMP_DISPLAY_OPTION_PING_DELAY].value.i + 500,
+ pingTimeout, d);
+
+ return TRUE;
+}
+
+void
+removeDisplay (CompDisplay *d)
+{
+ CompDisplay *p;
+
+ for (p = core.displays; p; p = p->next)
+ if (p->next == d)
+ break;
+
+ if (p)
+ p->next = d->next;
+ else
+ core.displays = NULL;
+
+ while (d->screens)
+ removeScreen (d->screens);
+
+ (*core.objectRemove) (&core.base, &d->base);
+
+ objectFiniPlugins (&d->base);
+
+ compRemoveTimeout (d->pingHandle);
+
+ if (d->snDisplay)
+ sn_display_unref (d->snDisplay);
+
+ XSync (d->display, False);
+ XCloseDisplay (d->display);
+
+ freeDisplay (d);
+}
+
+Time
+getCurrentTimeFromDisplay (CompDisplay *d)
+{
+ XEvent event;
+
+ XChangeProperty (d->display, d->screens->grabWindow,
+ XA_PRIMARY, XA_STRING, 8,
+ PropModeAppend, NULL, 0);
+ XWindowEvent (d->display, d->screens->grabWindow,
+ PropertyChangeMask,
+ &event);
+
+ return event.xproperty.time;
+}
+
+CompScreen *
+findScreenAtDisplay (CompDisplay *d,
+ Window root)
+{
+ CompScreen *s;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ if (s->root == root)
+ return s;
+ }
+
+ return 0;
+}
+
+void
+forEachWindowOnDisplay (CompDisplay *display,
+ ForEachWindowProc proc,
+ void *closure)
+{
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ forEachWindowOnScreen (s, proc, closure);
+}
+
+CompWindow *
+findWindowAtDisplay (CompDisplay *d,
+ Window id)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ w = findWindowAtScreen (s, id);
+ if (w)
+ return w;
+ }
+
+ return 0;
+}
+
+CompWindow *
+findTopLevelWindowAtDisplay (CompDisplay *d,
+ Window id)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ w = findTopLevelWindowAtScreen (s, id);
+ if (w)
+ return w;
+ }
+
+ return 0;
+}
+
+static CompScreen *
+findScreenForSelection (CompDisplay *display,
+ Window owner,
+ Atom selection)
+{
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ {
+ if (s->wmSnSelectionWindow == owner && s->wmSnAtom == selection)
+ return s;
+ }
+
+ return NULL;
+}
+
+/* from fvwm2, Copyright Matthias Clasen, Dominik Vogt */
+static Bool
+convertProperty (CompDisplay *display,
+ CompScreen *screen,
+ Window w,
+ Atom target,
+ Atom property)
+{
+
+#define N_TARGETS 4
+
+ Atom conversionTargets[N_TARGETS];
+ long icccmVersion[] = { 2, 0 };
+
+ conversionTargets[0] = display->targetsAtom;
+ conversionTargets[1] = display->multipleAtom;
+ conversionTargets[2] = display->timestampAtom;
+ conversionTargets[3] = display->versionAtom;
+
+ if (target == display->targetsAtom)
+ XChangeProperty (display->display, w, property,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) conversionTargets, N_TARGETS);
+ else if (target == display->timestampAtom)
+ XChangeProperty (display->display, w, property,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) &screen->wmSnTimestamp, 1);
+ else if (target == display->versionAtom)
+ XChangeProperty (display->display, w, property,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) icccmVersion, 2);
+ else
+ return FALSE;
+
+ /* Be sure the PropertyNotify has arrived so we
+ * can send SelectionNotify
+ */
+ XSync (display->display, FALSE);
+
+ return TRUE;
+}
+
+/* from fvwm2, Copyright Matthias Clasen, Dominik Vogt */
+void
+handleSelectionRequest (CompDisplay *display,
+ XEvent *event)
+{
+ XSelectionEvent reply;
+ CompScreen *screen;
+
+ screen = findScreenForSelection (display,
+ event->xselectionrequest.owner,
+ event->xselectionrequest.selection);
+ if (!screen)
+ return;
+
+ reply.type = SelectionNotify;
+ reply.display = display->display;
+ reply.requestor = event->xselectionrequest.requestor;
+ reply.selection = event->xselectionrequest.selection;
+ reply.target = event->xselectionrequest.target;
+ reply.property = None;
+ reply.time = event->xselectionrequest.time;
+
+ if (event->xselectionrequest.target == display->multipleAtom)
+ {
+ if (event->xselectionrequest.property != None)
+ {
+ Atom type, *adata;
+ int i, format;
+ unsigned long num, rest;
+ unsigned char *data;
+
+ if (XGetWindowProperty (display->display,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.property,
+ 0, 256, FALSE,
+ display->atomPairAtom,
+ &type, &format, &num, &rest,
+ &data) != Success)
+ return;
+
+ /* FIXME: to be 100% correct, should deal with rest > 0,
+ * but since we have 4 possible targets, we will hardly ever
+ * meet multiple requests with a length > 8
+ */
+ adata = (Atom *) data;
+ i = 0;
+ while (i < (int) num)
+ {
+ if (!convertProperty (display, screen,
+ event->xselectionrequest.requestor,
+ adata[i], adata[i + 1]))
+ adata[i + 1] = None;
+
+ i += 2;
+ }
+
+ XChangeProperty (display->display,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.property,
+ display->atomPairAtom,
+ 32, PropModeReplace, data, num);
+
+ if (data)
+ XFree (data);
+ }
+ }
+ else
+ {
+ if (event->xselectionrequest.property == None)
+ event->xselectionrequest.property = event->xselectionrequest.target;
+
+ if (convertProperty (display, screen,
+ event->xselectionrequest.requestor,
+ event->xselectionrequest.target,
+ event->xselectionrequest.property))
+ reply.property = event->xselectionrequest.property;
+ }
+
+ XSendEvent (display->display,
+ event->xselectionrequest.requestor,
+ FALSE, 0L, (XEvent *) &reply);
+}
+
+void
+handleSelectionClear (CompDisplay *display,
+ XEvent *event)
+{
+ /* We need to unmanage the screen on which we lost the selection */
+ CompScreen *screen;
+
+ screen = findScreenForSelection (display,
+ event->xselectionclear.window,
+ event->xselectionclear.selection);
+
+ if (screen)
+ shutDown = TRUE;
+}
+
+void
+warpPointer (CompScreen *s,
+ int dx,
+ int dy)
+{
+ CompDisplay *display = s->display;
+ XEvent event;
+
+ pointerX += dx;
+ pointerY += dy;
+
+ if (pointerX >= s->width)
+ pointerX = s->width - 1;
+ else if (pointerX < 0)
+ pointerX = 0;
+
+ if (pointerY >= s->height)
+ pointerY = s->height - 1;
+ else if (pointerY < 0)
+ pointerY = 0;
+
+ XWarpPointer (display->display,
+ None, s->root,
+ 0, 0, 0, 0,
+ pointerX, pointerY);
+
+ XSync (display->display, FALSE);
+
+ while (XCheckMaskEvent (display->display,
+ LeaveWindowMask |
+ EnterWindowMask |
+ PointerMotionMask,
+ &event));
+
+ if (!inHandleEvent)
+ {
+ lastPointerX = pointerX;
+ lastPointerY = pointerY;
+ }
+}
+
+Bool
+setDisplayAction (CompDisplay *display,
+ CompOption *o,
+ CompOptionValue *value)
+{
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ if (!addScreenAction (s, &value->action))
+ break;
+
+ if (s)
+ {
+ CompScreen *failed = s;
+
+ for (s = display->screens; s && s != failed; s = s->next)
+ removeScreenAction (s, &value->action);
+
+ return FALSE;
+ }
+ else
+ {
+ for (s = display->screens; s; s = s->next)
+ removeScreenAction (s, &o->value.action);
+ }
+
+ if (compSetActionOption (o, value))
+ return TRUE;
+
+ return FALSE;
+}
+
+void
+clearTargetOutput (CompDisplay *display,
+ unsigned int mask)
+{
+ if (targetScreen)
+ clearScreenOutput (targetScreen,
+ targetOutput,
+ mask);
+}
+
+#define HOME_IMAGEDIR ".compiz/images"
+
+Bool
+readImageFromFile (CompDisplay *display,
+ const char *name,
+ int *width,
+ int *height,
+ void **data)
+{
+ Bool status;
+ int stride;
+
+ status = (*display->fileToImage) (display, NULL, name, width, height,
+ &stride, data);
+ if (!status)
+ {
+ char *home;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ char *path;
+
+ path = malloc (strlen (home) + strlen (HOME_IMAGEDIR) + 2);
+ if (path)
+ {
+ sprintf (path, "%s/%s", home, HOME_IMAGEDIR);
+ status = (*display->fileToImage) (display, path, name,
+ width, height, &stride,
+ data);
+
+ free (path);
+
+ if (status)
+ return TRUE;
+ }
+ }
+
+ status = (*display->fileToImage) (display, IMAGEDIR, name,
+ width, height, &stride, data);
+ }
+
+ return status;
+}
+
+Bool
+writeImageToFile (CompDisplay *display,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ void *data)
+{
+ return (*display->imageToFile) (display, path, name, format, width, height,
+ width * 4, data);
+}
+
+Bool
+fileToImage (CompDisplay *display,
+ const char *path,
+ const char *name,
+ int *width,
+ int *height,
+ int *stride,
+ void **data)
+{
+ return FALSE;
+}
+
+Bool
+imageToFile (CompDisplay *display,
+ const char *path,
+ const char *name,
+ const char *format,
+ int width,
+ int height,
+ int stride,
+ void *data)
+{
+ return FALSE;
+}
+
+CompCursor *
+findCursorAtDisplay (CompDisplay *display)
+{
+ CompScreen *s;
+
+ for (s = display->screens; s; s = s->next)
+ if (s->cursors)
+ return s->cursors;
+
+ return NULL;
+}
diff --git a/src/event.c b/src/event.c
new file mode 100644
index 0000000..7e08e3c
--- /dev/null
+++ b/src/event.c
@@ -0,0 +1,2374 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/extensions/shape.h>
+#include <X11/extensions/Xrandr.h>
+#include <X11/extensions/Xfixes.h>
+
+#include <compiz-core.h>
+
+static Window xdndWindow = None;
+static Window edgeWindow = None;
+
+static void
+handleWindowDamageRect (CompWindow *w,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ REGION region;
+ Bool initial = FALSE;
+
+ if (!w->redirected || w->bindFailed)
+ return;
+
+ if (!w->damaged)
+ {
+ w->damaged = initial = TRUE;
+ w->invisible = WINDOW_INVISIBLE (w);
+ }
+
+ region.extents.x1 = x;
+ region.extents.y1 = y;
+ region.extents.x2 = region.extents.x1 + width;
+ region.extents.y2 = region.extents.y1 + height;
+
+ if (!(*w->screen->damageWindowRect) (w, initial, &region.extents))
+ {
+ region.extents.x1 += w->attrib.x + w->attrib.border_width;
+ region.extents.y1 += w->attrib.y + w->attrib.border_width;
+ region.extents.x2 += w->attrib.x + w->attrib.border_width;
+ region.extents.y2 += w->attrib.y + w->attrib.border_width;
+
+ region.rects = &region.extents;
+ region.numRects = region.size = 1;
+
+ damageScreenRegion (w->screen, &region);
+ }
+
+ if (initial)
+ damageWindowOutputExtents (w);
+}
+
+void
+handleSyncAlarm (CompWindow *w)
+{
+ if (w->syncWait)
+ {
+ if (w->syncWaitHandle)
+ {
+ compRemoveTimeout (w->syncWaitHandle);
+ w->syncWaitHandle = 0;
+ }
+
+ w->syncWait = FALSE;
+
+ if (resizeWindow (w,
+ w->syncX, w->syncY,
+ w->syncWidth, w->syncHeight,
+ w->syncBorderWidth))
+ {
+ XRectangle *rects;
+ int nDamage;
+
+ nDamage = w->nDamage;
+ rects = w->damageRects;
+ while (nDamage--)
+ {
+ handleWindowDamageRect (w,
+ rects[nDamage].x,
+ rects[nDamage].y,
+ rects[nDamage].width,
+ rects[nDamage].height);
+ }
+
+ w->nDamage = 0;
+ }
+ else
+ {
+ /* resizeWindow failing means that there is another pending
+ resize and we must send a new sync request to the client */
+ sendSyncRequest (w);
+ }
+ }
+}
+
+static void
+moveInputFocusToOtherWindow (CompWindow *w)
+{
+ CompDisplay *display = w->screen->display;
+
+ if (w->id == display->activeWindow)
+ {
+ CompWindow *ancestor;
+
+ if (w->transientFor && w->transientFor != w->screen->root)
+ {
+ ancestor = findWindowAtDisplay (display, w->transientFor);
+ if (ancestor && !(ancestor->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask)))
+ {
+ moveInputFocusToWindow (ancestor);
+ }
+ else
+ focusDefaultWindow (w->screen);
+ }
+ else if (w->type & (CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask))
+ {
+ CompWindow *a, *focus = NULL;
+
+ for (a = w->screen->reverseWindows; a; a = a->prev)
+ {
+ if (a->clientLeader == w->clientLeader)
+ {
+ if ((*w->screen->focusWindow) (a))
+ {
+ if (focus)
+ {
+ if (a->type & (CompWindowTypeNormalMask |
+ CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask))
+ {
+ if (compareWindowActiveness (focus, a) < 0)
+ focus = a;
+ }
+ }
+ else
+ focus = a;
+ }
+ }
+ }
+
+ if (focus && !(focus->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask)))
+ {
+ moveInputFocusToWindow (focus);
+ }
+ else
+ focusDefaultWindow (w->screen);
+ }
+ else
+ focusDefaultWindow (w->screen);
+ }
+}
+
+static Bool
+autoRaiseTimeout (void *closure)
+{
+ CompDisplay *display = closure;
+ CompWindow *w = findWindowAtDisplay (display, display->activeWindow);
+
+ if (display->autoRaiseWindow == display->activeWindow ||
+ (w && (display->autoRaiseWindow == w->transientFor)))
+ {
+ w = findWindowAtDisplay (display, display->autoRaiseWindow);
+ if (w)
+ updateWindowAttributes (w, CompStackingUpdateModeNormal);
+ }
+
+ return FALSE;
+}
+
+#define REAL_MOD_MASK (ShiftMask | ControlMask | Mod1Mask | Mod2Mask | \
+ Mod3Mask | Mod4Mask | Mod5Mask | CompNoMask)
+
+static Bool
+isCallBackBinding (CompOption *option,
+ CompBindingType type,
+ CompActionState state)
+{
+ if (!isActionOption (option))
+ return FALSE;
+
+ if (!(option->value.action.type & type))
+ return FALSE;
+
+ if (!(option->value.action.state & state))
+ return FALSE;
+
+ return TRUE;
+}
+
+static Bool
+isInitiateBinding (CompOption *option,
+ CompBindingType type,
+ CompActionState state,
+ CompAction **action)
+{
+ if (!isCallBackBinding (option, type, state))
+ return FALSE;
+
+ if (!option->value.action.initiate)
+ return FALSE;
+
+ *action = &option->value.action;
+
+ return TRUE;
+}
+
+static Bool
+isTerminateBinding (CompOption *option,
+ CompBindingType type,
+ CompActionState state,
+ CompAction **action)
+{
+ if (!isCallBackBinding (option, type, state))
+ return FALSE;
+
+ if (!option->value.action.terminate)
+ return FALSE;
+
+ *action = &option->value.action;
+
+ return TRUE;
+}
+
+static Bool
+triggerButtonPressBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ XButtonEvent *event,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state = CompActionStateInitButton;
+ CompAction *action;
+ unsigned int modMask = REAL_MOD_MASK & ~d->ignoredModMask;
+ unsigned int bindMods;
+ unsigned int edge = 0;
+
+ if (edgeWindow)
+ {
+ CompScreen *s;
+ unsigned int i;
+
+ s = findScreenAtDisplay (d, event->root);
+ if (!s)
+ return FALSE;
+
+ if (event->window != edgeWindow)
+ {
+ if (!s->maxGrab || event->window != s->root)
+ return FALSE;
+ }
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (edgeWindow == s->screenEdge[i].id)
+ {
+ edge = 1 << i;
+ argument[1].value.i = d->activeWindow;
+ break;
+ }
+ }
+ }
+
+ while (nOption--)
+ {
+ if (isInitiateBinding (option, CompBindingTypeButton, state, &action))
+ {
+ if (action->button.button == event->button)
+ {
+ bindMods = virtualToRealModMask (d, action->button.modifiers);
+
+ if ((bindMods & modMask) == (event->state & modMask))
+ if ((*action->initiate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+
+ if (edge)
+ {
+ if (isInitiateBinding (option, CompBindingTypeEdgeButton,
+ state | CompActionStateInitEdge, &action))
+ {
+ if ((action->button.button == event->button) &&
+ (action->edgeMask & edge))
+ {
+ bindMods = virtualToRealModMask (d,
+ action->button.modifiers);
+
+ if ((bindMods & modMask) == (event->state & modMask))
+ if ((*action->initiate) (d, action, state |
+ CompActionStateInitEdge,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerButtonReleaseBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ XButtonEvent *event,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state = CompActionStateTermButton;
+ CompBindingType type = CompBindingTypeButton | CompBindingTypeEdgeButton;
+ CompAction *action;
+
+ while (nOption--)
+ {
+ if (isTerminateBinding (option, type, state, &action))
+ {
+ if (action->button.button == event->button)
+ {
+ if ((*action->terminate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerKeyPressBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ XKeyEvent *event,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state = 0;
+ CompAction *action;
+ unsigned int modMask = REAL_MOD_MASK & ~d->ignoredModMask;
+ unsigned int bindMods;
+
+ if (event->keycode == d->escapeKeyCode)
+ state = CompActionStateCancel;
+ else if (event->keycode == d->returnKeyCode)
+ state = CompActionStateCommit;
+
+ if (state)
+ {
+ CompOption *o = option;
+ int n = nOption;
+
+ while (n--)
+ {
+ if (isActionOption (o))
+ {
+ if (o->value.action.terminate)
+ (*o->value.action.terminate) (d, &o->value.action,
+ state, NULL, 0);
+ }
+
+ o++;
+ }
+
+ if (state == CompActionStateCancel)
+ return FALSE;
+ }
+
+ state = CompActionStateInitKey;
+ while (nOption--)
+ {
+ if (isInitiateBinding (option, CompBindingTypeKey, state, &action))
+ {
+ bindMods = virtualToRealModMask (d, action->key.modifiers);
+
+ if (action->key.keycode == event->keycode)
+ {
+ if ((bindMods & modMask) == (event->state & modMask))
+ if ((*action->initiate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ else if (!d->xkbEvent && action->key.keycode == 0)
+ {
+ if (bindMods == (event->state & modMask))
+ if ((*action->initiate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerKeyReleaseBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ XKeyEvent *event,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state = CompActionStateTermKey;
+ CompAction *action;
+ unsigned int modMask = REAL_MOD_MASK & ~d->ignoredModMask;
+ unsigned int bindMods;
+ unsigned int mods;
+
+ mods = keycodeToModifiers (d, event->keycode);
+ if (!d->xkbEvent && !mods)
+ return FALSE;
+
+ while (nOption--)
+ {
+ if (isTerminateBinding (option, CompBindingTypeKey, state, &action))
+ {
+ bindMods = virtualToRealModMask (d, action->key.modifiers);
+
+ if ((bindMods & modMask) == 0)
+ {
+ if (action->key.keycode == event->keycode)
+ {
+ if ((*action->terminate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+ else if (!d->xkbEvent && ((mods & modMask & bindMods) != bindMods))
+ {
+ if ((*action->terminate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerStateNotifyBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ XkbStateNotifyEvent *event,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state;
+ CompAction *action;
+ unsigned int modMask = REAL_MOD_MASK & ~d->ignoredModMask;
+ unsigned int bindMods;
+
+ if (event->event_type == KeyPress)
+ {
+ state = CompActionStateInitKey;
+
+ while (nOption--)
+ {
+ if (isInitiateBinding (option, CompBindingTypeKey, state, &action))
+ {
+ if (action->key.keycode == 0)
+ {
+ bindMods = virtualToRealModMask (d, action->key.modifiers);
+
+ if ((event->mods & modMask & bindMods) == bindMods)
+ {
+ if ((*action->initiate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+ }
+
+ option++;
+ }
+ }
+ else
+ {
+ state = CompActionStateTermKey;
+
+ while (nOption--)
+ {
+ if (isTerminateBinding (option, CompBindingTypeKey, state, &action))
+ {
+ bindMods = virtualToRealModMask (d, action->key.modifiers);
+
+ if ((event->mods & modMask & bindMods) != bindMods)
+ {
+ if ((*action->terminate) (d, action, state,
+ argument, nArgument))
+ return TRUE;
+ }
+ }
+
+ option++;
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+isBellAction (CompOption *option,
+ CompActionState state,
+ CompAction **action)
+{
+ if (option->type != CompOptionTypeAction &&
+ option->type != CompOptionTypeBell)
+ return FALSE;
+
+ if (!option->value.action.bell)
+ return FALSE;
+
+ if (!(option->value.action.state & state))
+ return FALSE;
+
+ if (!option->value.action.initiate)
+ return FALSE;
+
+ *action = &option->value.action;
+
+ return TRUE;
+}
+
+static Bool
+triggerBellNotifyBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ CompOption *argument,
+ int nArgument)
+{
+ CompActionState state = CompActionStateInitBell;
+ CompAction *action;
+
+ while (nOption--)
+ {
+ if (isBellAction (option, state, &action))
+ {
+ if ((*action->initiate) (d, action, state, argument, nArgument))
+ return TRUE;
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+isEdgeAction (CompOption *option,
+ CompActionState state,
+ unsigned int edge)
+{
+ if (option->type != CompOptionTypeAction &&
+ option->type != CompOptionTypeButton &&
+ option->type != CompOptionTypeEdge)
+ return FALSE;
+
+ if (!(option->value.action.edgeMask & edge))
+ return FALSE;
+
+ if (!(option->value.action.state & state))
+ return FALSE;
+
+ return TRUE;
+}
+
+static Bool
+isEdgeEnterAction (CompOption *option,
+ CompActionState state,
+ CompActionState delayState,
+ unsigned int edge,
+ CompAction **action)
+{
+ if (!isEdgeAction (option, state, edge))
+ return FALSE;
+
+ if (option->value.action.type & CompBindingTypeEdgeButton)
+ return FALSE;
+
+ if (!option->value.action.initiate)
+ return FALSE;
+
+ if (delayState)
+ {
+ if ((option->value.action.state & CompActionStateNoEdgeDelay) !=
+ (delayState & CompActionStateNoEdgeDelay))
+ {
+ /* ignore edge actions which shouldn't be delayed when invoking
+ undelayed edges (or vice versa) */
+ return FALSE;
+ }
+ }
+
+
+ *action = &option->value.action;
+
+ return TRUE;
+}
+
+static Bool
+isEdgeLeaveAction (CompOption *option,
+ CompActionState state,
+ unsigned int edge,
+ CompAction **action)
+{
+ if (!isEdgeAction (option, state, edge))
+ return FALSE;
+
+ if (!option->value.action.terminate)
+ return FALSE;
+
+ *action = &option->value.action;
+
+ return TRUE;
+}
+
+static Bool
+triggerEdgeEnterBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ CompActionState state,
+ CompActionState delayState,
+ unsigned int edge,
+ CompOption *argument,
+ int nArgument)
+{
+ CompAction *action;
+
+ while (nOption--)
+ {
+ if (isEdgeEnterAction (option, state, delayState, edge, &action))
+ {
+ if ((*action->initiate) (d, action, state, argument, nArgument))
+ return TRUE;
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerEdgeLeaveBindings (CompDisplay *d,
+ CompOption *option,
+ int nOption,
+ CompActionState state,
+ unsigned int edge,
+ CompOption *argument,
+ int nArgument)
+{
+ CompAction *action;
+
+ while (nOption--)
+ {
+ if (isEdgeLeaveAction (option, state, edge, &action))
+ {
+ if ((*action->terminate) (d, action, state, argument, nArgument))
+ return TRUE;
+ }
+
+ option++;
+ }
+
+ return FALSE;
+}
+
+static Bool
+triggerAllEdgeEnterBindings (CompDisplay *d,
+ CompActionState state,
+ CompActionState delayState,
+ unsigned int edge,
+ CompOption *argument,
+ int nArgument)
+{
+ CompOption *option;
+ int nOption;
+ CompPlugin *p;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (p->vTable->getObjectOptions)
+ {
+ option = (*p->vTable->getObjectOptions) (p, &d->base, &nOption);
+ if (triggerEdgeEnterBindings (d,
+ option, nOption,
+ state, delayState, edge,
+ argument, nArgument))
+ {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+static Bool
+delayedEdgeTimeout (void *closure)
+{
+ CompDelayedEdgeSettings *settings = (CompDelayedEdgeSettings *) closure;
+
+ triggerAllEdgeEnterBindings (settings->d,
+ settings->state,
+ ~CompActionStateNoEdgeDelay,
+ settings->edge,
+ settings->option,
+ settings->nOption);
+
+ free (settings);
+
+ return FALSE;
+}
+
+static Bool
+triggerEdgeEnter (CompDisplay *d,
+ unsigned int edge,
+ CompActionState state,
+ CompOption *argument,
+ unsigned int nArgument)
+{
+ int delay;
+ CompDelayedEdgeSettings *delayedSettings = NULL;
+
+ delay = d->opt[COMP_DISPLAY_OPTION_EDGE_DELAY].value.i;
+
+ if (nArgument > 7)
+ nArgument = 7;
+
+ if (delay > 0)
+ {
+ delayedSettings = malloc (sizeof (CompDelayedEdgeSettings));
+ if (delayedSettings)
+ {
+ delayedSettings->d = d;
+ delayedSettings->edge = edge;
+ delayedSettings->state = state;
+ delayedSettings->nOption = nArgument;
+ }
+ }
+
+ if (delayedSettings)
+ {
+ CompActionState delayState;
+ int i;
+
+ for (i = 0; i < nArgument; i++)
+ delayedSettings->option[i] = argument[i];
+
+ d->edgeDelayHandle = compAddTimeout (delay, (float) delay * 1.2,
+ delayedEdgeTimeout,
+ delayedSettings);
+
+ delayState = CompActionStateNoEdgeDelay;
+ if (triggerAllEdgeEnterBindings (d, state, delayState,
+ edge, argument, nArgument))
+ return TRUE;
+ }
+ else
+ {
+ if (triggerAllEdgeEnterBindings (d, state, 0, edge,
+ argument, nArgument))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+handleActionEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompObject *obj = &d->base;
+ CompOption *option;
+ int nOption;
+ CompPlugin *p;
+ CompOption o[8];
+
+ o[0].type = CompOptionTypeInt;
+ o[0].name = "event_window";
+
+ o[1].type = CompOptionTypeInt;
+ o[1].name = "window";
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "modifiers";
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "x";
+
+ o[4].type = CompOptionTypeInt;
+ o[4].name = "y";
+
+ o[5].type = CompOptionTypeInt;
+ o[5].name = "root";
+
+ switch (event->type) {
+ case ButtonPress:
+ o[0].value.i = event->xbutton.window;
+ o[1].value.i = event->xbutton.window;
+ o[2].value.i = event->xbutton.state;
+ o[3].value.i = event->xbutton.x_root;
+ o[4].value.i = event->xbutton.y_root;
+ o[5].value.i = event->xbutton.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "button";
+ o[6].value.i = event->xbutton.button;
+
+ o[7].type = CompOptionTypeInt;
+ o[7].name = "time";
+ o[7].value.i = event->xbutton.time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerButtonPressBindings (d, option, nOption,
+ &event->xbutton, o, 8))
+ return TRUE;
+ }
+ break;
+ case ButtonRelease:
+ o[0].value.i = event->xbutton.window;
+ o[1].value.i = event->xbutton.window;
+ o[2].value.i = event->xbutton.state;
+ o[3].value.i = event->xbutton.x_root;
+ o[4].value.i = event->xbutton.y_root;
+ o[5].value.i = event->xbutton.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "button";
+ o[6].value.i = event->xbutton.button;
+
+ o[7].type = CompOptionTypeInt;
+ o[7].name = "time";
+ o[7].value.i = event->xbutton.time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerButtonReleaseBindings (d, option, nOption,
+ &event->xbutton, o, 8))
+ return TRUE;
+ }
+ break;
+ case KeyPress:
+ o[0].value.i = event->xkey.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = event->xkey.state;
+ o[3].value.i = event->xkey.x_root;
+ o[4].value.i = event->xkey.y_root;
+ o[5].value.i = event->xkey.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "keycode";
+ o[6].value.i = event->xkey.keycode;
+
+ o[7].type = CompOptionTypeInt;
+ o[7].name = "time";
+ o[7].value.i = event->xkey.time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerKeyPressBindings (d, option, nOption,
+ &event->xkey, o, 8))
+ return TRUE;
+ }
+ break;
+ case KeyRelease:
+ o[0].value.i = event->xkey.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = event->xkey.state;
+ o[3].value.i = event->xkey.x_root;
+ o[4].value.i = event->xkey.y_root;
+ o[5].value.i = event->xkey.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "keycode";
+ o[6].value.i = event->xkey.keycode;
+
+ o[7].type = CompOptionTypeInt;
+ o[7].name = "time";
+ o[7].value.i = event->xkey.time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerKeyReleaseBindings (d, option, nOption,
+ &event->xkey, o, 8))
+ return TRUE;
+ }
+ break;
+ case EnterNotify:
+ if (event->xcrossing.mode != NotifyGrab &&
+ event->xcrossing.mode != NotifyUngrab &&
+ event->xcrossing.detail != NotifyInferior)
+ {
+ CompScreen *s;
+ unsigned int edge, i;
+ CompActionState state;
+
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (!s)
+ return FALSE;
+
+ if (d->edgeDelayHandle)
+ {
+ void *closure;
+
+ closure = compRemoveTimeout (d->edgeDelayHandle);
+ if (closure)
+ free (closure);
+ d->edgeDelayHandle = 0;
+ }
+
+ if (edgeWindow && edgeWindow != event->xcrossing.window)
+ {
+ state = CompActionStateTermEdge;
+ edge = 0;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (edgeWindow == s->screenEdge[i].id)
+ {
+ edge = 1 << i;
+ break;
+ }
+ }
+
+ edgeWindow = None;
+
+ o[0].value.i = event->xcrossing.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = event->xcrossing.state;
+ o[3].value.i = event->xcrossing.x_root;
+ o[4].value.i = event->xcrossing.y_root;
+ o[5].value.i = event->xcrossing.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "time";
+ o[6].value.i = event->xcrossing.time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerEdgeLeaveBindings (d, option, nOption, state,
+ edge, o, 7))
+ return TRUE;
+ }
+ }
+
+ edge = 0;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (event->xcrossing.window == s->screenEdge[i].id)
+ {
+ edge = 1 << i;
+ break;
+ }
+ }
+
+ if (edge)
+ {
+ state = CompActionStateInitEdge;
+
+ edgeWindow = event->xcrossing.window;
+
+ o[0].value.i = event->xcrossing.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = event->xcrossing.state;
+ o[3].value.i = event->xcrossing.x_root;
+ o[4].value.i = event->xcrossing.y_root;
+ o[5].value.i = event->xcrossing.root;
+
+ o[6].type = CompOptionTypeInt;
+ o[6].name = "time";
+ o[6].value.i = event->xcrossing.time;
+
+ if (triggerEdgeEnter (d, edge, state, o, 7))
+ return TRUE;
+ }
+ }
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->xdndEnterAtom)
+ {
+ xdndWindow = event->xclient.window;
+ }
+ else if (event->xclient.message_type == d->xdndLeaveAtom)
+ {
+ unsigned int edge = 0;
+ CompActionState state;
+ Window root = None;
+
+ if (!xdndWindow)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompScreen *s = w->screen;
+ unsigned int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (event->xclient.window == s->screenEdge[i].id)
+ {
+ edge = 1 << i;
+ root = s->root;
+ break;
+ }
+ }
+ }
+ }
+
+ if (edge)
+ {
+ state = CompActionStateTermEdgeDnd;
+
+ o[0].value.i = event->xclient.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = 0; /* fixme */
+ o[3].value.i = 0; /* fixme */
+ o[4].value.i = 0; /* fixme */
+ o[5].value.i = root;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerEdgeLeaveBindings (d, option, nOption, state,
+ edge, o, 6))
+ return TRUE;
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->xdndPositionAtom)
+ {
+ unsigned int edge = 0;
+ CompActionState state;
+ Window root = None;
+
+ if (xdndWindow == event->xclient.window)
+ {
+ CompWindow *w;
+
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompScreen *s = w->screen;
+ unsigned int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (xdndWindow == s->screenEdge[i].id)
+ {
+ edge = 1 << i;
+ root = s->root;
+ break;
+ }
+ }
+ }
+ }
+
+ if (edge)
+ {
+ state = CompActionStateInitEdgeDnd;
+
+ o[0].value.i = event->xclient.window;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = 0; /* fixme */
+ o[3].value.i = event->xclient.data.l[2] >> 16;
+ o[4].value.i = event->xclient.data.l[2] & 0xffff;
+ o[5].value.i = root;
+
+ if (triggerEdgeEnter (d, edge, state, o, 6))
+ return TRUE;
+ }
+
+ xdndWindow = None;
+ }
+ break;
+ default:
+ if (event->type == d->fixesEvent + XFixesCursorNotify)
+ {
+ /*
+ XFixesCursorNotifyEvent *ce = (XFixesCursorNotifyEvent *) event;
+ CompCursor *cursor;
+
+ cursor = findCursorAtDisplay (d);
+ if (cursor)
+ updateCursor (cursor, ce->x, ce->y, ce->cursor_serial);
+ */
+ }
+ else if (event->type == d->xkbEvent)
+ {
+ XkbAnyEvent *xkbEvent = (XkbAnyEvent *) event;
+
+ if (xkbEvent->xkb_type == XkbStateNotify)
+ {
+ XkbStateNotifyEvent *stateEvent = (XkbStateNotifyEvent *) event;
+
+ o[0].value.i = d->activeWindow;
+ o[1].value.i = d->activeWindow;
+ o[2].value.i = stateEvent->mods;
+
+ o[3].type = CompOptionTypeInt;
+ o[3].name = "time";
+ o[3].value.i = xkbEvent->time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerStateNotifyBindings (d, option, nOption,
+ stateEvent, o, 4))
+ return TRUE;
+ }
+ }
+ else if (xkbEvent->xkb_type == XkbBellNotify)
+ {
+ o[0].value.i = d->activeWindow;
+ o[1].value.i = d->activeWindow;
+
+ o[2].type = CompOptionTypeInt;
+ o[2].name = "time";
+ o[2].value.i = xkbEvent->time;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, obj, &nOption);
+ if (triggerBellNotifyBindings (d, option, nOption, o, 3))
+ return TRUE;
+ }
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+void
+handleCompizEvent (CompDisplay *d,
+ const char *pluginName,
+ const char *eventName,
+ CompOption *option,
+ int nOption)
+{
+}
+
+void
+handleEvent (CompDisplay *d,
+ XEvent *event)
+{
+ CompScreen *s;
+ CompWindow *w;
+
+ switch (event->type) {
+ case ButtonPress:
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ setCurrentOutput (s, outputDeviceForPoint (s,
+ event->xbutton.x_root,
+ event->xbutton.y_root));
+ break;
+ case MotionNotify:
+ s = findScreenAtDisplay (d, event->xmotion.root);
+ if (s)
+ setCurrentOutput (s, outputDeviceForPoint (s,
+ event->xmotion.x_root,
+ event->xmotion.y_root));
+ break;
+ case KeyPress:
+ w = findWindowAtDisplay (d, d->activeWindow);
+ if (w)
+ setCurrentOutput (w->screen, outputDeviceForWindow (w));
+ default:
+ break;
+ }
+
+ if (handleActionEvent (d, event))
+ {
+ if (!d->screens->maxGrab)
+ XAllowEvents (d->display, AsyncPointer, event->xbutton.time);
+
+ return;
+ }
+
+ switch (event->type) {
+ case Expose:
+ for (s = d->screens; s; s = s->next)
+ if (s->output == event->xexpose.window)
+ break;
+
+ if (s)
+ {
+ int more = event->xexpose.count + 1;
+
+ if (s->nExpose == s->sizeExpose)
+ {
+ s->exposeRects = realloc (s->exposeRects,
+ (s->sizeExpose + more) *
+ sizeof (XRectangle));
+ s->sizeExpose += more;
+ }
+
+ s->exposeRects[s->nExpose].x = event->xexpose.x;
+ s->exposeRects[s->nExpose].y = event->xexpose.y;
+ s->exposeRects[s->nExpose].width = event->xexpose.width;
+ s->exposeRects[s->nExpose].height = event->xexpose.height;
+ s->nExpose++;
+
+ if (event->xexpose.count == 0)
+ {
+ REGION rect;
+
+ rect.rects = &rect.extents;
+ rect.numRects = rect.size = 1;
+
+ while (s->nExpose--)
+ {
+ rect.extents.x1 = s->exposeRects[s->nExpose].x;
+ rect.extents.y1 = s->exposeRects[s->nExpose].y;
+ rect.extents.x2 = rect.extents.x1 +
+ s->exposeRects[s->nExpose].width;
+ rect.extents.y2 = rect.extents.y1 +
+ s->exposeRects[s->nExpose].height;
+
+ damageScreenRegion (s, &rect);
+ }
+ s->nExpose = 0;
+ }
+ }
+ break;
+ case SelectionRequest:
+ handleSelectionRequest (d, event);
+ break;
+ case SelectionClear:
+ handleSelectionClear (d, event);
+ break;
+ case ConfigureNotify:
+ w = findWindowAtDisplay (d, event->xconfigure.window);
+ if (w)
+ {
+ configureWindow (w, &event->xconfigure);
+ }
+ else
+ {
+ s = findScreenAtDisplay (d, event->xconfigure.window);
+ if (s)
+ configureScreen (s, &event->xconfigure);
+ }
+ break;
+ case CreateNotify:
+ s = findScreenAtDisplay (d, event->xcreatewindow.parent);
+ if (s)
+ {
+ /* The first time some client asks for the composite
+ * overlay window, the X server creates it, which causes
+ * an errorneous CreateNotify event. We catch it and
+ * ignore it. */
+ if (s->overlay != event->xcreatewindow.window)
+ addWindow (s, event->xcreatewindow.window, getTopWindow (s));
+ }
+ break;
+ case DestroyNotify:
+ w = findWindowAtDisplay (d, event->xdestroywindow.window);
+ if (w)
+ {
+ moveInputFocusToOtherWindow (w);
+ destroyWindow (w);
+ }
+ break;
+ case MapNotify:
+ w = findWindowAtDisplay (d, event->xmap.window);
+ if (w)
+ {
+ if (w->pendingMaps)
+ w->managed = TRUE;
+
+ /* been shaded */
+ if (w->height == 0)
+ {
+ if (w->id == d->activeWindow)
+ moveInputFocusToWindow (w);
+ }
+
+ mapWindow (w);
+ }
+ break;
+ case UnmapNotify:
+ w = findWindowAtDisplay (d, event->xunmap.window);
+ if (w)
+ {
+ /* Normal -> Iconic */
+ if (w->pendingUnmaps)
+ {
+ setWmState (d, IconicState, w->id);
+ w->pendingUnmaps--;
+ }
+ else /* X -> Withdrawn */
+ {
+ /* Iconic -> Withdrawn */
+ if (w->state & CompWindowStateHiddenMask)
+ {
+ w->minimized = FALSE;
+
+ changeWindowState (w,
+ w->state & ~CompWindowStateHiddenMask);
+
+ updateClientListForScreen (w->screen);
+ }
+
+ if (!w->attrib.override_redirect)
+ setWmState (d, WithdrawnState, w->id);
+
+ w->placed = FALSE;
+ w->managed = FALSE;
+ }
+
+ unmapWindow (w);
+
+ if (!w->shaded)
+ moveInputFocusToOtherWindow (w);
+ }
+ break;
+ case ReparentNotify:
+ w = findWindowAtDisplay (d, event->xreparent.window);
+ s = findScreenAtDisplay (d, event->xreparent.parent);
+ if (s && !w)
+ {
+ addWindow (s, event->xreparent.window, getTopWindow (s));
+ }
+ else if (w)
+ {
+ /* This is the only case where a window is removed but not
+ destroyed. We must remove our event mask and all passive
+ grabs. */
+ XSelectInput (d->display, w->id, NoEventMask);
+ XShapeSelectInput (d->display, w->id, NoEventMask);
+ XUngrabButton (d->display, AnyButton, AnyModifier, w->id);
+
+ moveInputFocusToOtherWindow (w);
+
+ destroyWindow (w);
+ }
+ break;
+ case CirculateNotify:
+ w = findWindowAtDisplay (d, event->xcirculate.window);
+ if (w)
+ circulateWindow (w, &event->xcirculate);
+ break;
+ case ButtonPress:
+ s = findScreenAtDisplay (d, event->xbutton.root);
+ if (s)
+ {
+ if (event->xbutton.button == Button1 ||
+ event->xbutton.button == Button2 ||
+ event->xbutton.button == Button3)
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ {
+ if (d->opt[COMP_DISPLAY_OPTION_RAISE_ON_CLICK].value.b)
+ updateWindowAttributes (w,
+ CompStackingUpdateModeAboveFullscreen);
+
+ if (w->id != d->activeWindow)
+ if (!(w->type & CompWindowTypeDockMask))
+ if ((*s->focusWindow) (w))
+ moveInputFocusToWindow (w);
+ }
+ }
+
+ if (!s->maxGrab)
+ XAllowEvents (d->display, ReplayPointer, event->xbutton.time);
+ }
+ break;
+ case PropertyNotify:
+ if (event->xproperty.atom == d->winTypeAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ unsigned int type;
+
+ type = getWindowType (d, w->id);
+
+ if (type != w->wmType)
+ {
+ if (w->attrib.map_state == IsViewable)
+ {
+ if (w->type == CompWindowTypeDesktopMask)
+ w->screen->desktopWindowCount--;
+ else if (type == CompWindowTypeDesktopMask)
+ w->screen->desktopWindowCount++;
+ }
+
+ w->wmType = type;
+
+ recalcWindowType (w);
+ recalcWindowActions (w);
+
+ if (w->type & CompWindowTypeDesktopMask)
+ w->paint.opacity = OPAQUE;
+
+ if (type & (CompWindowTypeDockMask |
+ CompWindowTypeDesktopMask))
+ setDesktopForWindow (w, 0xffffffff);
+
+ updateClientListForScreen (w->screen);
+
+ (*d->matchPropertyChanged) (d, w);
+ }
+ }
+ }
+ else if (event->xproperty.atom == d->winStateAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w && !w->managed)
+ {
+ unsigned int state;
+
+ state = getWindowState (d, w->id);
+ state = constrainWindowState (state, w->actions);
+
+ /* EWMH suggests that we ignore changes
+ to _NET_WM_STATE_HIDDEN */
+ if (w->state & CompWindowStateHiddenMask)
+ state |= CompWindowStateHiddenMask;
+ else
+ state &= ~CompWindowStateHiddenMask;
+
+ if (state != w->state)
+ {
+ if (w->type & CompWindowTypeDesktopMask)
+ w->paint.opacity = OPAQUE;
+
+ changeWindowState (w, state);
+ }
+ }
+ }
+ else if (event->xproperty.atom == XA_WM_NORMAL_HINTS)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ updateNormalHints (w);
+ recalcWindowActions (w);
+ }
+ }
+ else if (event->xproperty.atom == XA_WM_HINTS)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ updateWmHints (w);
+ }
+ else if (event->xproperty.atom == XA_WM_TRANSIENT_FOR)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ updateTransientHint (w);
+ recalcWindowActions (w);
+ }
+ }
+ else if (event->xproperty.atom == d->wmClientLeaderAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ w->clientLeader = getClientLeader (w);
+ }
+ else if (event->xproperty.atom == d->wmIconGeometryAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ updateIconGeometry (w);
+ }
+ else if (event->xproperty.atom == d->winOpacityAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w && !(w->type & CompWindowTypeDesktopMask))
+ {
+ int opacity;
+
+ opacity = getWindowProp32 (d, w->id, d->winOpacityAtom, OPAQUE);
+ if (opacity != w->paint.opacity)
+ {
+ w->paint.opacity = opacity;
+ addWindowDamage (w);
+ }
+ }
+ }
+ else if (event->xproperty.atom == d->winBrightnessAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ int brightness;
+
+ brightness = getWindowProp32 (d, w->id,
+ d->winBrightnessAtom, BRIGHT);
+ if (brightness != w->paint.brightness)
+ {
+ w->paint.brightness = brightness;
+ addWindowDamage (w);
+ }
+ }
+ }
+ else if (event->xproperty.atom == d->winSaturationAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w && w->screen->canDoSaturated)
+ {
+ int saturation;
+
+ saturation = getWindowProp32 (d, w->id,
+ d->winSaturationAtom, COLOR);
+ if (saturation != w->paint.saturation)
+ {
+ w->paint.saturation = saturation;
+ addWindowDamage (w);
+ }
+ }
+ }
+ else if (event->xproperty.atom == d->xBackgroundAtom[0] ||
+ event->xproperty.atom == d->xBackgroundAtom[1])
+ {
+ s = findScreenAtDisplay (d, event->xproperty.window);
+ if (s)
+ {
+ finiTexture (s, &s->backgroundTexture);
+ initTexture (s, &s->backgroundTexture);
+
+ if (s->backgroundLoaded)
+ {
+ s->backgroundLoaded = FALSE;
+ damageScreen (s);
+ }
+ }
+ }
+ else if (event->xproperty.atom == d->wmStrutAtom ||
+ event->xproperty.atom == d->wmStrutPartialAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ if (updateWindowStruts (w))
+ updateWorkareaForScreen (w->screen);
+ }
+ }
+ else if (event->xproperty.atom == d->mwmHintsAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ getMwmHints (d, w->id, &w->mwmFunc, &w->mwmDecor);
+
+ recalcWindowActions (w);
+ }
+ }
+ else if (event->xproperty.atom == d->wmProtocolsAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ w->protocols = getProtocols (d, w->id);
+ }
+ else if (event->xproperty.atom == d->wmIconAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ freeWindowIcons (w);
+ }
+ else if (event->xproperty.atom == d->startupIdAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ if (w->startupId)
+ free (w->startupId);
+
+ w->startupId = getStartupId (w);
+
+ if (w->managed && w->startupId)
+ {
+ Time timestamp = 0;
+ int vx, vy, x, y;
+ CompScreen *s = w->screen;
+ CompFocusResult focus;
+
+ w->initialTimestampSet = FALSE;
+ applyStartupProperties (w->screen, w);
+
+ if (w->initialTimestampSet)
+ timestamp = w->initialTimestamp;
+
+ /* as the viewport can't be transmitted via startup
+ notification, assume the client changing the ID
+ wanted to activate the window on the current viewport */
+
+ defaultViewportForWindow (w, &vx, &vy);
+ x = w->attrib.x + (s->x - vx) * s->width;
+ y = w->attrib.y + (s->y - vy) * s->height;
+ moveWindowToViewportPosition (w, x, y, TRUE);
+
+ focus = allowWindowFocus (w, 0,
+ w->initialViewportX,
+ w->initialViewportY,
+ timestamp);
+
+ if (focus == CompFocusAllowed)
+ (*w->screen->activateWindow) (w);
+ }
+ }
+ }
+ else if (event->xproperty.atom == XA_WM_CLASS)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ updateWindowClassHints (w);
+ }
+ break;
+ case MotionNotify:
+ break;
+ case ClientMessage:
+ if (event->xclient.message_type == d->winActiveAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompFocusResult focus = CompFocusAllowed;
+
+ /* use focus stealing prevention if request came
+ from an application */
+ if (event->xclient.data.l[0] == ClientTypeApplication)
+ focus = allowWindowFocus (w, 0,
+ w->screen->x,
+ w->screen->y,
+ event->xclient.data.l[1]);
+
+ if (focus == CompFocusAllowed)
+ (*w->screen->activateWindow) (w);
+ }
+ }
+ else if (event->xclient.message_type == d->winOpacityAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w && !(w->type & CompWindowTypeDesktopMask))
+ {
+ GLushort opacity = event->xclient.data.l[0] >> 16;
+
+ setWindowProp32 (d, w->id, d->winOpacityAtom, opacity);
+ }
+ }
+ else if (event->xclient.message_type == d->winBrightnessAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ GLushort brightness = event->xclient.data.l[0] >> 16;
+
+ setWindowProp32 (d, w->id, d->winBrightnessAtom, brightness);
+ }
+ }
+ else if (event->xclient.message_type == d->winSaturationAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w && w->screen->canDoSaturated)
+ {
+ GLushort saturation = event->xclient.data.l[0] >> 16;
+
+ setWindowProp32 (d, w->id, d->winSaturationAtom, saturation);
+ }
+ }
+ else if (event->xclient.message_type == d->winStateAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ unsigned long wState, state;
+ int i;
+
+ wState = w->state;
+
+ for (i = 1; i < 3; i++)
+ {
+ state = windowStateMask (d, event->xclient.data.l[i]);
+ if (state & ~CompWindowStateHiddenMask)
+ {
+
+#define _NET_WM_STATE_REMOVE 0
+#define _NET_WM_STATE_ADD 1
+#define _NET_WM_STATE_TOGGLE 2
+
+ switch (event->xclient.data.l[0]) {
+ case _NET_WM_STATE_REMOVE:
+ wState &= ~state;
+ break;
+ case _NET_WM_STATE_ADD:
+ wState |= state;
+ break;
+ case _NET_WM_STATE_TOGGLE:
+ wState ^= state;
+ break;
+ }
+ }
+ }
+
+ wState = constrainWindowState (wState, w->actions);
+ if (w->id == d->activeWindow)
+ wState &= ~CompWindowStateDemandsAttentionMask;
+
+ if (wState != w->state)
+ {
+ CompStackingUpdateMode stackingUpdateMode;
+ unsigned long dState = wState ^ w->state;
+
+ stackingUpdateMode = CompStackingUpdateModeNone;
+
+ /* raise the window whenever its fullscreen state,
+ above/below state or maximization state changed */
+ if (dState & CompWindowStateFullscreenMask)
+ stackingUpdateMode = CompStackingUpdateModeAboveFullscreen;
+ else if (dState & (CompWindowStateAboveMask |
+ CompWindowStateBelowMask |
+ CompWindowStateMaximizedHorzMask |
+ CompWindowStateMaximizedVertMask))
+ stackingUpdateMode = CompStackingUpdateModeNormal;
+
+ changeWindowState (w, wState);
+
+ updateWindowAttributes (w, stackingUpdateMode);
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->wmProtocolsAtom)
+ {
+ if (event->xclient.data.l[0] == d->wmPingAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.data.l[2]);
+ if (w)
+ {
+ if (!w->alive)
+ {
+ w->alive = TRUE;
+
+ if (w->lastCloseRequestTime)
+ {
+ toolkitAction (w->screen,
+ d->toolkitActionForceQuitDialogAtom,
+ w->lastCloseRequestTime,
+ w->id,
+ FALSE,
+ 0,
+ 0);
+
+ w->lastCloseRequestTime = 0;
+ }
+ }
+ w->lastPong = d->lastPing;
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->closeWindowAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ closeWindow (w, event->xclient.data.l[0]);
+ }
+ else if (event->xclient.message_type == d->desktopGeometryAtom)
+ {
+ s = findScreenAtDisplay (d, event->xclient.window);
+ if (s)
+ {
+ CompOptionValue value;
+
+ value.i = event->xclient.data.l[0] / s->width;
+
+ (*core.setOptionForPlugin) (&s->base, "core", "hsize", &value);
+
+ value.i = event->xclient.data.l[1] / s->height;
+
+ (*core.setOptionForPlugin) (&s->base, "core", "vsize", &value);
+ }
+ }
+ else if (event->xclient.message_type == d->moveResizeWindowAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ unsigned int xwcm = 0;
+ XWindowChanges xwc;
+ int gravity;
+ unsigned int source;
+
+ memset (&xwc, 0, sizeof (xwc));
+
+ if (event->xclient.data.l[0] & (1 << 8))
+ {
+ xwcm |= CWX;
+ xwc.x = event->xclient.data.l[1];
+ }
+
+ if (event->xclient.data.l[0] & (1 << 9))
+ {
+ xwcm |= CWY;
+ xwc.y = event->xclient.data.l[2];
+ }
+
+ if (event->xclient.data.l[0] & (1 << 10))
+ {
+ xwcm |= CWWidth;
+ xwc.width = event->xclient.data.l[3];
+ }
+
+ if (event->xclient.data.l[0] & (1 << 11))
+ {
+ xwcm |= CWHeight;
+ xwc.height = event->xclient.data.l[4];
+ }
+
+ gravity = event->xclient.data.l[0] & 0xFF;
+ source = (event->xclient.data.l[0] >> 12) & 0xF;
+
+ moveResizeWindow (w, &xwc, xwcm, gravity, source);
+ }
+ }
+ else if (event->xclient.message_type == d->restackWindowAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ /* TODO: other stack modes than Above and Below */
+ if (event->xclient.data.l[1])
+ {
+ CompWindow *sibling;
+
+ sibling = findWindowAtDisplay (d, event->xclient.data.l[1]);
+ if (sibling)
+ {
+ if (event->xclient.data.l[2] == Above)
+ restackWindowAbove (w, sibling);
+ else if (event->xclient.data.l[2] == Below)
+ restackWindowBelow (w, sibling);
+ }
+ }
+ else
+ {
+ if (event->xclient.data.l[2] == Above)
+ raiseWindow (w);
+ else if (event->xclient.data.l[2] == Below)
+ lowerWindow (w);
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->wmChangeStateAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ if (event->xclient.data.l[0] == IconicState)
+ {
+ if (w->actions & CompWindowActionMinimizeMask)
+ minimizeWindow (w);
+ }
+ else if (event->xclient.data.l[0] == NormalState)
+ unminimizeWindow (w);
+ }
+ }
+ else if (event->xclient.message_type == d->showingDesktopAtom)
+ {
+ for (s = d->screens; s; s = s->next)
+ {
+ if (event->xclient.window == s->root ||
+ event->xclient.window == None)
+ {
+ if (event->xclient.data.l[0])
+ (*s->enterShowDesktopMode) (s);
+ else
+ (*s->leaveShowDesktopMode) (s, NULL);
+ }
+ }
+ }
+ else if (event->xclient.message_type == d->numberOfDesktopsAtom)
+ {
+ s = findScreenAtDisplay (d, event->xclient.window);
+ if (s)
+ {
+ CompOptionValue value;
+
+ value.i = event->xclient.data.l[0];
+
+ (*core.setOptionForPlugin) (&s->base,
+ "core", "number_of_desktops",
+ &value);
+ }
+ }
+ else if (event->xclient.message_type == d->currentDesktopAtom)
+ {
+ s = findScreenAtDisplay (d, event->xclient.window);
+ if (s)
+ setCurrentDesktop (s, event->xclient.data.l[0]);
+ }
+ else if (event->xclient.message_type == d->winDesktopAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ setDesktopForWindow (w, event->xclient.data.l[0]);
+ }
+ else if (event->xclient.message_type == d->wmFullscreenMonitorsAtom)
+ {
+ w = findWindowAtDisplay (d, event->xclient.window);
+ if (w)
+ {
+ CompFullscreenMonitorSet monitors;
+
+ monitors.top = event->xclient.data.l[0];
+ monitors.bottom = event->xclient.data.l[1];
+ monitors.left = event->xclient.data.l[2];
+ monitors.right = event->xclient.data.l[3];
+
+ setWindowFullscreenMonitors (w, &monitors);
+ }
+ }
+ break;
+ case MappingNotify:
+ updateModifierMappings (d);
+ break;
+ case MapRequest:
+ w = findWindowAtDisplay (d, event->xmaprequest.window);
+ if (w)
+ {
+ XWindowAttributes attr;
+ Bool doMapProcessing = TRUE;
+
+ /* We should check the override_redirect flag here, because the
+ client might have changed it while being unmapped. */
+ if (XGetWindowAttributes (d->display, w->id, &attr))
+ {
+ if (w->attrib.override_redirect != attr.override_redirect)
+ {
+ w->attrib.override_redirect = attr.override_redirect;
+ recalcWindowType (w);
+ recalcWindowActions (w);
+
+ (*d->matchPropertyChanged) (d, w);
+ }
+ }
+
+ if (w->state & CompWindowStateHiddenMask)
+ if (!w->minimized && !w->inShowDesktopMode)
+ doMapProcessing = FALSE;
+
+ if (doMapProcessing)
+ {
+ w->initialViewportX = w->screen->x;
+ w->initialViewportY = w->screen->y;
+
+ w->initialTimestampSet = FALSE;
+
+ applyStartupProperties (w->screen, w);
+ }
+
+ w->managed = TRUE;
+
+ if (doMapProcessing)
+ {
+ CompFocusResult focus;
+ CompStackingUpdateMode stackingMode;
+
+ if (!w->placed)
+ {
+ int newX, newY;
+ int gravity = w->sizeHints.win_gravity;
+ XWindowChanges xwc;
+ unsigned int xwcm, source;
+
+ /* adjust for gravity */
+ xwc.x = w->serverX;
+ xwc.y = w->serverY;
+ xwc.width = w->serverWidth;
+ xwc.height = w->serverHeight;
+
+ xwcm = adjustConfigureRequestForGravity (w, &xwc,
+ CWX | CWY,
+ gravity);
+
+ source = ClientTypeApplication;
+ (*w->screen->validateWindowResizeRequest) (w, &xwcm, &xwc,
+ source);
+
+ if (xwcm)
+ configureXWindow (w, xwcm, &xwc);
+
+ if ((*w->screen->placeWindow) (w, xwc.x, xwc.y,
+ &newX, &newY))
+ {
+ xwc.x = newX;
+ xwc.y = newY;
+ configureXWindow (w, CWX | CWY, &xwc);
+ }
+
+ w->placed = TRUE;
+ }
+
+ focus = allowWindowFocus (w, NO_FOCUS_MASK,
+ w->screen->x, w->screen->y, 0);
+
+ if (focus == CompFocusDenied)
+ stackingMode = CompStackingUpdateModeInitialMapDeniedFocus;
+ else
+ stackingMode = CompStackingUpdateModeInitialMap;
+
+ updateWindowAttributes (w, stackingMode);
+
+ if (w->minimized)
+ unminimizeWindow (w);
+
+ (*w->screen->leaveShowDesktopMode) (w->screen, w);
+
+ if (focus == CompFocusAllowed && !onCurrentDesktop (w))
+ setCurrentDesktop (w->screen, w->desktop);
+
+ if (!(w->state & CompWindowStateHiddenMask))
+ showWindow (w);
+
+ if (focus == CompFocusAllowed)
+ moveInputFocusToWindow (w);
+ }
+
+ setWindowProp (d, w->id, d->winDesktopAtom, w->desktop);
+ }
+ else
+ {
+ XMapWindow (d->display, event->xmaprequest.window);
+ }
+ break;
+ case ConfigureRequest:
+ w = findWindowAtDisplay (d, event->xconfigurerequest.window);
+ if (w && w->managed)
+ {
+ XWindowChanges xwc;
+
+ memset (&xwc, 0, sizeof (xwc));
+
+ xwc.x = event->xconfigurerequest.x;
+ xwc.y = event->xconfigurerequest.y;
+ xwc.width = event->xconfigurerequest.width;
+ xwc.height = event->xconfigurerequest.height;
+ xwc.border_width = event->xconfigurerequest.border_width;
+
+ moveResizeWindow (w, &xwc, event->xconfigurerequest.value_mask,
+ 0, ClientTypeUnknown);
+
+ if (event->xconfigurerequest.value_mask & CWStackMode)
+ {
+ Window above = None;
+ CompWindow *sibling = NULL;
+ CompFocusResult focus;
+
+ if (event->xconfigurerequest.value_mask & CWSibling)
+ {
+ above = event->xconfigurerequest.above;
+ sibling = findTopLevelWindowAtDisplay (d, above);
+ }
+
+ switch (event->xconfigurerequest.detail) {
+ case Above:
+ focus = allowWindowFocus (w, NO_FOCUS_MASK,
+ w->screen->x, w->screen->y, 0);
+ if (focus == CompFocusAllowed)
+ {
+ if (above)
+ {
+ if (sibling)
+ restackWindowAbove (w, sibling);
+ }
+ else
+ raiseWindow (w);
+ }
+ break;
+ case Below:
+ if (above)
+ {
+ if (sibling)
+ restackWindowBelow (w, sibling);
+ }
+ else
+ lowerWindow (w);
+ break;
+ default:
+ /* no handling of the TopIf, BottomIf, Opposite cases -
+ there will hardly be any client using that */
+ break;
+ }
+ }
+ }
+ else
+ {
+ XWindowChanges xwc;
+ unsigned int xwcm;
+
+ xwcm = event->xconfigurerequest.value_mask &
+ (CWX | CWY | CWWidth | CWHeight | CWBorderWidth);
+
+ xwc.x = event->xconfigurerequest.x;
+ xwc.y = event->xconfigurerequest.y;
+ xwc.width = event->xconfigurerequest.width;
+ xwc.height = event->xconfigurerequest.height;
+ xwc.border_width = event->xconfigurerequest.border_width;
+
+ if (w)
+ configureXWindow (w, xwcm, &xwc);
+ else
+ XConfigureWindow (d->display, event->xconfigurerequest.window,
+ xwcm, &xwc);
+ }
+ break;
+ case CirculateRequest:
+ break;
+ case FocusIn:
+ if (event->xfocus.mode != NotifyGrab)
+ {
+ w = findTopLevelWindowAtDisplay (d, event->xfocus.window);
+ if (w && w->managed)
+ {
+ unsigned int state = w->state;
+
+ if (w->id != d->activeWindow)
+ {
+ d->activeWindow = w->id;
+ w->activeNum = w->screen->activeNum++;
+
+ addToCurrentActiveWindowHistory (w->screen, w->id);
+
+ XChangeProperty (d->display, w->screen->root,
+ d->winActiveAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &w->id, 1);
+ }
+
+ state &= ~CompWindowStateDemandsAttentionMask;
+ changeWindowState (w, state);
+ }
+ }
+ break;
+ case EnterNotify:
+ s = findScreenAtDisplay (d, event->xcrossing.root);
+ if (s)
+ w = findTopLevelWindowAtScreen (s, event->xcrossing.window);
+ else
+ w = NULL;
+
+ if (w && w->id != d->below)
+ {
+ d->below = w->id;
+
+ if (!d->opt[COMP_DISPLAY_OPTION_CLICK_TO_FOCUS].value.b &&
+ !s->maxGrab &&
+ event->xcrossing.mode != NotifyGrab &&
+ event->xcrossing.detail != NotifyInferior)
+ {
+ Bool raise, focus;
+ int delay;
+
+ raise = d->opt[COMP_DISPLAY_OPTION_AUTORAISE].value.b;
+ delay = d->opt[COMP_DISPLAY_OPTION_AUTORAISE_DELAY].value.i;
+
+ if (d->autoRaiseHandle && d->autoRaiseWindow != w->id)
+ {
+ compRemoveTimeout (d->autoRaiseHandle);
+ d->autoRaiseHandle = 0;
+ }
+
+ if (w->type & NO_FOCUS_MASK)
+ focus = FALSE;
+ else
+ focus = (*w->screen->focusWindow) (w);
+
+ if (focus)
+ {
+ moveInputFocusToWindow (w);
+
+ if (raise)
+ {
+ if (delay > 0)
+ {
+ d->autoRaiseWindow = w->id;
+ d->autoRaiseHandle =
+ compAddTimeout (delay, (float) delay * 1.2,
+ autoRaiseTimeout, d);
+ }
+ else
+ {
+ CompStackingUpdateMode mode =
+ CompStackingUpdateModeNormal;
+
+ updateWindowAttributes (w, mode);
+ }
+ }
+ }
+ }
+ }
+ break;
+ case LeaveNotify:
+ if (event->xcrossing.detail != NotifyInferior)
+ {
+ if (event->xcrossing.window == d->below)
+ d->below = None;
+ }
+ break;
+ default:
+ if (event->type == d->damageEvent + XDamageNotify)
+ {
+ XDamageNotifyEvent *de = (XDamageNotifyEvent *) event;
+
+ if (lastDamagedWindow && de->drawable == lastDamagedWindow->id)
+ {
+ w = lastDamagedWindow;
+ }
+ else
+ {
+ w = findWindowAtDisplay (d, de->drawable);
+ if (w)
+ lastDamagedWindow = w;
+ }
+
+ if (w)
+ {
+ w->texture->oldMipmaps = TRUE;
+
+ if (w->syncWait)
+ {
+ if (w->nDamage == w->sizeDamage)
+ {
+ w->damageRects = realloc (w->damageRects,
+ (w->sizeDamage + 1) *
+ sizeof (XRectangle));
+ w->sizeDamage += 1;
+ }
+
+ w->damageRects[w->nDamage].x = de->area.x;
+ w->damageRects[w->nDamage].y = de->area.y;
+ w->damageRects[w->nDamage].width = de->area.width;
+ w->damageRects[w->nDamage].height = de->area.height;
+ w->nDamage++;
+ }
+ else
+ {
+ handleWindowDamageRect (w,
+ de->area.x,
+ de->area.y,
+ de->area.width,
+ de->area.height);
+ }
+ }
+ }
+ else if (d->shapeExtension &&
+ event->type == d->shapeEvent + ShapeNotify)
+ {
+ w = findWindowAtDisplay (d, ((XShapeEvent *) event)->window);
+ if (w)
+ {
+ if (w->mapNum)
+ {
+ addWindowDamage (w);
+ updateWindowRegion (w);
+ addWindowDamage (w);
+ }
+ }
+ }
+ else if (d->randrExtension &&
+ event->type == d->randrEvent + RRScreenChangeNotify)
+ {
+ XRRScreenChangeNotifyEvent *rre;
+
+ rre = (XRRScreenChangeNotifyEvent *) event;
+
+ s = findScreenAtDisplay (d, rre->root);
+ if (s)
+ detectRefreshRateOfScreen (s);
+ }
+ else if (event->type == d->syncEvent + XSyncAlarmNotify)
+ {
+ XSyncAlarmNotifyEvent *sa;
+
+ sa = (XSyncAlarmNotifyEvent *) event;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->syncAlarm == sa->alarm)
+ break;
+ }
+
+ if (w)
+ {
+ handleSyncAlarm (w);
+ /* it makes no sense to search for the already
+ found window on other screens, so leave screen loop */
+ break;
+ }
+ }
+ }
+ break;
+ }
+}
diff --git a/src/fragment.c b/src/fragment.c
new file mode 100644
index 0000000..8e1d563
--- /dev/null
+++ b/src/fragment.c
@@ -0,0 +1,1402 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <compiz-core.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#define COMP_FUNCTION_TYPE_ARB 0
+#define COMP_FUNCTION_TYPE_NUM 1
+
+#define COMP_FUNCTION_ARB_MASK (1 << 0)
+#define COMP_FUNCTION_MASK (COMP_FUNCTION_ARB_MASK)
+
+struct _CompProgram {
+ struct _CompProgram *next;
+
+ int *signature;
+ int nSignature;
+
+ Bool blending;
+
+ GLuint name;
+ GLenum type;
+};
+
+typedef enum {
+ CompOpTypeData,
+ CompOpTypeDataStore,
+ CompOpTypeDataOffset,
+ CompOpTypeDataBlend,
+ CompOpTypeHeaderTemp,
+ CompOpTypeHeaderParam,
+ CompOpTypeHeaderAttrib,
+ CompOpTypeColor,
+ CompOpTypeFetch,
+ CompOpTypeLoad
+} CompOpType;
+
+typedef struct _CompDataOp {
+ CompOpType type;
+
+ char *data;
+} CompDataOp;
+
+typedef struct _CompHeaderOp {
+ CompOpType type;
+
+ char *name;
+} CompHeaderOp;
+
+typedef struct _CompFetchOp {
+ CompOpType type;
+
+ char *dst;
+ char *offset;
+ int target;
+} CompFetchOp;
+
+typedef struct _CompLoadOp {
+ CompOpType type;
+
+ char *noOffset[COMP_FETCH_TARGET_NUM];
+ char *offset[COMP_FETCH_TARGET_NUM];
+} CompLoadOp;
+
+typedef struct _CompColorOp {
+ CompOpType type;
+
+ char *dst;
+ char *src;
+} CompColorOp;
+
+typedef union _CompBodyOp {
+ CompOpType type;
+
+ CompDataOp data;
+ CompFetchOp fetch;
+ CompLoadOp load;
+ CompColorOp color;
+} CompBodyOp;
+
+struct _CompFunctionData {
+ CompHeaderOp *header;
+ int nHeader;
+
+ CompBodyOp *body;
+ int nBody;
+};
+
+struct _CompFunction {
+ struct _CompFunction *next;
+
+ int id;
+ char *name;
+ CompFunctionData data[COMP_FUNCTION_TYPE_NUM];
+ int mask;
+};
+
+typedef struct _FetchInfo {
+ int indices[MAX_FRAGMENT_FUNCTIONS];
+ char *data;
+} FetchInfo;
+
+typedef void (*DataOpCallBackProc) (CompDataOp *op,
+ int index,
+ void *closure);
+
+static CompLoadOp loadArbFpData = {
+ CompOpTypeLoad,
+ {
+ "TEX output, fragment.texcoord[0], texture[0], 2D;",
+ "TEX output, fragment.texcoord[0], texture[0], RECT;"
+ }, {
+ "TEX output, __tmp_texcoord0, texture[0], 2D;",
+ "TEX output, __tmp_texcoord0, texture[0], RECT;"
+ }
+};
+
+static CompFunction initialLoadFunction = {
+ NULL,
+ 0,
+ "__core_load",
+ {
+ {
+ NULL,
+ 0,
+ (CompBodyOp *) &loadArbFpData,
+ 1
+ }
+ },
+ COMP_FUNCTION_MASK
+};
+
+static CompFunction *
+findFragmentFunction (CompScreen *s,
+ int id)
+{
+ CompFunction *function;
+
+ for (function = s->fragmentFunctions; function; function = function->next)
+ {
+ if (function->id == id)
+ return function;
+ }
+
+ return NULL;
+}
+
+static CompFunction *
+findFragmentFunctionWithName (CompScreen *s,
+ const char *name)
+{
+ CompFunction *function;
+
+ for (function = s->fragmentFunctions; function; function = function->next)
+ {
+ if (strcmp (function->name, name) == 0)
+ return function;
+ }
+
+ return NULL;
+}
+
+static CompProgram *
+findFragmentProgram (CompScreen *s,
+ int *signature,
+ int nSignature)
+{
+ CompProgram *program;
+ int i;
+
+ for (program = s->fragmentPrograms; program; program = program->next)
+ {
+ if (nSignature != program->nSignature)
+ continue;
+
+ for (i = 0; i < nSignature; i++)
+ {
+ if (program->signature[i] != signature[i])
+ break;
+ }
+
+ if (i == nSignature)
+ return program;
+ }
+
+ return NULL;
+}
+
+static int
+functionMaskToType (int mask)
+{
+ static struct {
+ int type;
+ int mask;
+ } maskToType[] = {
+ { COMP_FUNCTION_TYPE_ARB, COMP_FUNCTION_ARB_MASK }
+ };
+ int i;
+
+ for (i = 0; i < sizeof (maskToType) / sizeof (maskToType[0]); i++)
+ if (mask & maskToType[i].mask)
+ return maskToType[i].type;
+
+ return 0;
+}
+
+static void
+forEachDataOpInFunction (CompFunction **list,
+ int index,
+ int type,
+ int loadTarget,
+ char *loadOffset,
+ Bool *color,
+ Bool *blend,
+ DataOpCallBackProc callBack,
+ void *closure)
+{
+ CompFunction *f = list[index];
+ CompDataOp dataOp;
+ char data[256];
+ Bool colorDone = FALSE;
+ Bool blendDone = FALSE;
+ int i;
+
+ *color = FALSE;
+ *blend = FALSE;
+
+ for (i = 0; i < f->data[type].nBody; i++)
+ {
+ switch (f->data[type].body[i].type) {
+ case CompOpTypeFetch: {
+ char *offset = loadOffset;
+
+ /* add offset */
+ if (f->data[type].body[i].fetch.offset)
+ {
+ if (loadOffset)
+ {
+ snprintf (data, 256,
+ "ADD __tmp_texcoord%d, %s, %s;",
+ index, loadOffset,
+ f->data[type].body[i].fetch.offset);
+
+ dataOp.type = CompOpTypeDataOffset;
+ dataOp.data = data;
+
+ (*callBack) (&dataOp, index, closure);
+
+ snprintf (data, 256, "__tmp_texcoord%d", index);
+
+ offset = data;
+ }
+ else
+ {
+ offset = f->data[type].body[i].fetch.offset;
+ }
+ }
+
+ forEachDataOpInFunction (list, index - 1, type,
+ f->data[type].body[i].fetch.target,
+ offset, &colorDone, &blendDone,
+ callBack, closure);
+
+ if (strcmp (f->data[type].body[i].fetch.dst, "output"))
+ {
+ snprintf (data, 256,
+ "MOV %s, output;",
+ f->data[type].body[i].fetch.dst);
+
+ dataOp.type = CompOpTypeDataStore;
+ dataOp.data = data;
+
+ /* move to destination */
+ (*callBack) (&dataOp, index, closure);
+ }
+ } break;
+ case CompOpTypeLoad:
+ if (loadOffset)
+ {
+ snprintf (data, 256,
+ "ADD __tmp_texcoord0, fragment.texcoord[0], %s;",
+ loadOffset);
+
+ dataOp.type = CompOpTypeDataOffset;
+ dataOp.data = data;
+
+ (*callBack) (&dataOp, index, closure);
+
+ dataOp.data = f->data[type].body[i].load.offset[loadTarget];
+ }
+ else
+ {
+ dataOp.data = f->data[type].body[i].load.noOffset[loadTarget];
+ }
+
+ dataOp.type = CompOpTypeData;
+
+ (*callBack) (&dataOp, index, closure);
+
+ break;
+ case CompOpTypeColor:
+ if (!colorDone)
+ {
+ snprintf (data, 256,
+ "MUL %s, fragment.color, %s;",
+ f->data[type].body[i].color.dst,
+ f->data[type].body[i].color.src);
+
+ dataOp.type = CompOpTypeData;
+ dataOp.data = data;
+
+ (*callBack) (&dataOp, index, closure);
+ }
+ else if (strcmp (f->data[type].body[i].color.dst,
+ f->data[type].body[i].color.src))
+ {
+ snprintf (data, 256,
+ "MOV %s, %s;",
+ f->data[type].body[i].color.dst,
+ f->data[type].body[i].color.src);
+
+ dataOp.type = CompOpTypeData;
+ dataOp.data = data;
+
+ (*callBack) (&dataOp, index, closure);
+ }
+ *color = TRUE;
+ break;
+ case CompOpTypeDataBlend:
+ *blend = TRUE;
+ /* fall-through */
+ case CompOpTypeData:
+ (*callBack) (&f->data[type].body[i].data, index, closure);
+ break;
+ case CompOpTypeDataStore:
+ case CompOpTypeDataOffset:
+ case CompOpTypeHeaderTemp:
+ case CompOpTypeHeaderParam:
+ case CompOpTypeHeaderAttrib:
+ break;
+ }
+ }
+
+ if (colorDone)
+ *color = TRUE;
+
+ if (blendDone)
+ *blend = TRUE;
+}
+
+static int
+forEachHeaderOpWithType (CompHeaderOp *header,
+ int nHeader,
+ int index,
+ CompOpType type,
+ char *prefix,
+ char *functionPrefix,
+ int count,
+ DataOpCallBackProc callBack,
+ void *closure)
+{
+ CompDataOp dataOp;
+ int i;
+
+ dataOp.type = CompOpTypeData;
+
+ for (i = 0; i < nHeader; i++)
+ {
+ if (header[i].type == type)
+ {
+ if (count)
+ {
+ dataOp.data = ", ";
+ (*callBack) (&dataOp, index, closure);
+ }
+ else
+ {
+ dataOp.data = prefix;
+ (*callBack) (&dataOp, index, closure);
+ }
+
+ dataOp.data = functionPrefix;
+ (*callBack) (&dataOp, index, closure);
+
+ dataOp.data = "_";
+ (*callBack) (&dataOp, index, closure);
+
+ dataOp.data = header[i].name;
+ (*callBack) (&dataOp, index, closure);
+
+ count++;
+ }
+ }
+
+ return count;
+}
+
+static Bool
+forEachDataOp (CompFunction **list,
+ int nList,
+ int type,
+ DataOpCallBackProc callBack,
+ void *closure)
+{
+ CompDataOp dataOp;
+ Bool colorDone;
+ Bool blendDone;
+ int i, count;
+
+ dataOp.type = CompOpTypeData;
+
+ count = 1;
+
+ dataOp.data = "TEMP output";
+
+ (*callBack) (&dataOp, nList, closure);
+
+ for (i = 0; i < nList; i++)
+ count = forEachHeaderOpWithType (list[i]->data[type].header,
+ list[i]->data[type].nHeader,
+ nList, CompOpTypeHeaderTemp,
+ NULL, list[i]->name, count,
+ callBack, closure);
+
+ dataOp.data = ";";
+
+ (*callBack) (&dataOp, nList, closure);
+
+ count = 0;
+
+ for (i = 0; i < nList; i++)
+ count = forEachHeaderOpWithType (list[i]->data[type].header,
+ list[i]->data[type].nHeader,
+ nList, CompOpTypeHeaderParam,
+ "PARAM ", list[i]->name, count,
+ callBack, closure);
+
+ if (count)
+ {
+ dataOp.data = ";";
+
+ (*callBack) (&dataOp, nList, closure);
+ }
+
+ count = 0;
+
+ for (i = 0; i < nList; i++)
+ count = forEachHeaderOpWithType (list[i]->data[type].header,
+ list[i]->data[type].nHeader,
+ nList, CompOpTypeHeaderAttrib,
+ "ATTRIB ", list[i]->name, count,
+ callBack, closure);
+
+ if (count)
+ {
+ dataOp.data = ";";
+
+ (*callBack) (&dataOp, nList, closure);
+ }
+
+ forEachDataOpInFunction (list, nList - 1, type, 0, NULL,
+ &colorDone, &blendDone,
+ callBack, closure);
+
+ if (colorDone)
+ dataOp.data = "MOV result.color, output;END";
+ else
+ dataOp.data = "MUL result.color, fragment.color, output;END";
+
+ (*callBack) (&dataOp, nList, closure);
+
+ return blendDone;
+}
+
+static void
+addFetchOffsetVariables (CompDataOp *op,
+ int index,
+ void *closure)
+{
+ if (op->type == CompOpTypeDataOffset)
+ {
+ FetchInfo *info = (FetchInfo *) closure;
+
+ if (!info->indices[index])
+ {
+ char *str;
+ int oldSize = strlen (info->data);
+ int newSize;
+ char data[256];
+
+ snprintf (data, 256, "TEMP __tmp_texcoord%d;", index);
+
+ newSize = oldSize + strlen (data);
+
+ str = realloc (info->data, newSize + 1);
+ if (str)
+ {
+ strcpy (str + oldSize, data);
+ info->data = str;
+ }
+
+ info->indices[index] = TRUE;
+ }
+ }
+}
+
+static void
+addData (CompDataOp *op,
+ int index,
+ void *closure)
+{
+ FetchInfo *info = (FetchInfo *) closure;
+ char *str;
+ int oldSize = strlen (info->data);
+ int newSize = oldSize + strlen (op->data);
+
+ str = realloc (info->data, newSize + 1);
+ if (str)
+ {
+ strcpy (str + oldSize, op->data);
+ info->data = str;
+ }
+}
+
+static CompProgram *
+buildFragmentProgram (CompScreen *s,
+ FragmentAttrib *attrib)
+{
+ CompProgram *program;
+ CompFunction **functionList;
+ int nFunctionList;
+ int mask = COMP_FUNCTION_MASK;
+ int type;
+ GLint errorPos;
+ FetchInfo info;
+ int i;
+
+ program = malloc (sizeof (CompProgram));
+ if (!program)
+ return NULL;
+
+ functionList = malloc ((attrib->nFunction + 1) * sizeof (void *));
+ if (!functionList)
+ {
+ free (program);
+
+ return NULL;
+ }
+
+ functionList[0] = &initialLoadFunction;
+ nFunctionList = 1;
+
+ for (i = 0; i < attrib->nFunction; i++)
+ {
+ functionList[nFunctionList] =
+ findFragmentFunction (s, attrib->function[i]);
+ if (functionList[nFunctionList])
+ nFunctionList++;
+ }
+
+ for (i = 0; i < nFunctionList; i++)
+ mask &= functionList[i]->mask;
+
+ if (!mask)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "fragment functions can't be linked together "
+ "because a common type doesn't exist");
+ }
+
+ if (!mask || nFunctionList == 1)
+ {
+ free (program);
+ free (functionList);
+
+ return NULL;
+ }
+
+ program->signature = malloc (attrib->nFunction * sizeof (int));
+ if (!program->signature)
+ {
+ free (program);
+ free (functionList);
+
+ return NULL;
+ }
+
+ for (i = 0; i < attrib->nFunction; i++)
+ program->signature[i] = attrib->function[i];
+
+ program->nSignature = attrib->nFunction;
+
+ type = functionMaskToType (mask);
+
+ info.data = strdup ("!!ARBfp1.0");
+
+ memset (info.indices, 0, sizeof (info.indices));
+
+ forEachDataOp (functionList, nFunctionList, type,
+ addFetchOffsetVariables, (void *) &info);
+
+ program->blending = forEachDataOp (functionList, nFunctionList, type,
+ addData, (void *) &info);
+
+ program->type = GL_FRAGMENT_PROGRAM_ARB;
+
+ glGetError ();
+
+ (*s->genPrograms) (1, &program->name);
+ (*s->bindProgram) (GL_FRAGMENT_PROGRAM_ARB, program->name);
+ (*s->programString) (GL_FRAGMENT_PROGRAM_ARB,
+ GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen (info.data), info.data);
+
+ glGetIntegerv (GL_PROGRAM_ERROR_POSITION_ARB, &errorPos);
+ if (glGetError () != GL_NO_ERROR || errorPos != -1)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "failed to load fragment program");
+
+ (*s->deletePrograms) (1, &program->name);
+
+ program->name = 0;
+ program->type = 0;
+ }
+
+ free (info.data);
+ free (functionList);
+
+ return program;
+}
+
+static GLuint
+getFragmentProgram (CompScreen *s,
+ FragmentAttrib *attrib,
+ GLenum *type,
+ Bool *blending)
+{
+ CompProgram *program;
+
+ if (!attrib->nFunction)
+ return 0;
+
+ program = findFragmentProgram (s, attrib->function, attrib->nFunction);
+ if (!program)
+ {
+ program = buildFragmentProgram (s, attrib);
+ if (program)
+ {
+ program->next = s->fragmentPrograms;
+ s->fragmentPrograms = program;
+ }
+ }
+
+ if (program)
+ {
+ *type = program->type;
+ *blending = program->blending;
+
+ return program->name;
+ }
+
+ return 0;
+}
+
+CompFunctionData *
+createFunctionData (void)
+{
+ CompFunctionData *data;
+
+ data = malloc (sizeof (CompFunctionData));
+ if (!data)
+ return NULL;
+
+ data->header = NULL;
+ data->nHeader = 0;
+
+ data->body = NULL;
+ data->nBody = 0;
+
+ return data;
+}
+
+static void
+finiFunctionData (CompFunctionData *data)
+{
+ int i;
+
+ for (i = 0; i < data->nHeader; i++)
+ free (data->header[i].name);
+
+ if (data->header)
+ free (data->header);
+
+ for (i = 0; i < data->nBody; i++)
+ {
+ switch (data->body[i].type) {
+ case CompOpTypeFetch:
+ free (data->body[i].fetch.dst);
+ if (data->body[i].fetch.offset)
+ free (data->body[i].fetch.offset);
+ break;
+ case CompOpTypeLoad:
+ case CompOpTypeHeaderTemp:
+ case CompOpTypeHeaderParam:
+ case CompOpTypeHeaderAttrib:
+ break;
+ case CompOpTypeData:
+ case CompOpTypeDataBlend:
+ case CompOpTypeDataStore:
+ case CompOpTypeDataOffset:
+ free (data->body[i].data.data);
+ break;
+ case CompOpTypeColor:
+ free (data->body[i].color.dst);
+ free (data->body[i].color.src);
+ break;
+ }
+ }
+
+ if (data->body)
+ free (data->body);
+}
+
+void
+destroyFunctionData (CompFunctionData *data)
+{
+ finiFunctionData (data);
+ free (data);
+}
+
+/* performs simple variable substitution */
+static char *
+copyData (CompHeaderOp *header,
+ int nHeader,
+ const char *prefix,
+ char *data)
+{
+ char *copy, *needle, *haystack, *dst, *first;
+ int i, index, length, prefixLength, count = 0;
+
+ prefixLength = strlen (prefix);
+
+ for (i = 0; i < nHeader; i++)
+ {
+ length = strlen (header[i].name);
+ haystack = data;
+
+ do {
+ needle = strstr (haystack, header[i].name);
+ if (needle)
+ {
+ haystack = needle + length;
+ count++;
+ }
+ } while (needle);
+ }
+
+ /* allocate new memory that will fit all substitutions */
+ copy = malloc (strlen (data) + count * (strlen (prefix) + 1) + 1);
+ if (!copy)
+ return NULL;
+
+ haystack = data;
+ dst = copy;
+
+ for (;;)
+ {
+ first = NULL;
+ index = 0;
+
+ for (i = 0; i < nHeader; i++)
+ {
+ needle = strstr (haystack, header[i].name);
+ if (needle && (!first || needle < first))
+ {
+ first = needle;
+ index = i;
+ }
+ }
+
+ if (first)
+ {
+ int length;
+
+ if (first > haystack)
+ {
+ strncpy (dst, haystack, first - haystack);
+ dst += first - haystack;
+ }
+
+ length = strlen (header[index].name);
+
+ strcpy (dst, prefix);
+ dst += prefixLength;
+ *dst++ = '_';
+ strcpy (dst, header[index].name);
+ dst += length;
+
+ haystack = first + length;
+ }
+ else
+ {
+ strcpy (dst, haystack);
+ break;
+ }
+ }
+
+ return copy;
+}
+
+static Bool
+copyFunctionData (CompFunctionData *dst,
+ const CompFunctionData *src,
+ const char *dstPrefix)
+{
+ int i;
+
+ dst->header = malloc (src->nHeader * sizeof (CompHeaderOp));
+ if (!dst->header)
+ return FALSE;
+
+ dst->body = malloc (src->nBody * sizeof (CompBodyOp));
+ if (!dst->body)
+ {
+ free (dst->header);
+ return FALSE;
+ }
+
+ dst->nHeader = src->nHeader;
+
+ for (i = 0; i < src->nHeader; i++)
+ {
+ dst->header[i].type = src->header[i].type;
+ dst->header[i].name = strdup (src->header[i].name);
+ }
+
+ dst->nBody = src->nBody;
+
+ for (i = 0; i < src->nBody; i++)
+ {
+ dst->body[i].type = src->body[i].type;
+
+ switch (src->body[i].type) {
+ case CompOpTypeFetch:
+ dst->body[i].fetch.dst = copyData (dst->header,
+ dst->nHeader,
+ dstPrefix,
+ src->body[i].fetch.dst);
+ if (src->body[i].fetch.offset)
+ dst->body[i].fetch.offset =
+ copyData (dst->header,
+ dst->nHeader,
+ dstPrefix,
+ src->body[i].fetch.offset);
+ else
+ dst->body[i].fetch.offset = NULL;
+
+ dst->body[i].fetch.target = src->body[i].fetch.target;
+ break;
+ case CompOpTypeLoad:
+ case CompOpTypeHeaderTemp:
+ case CompOpTypeHeaderParam:
+ case CompOpTypeHeaderAttrib:
+ break;
+ case CompOpTypeData:
+ case CompOpTypeDataBlend:
+ case CompOpTypeDataStore:
+ case CompOpTypeDataOffset:
+ dst->body[i].data.data = copyData (dst->header,
+ dst->nHeader,
+ dstPrefix,
+ src->body[i].data.data);
+ break;
+ case CompOpTypeColor:
+ dst->body[i].color.dst = copyData (dst->header,
+ dst->nHeader,
+ dstPrefix,
+ src->body[i].color.dst);
+ dst->body[i].color.src = copyData (dst->header,
+ dst->nHeader,
+ dstPrefix,
+ src->body[i].color.src);
+ break;
+ }
+ }
+
+ return TRUE;
+}
+
+static Bool
+addHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name,
+ CompOpType type)
+{
+ static char *reserved[] = {
+ "output",
+ "__tmp_texcoord",
+ "fragment",
+ "program",
+ "result",
+ "state",
+ "texture"
+ };
+ CompHeaderOp *header;
+ int i;
+
+ for (i = 0; i < sizeof (reserved) / sizeof (reserved[0]); i++)
+ {
+ if (strncmp (name, reserved[i], strlen (reserved[i])) == 0)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "%s is a reserved word", name);
+ return FALSE;
+ }
+ }
+
+ header = realloc (data->header,
+ (data->nHeader + 1) * sizeof (CompHeaderOp));
+ if (!header)
+ return FALSE;
+
+ header[data->nHeader].type = type;
+ header[data->nHeader].name = strdup (name);
+
+ data->header = header;
+ data->nHeader++;
+
+ return TRUE;
+}
+
+Bool
+addTempHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name)
+{
+ return addHeaderOpToFunctionData (data, name, CompOpTypeHeaderTemp);
+}
+
+Bool
+addParamHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name)
+{
+ return addHeaderOpToFunctionData (data, name, CompOpTypeHeaderParam);
+}
+
+Bool
+addAttribHeaderOpToFunctionData (CompFunctionData *data,
+ const char *name)
+{
+ return addHeaderOpToFunctionData (data, name, CompOpTypeHeaderAttrib);
+}
+
+static Bool
+allocBodyOpInFunctionData (CompFunctionData *data)
+{
+ CompBodyOp *body;
+
+ body = realloc (data->body, (data->nBody + 1) * sizeof (CompBodyOp));
+ if (!body)
+ return FALSE;
+
+ data->body = body;
+ data->nBody++;
+
+ return TRUE;
+}
+
+Bool
+addFetchOpToFunctionData (CompFunctionData *data,
+ const char *dst,
+ const char *offset,
+ int target)
+{
+ int index = data->nBody;
+
+ if (!allocBodyOpInFunctionData (data))
+ return FALSE;
+
+ data->body[index].type = CompOpTypeFetch;
+ data->body[index].fetch.dst = strdup (dst);
+ data->body[index].fetch.target = target;
+
+ if (offset)
+ data->body[index].fetch.offset = strdup (offset);
+ else
+ data->body[index].fetch.offset = NULL;
+
+ return TRUE;
+}
+
+Bool
+addColorOpToFunctionData (CompFunctionData *data,
+ const char *dst,
+ const char *src)
+{
+ int index = data->nBody;
+
+ if (!allocBodyOpInFunctionData (data))
+ return FALSE;
+
+ data->body[index].type = CompOpTypeColor;
+ data->body[index].color.dst = strdup (dst);
+ data->body[index].color.src = strdup (src);
+
+ return TRUE;
+}
+
+Bool
+addDataOpToFunctionData (CompFunctionData *data,
+ const char *str,
+ ...)
+{
+ int index = data->nBody;
+ int size = strlen (str) + 1;
+ int n;
+ char *fStr;
+ char *tmp;
+ va_list ap;
+
+ if (!allocBodyOpInFunctionData (data))
+ return FALSE;
+
+ fStr = malloc (size);
+ if (!fStr)
+ return FALSE;
+
+ while (1)
+ {
+ /* Try to print in the allocated space. */
+ va_start (ap, str);
+ n = vsnprintf (fStr, size, str, ap);
+ va_end (ap);
+
+ /* If that worked, leave the loop. */
+ if (n > -1 && n < size)
+ break;
+
+ /* Else try again with more space. */
+ if (n > -1) /* glibc 2.1 */
+ size = n + 1; /* precisely what is needed */
+ else /* glibc 2.0 */
+ size++; /* one more than the old size */
+
+ tmp = realloc (fStr, size);
+ if (!tmp)
+ {
+ free (fStr);
+ return FALSE;
+ }
+ else
+ {
+ fStr = tmp;
+ }
+ }
+
+ data->body[index].type = CompOpTypeData;
+ data->body[index].data.data = fStr;
+
+ return TRUE;
+}
+
+Bool
+addBlendOpToFunctionData (CompFunctionData *data,
+ const char *str,
+ ...)
+{
+ int index = data->nBody;
+ int size = strlen (str) + 1;
+ int n;
+ char *fStr;
+ char *tmp;
+ va_list ap;
+
+ if (!allocBodyOpInFunctionData (data))
+ return FALSE;
+
+ fStr = malloc (size);
+ if (!fStr)
+ return FALSE;
+
+ while (1)
+ {
+ /* Try to print in the allocated space. */
+ va_start (ap, str);
+ n = vsnprintf (fStr, size, str, ap);
+ va_end (ap);
+
+ /* If that worked, leave the loop. */
+ if (n > -1 && n < size)
+ break;
+
+ /* Else try again with more space. */
+ if (n > -1) /* glibc 2.1 */
+ size = n + 1; /* precisely what is needed */
+ else /* glibc 2.0 */
+ size++; /* one more than the old size */
+
+ tmp = realloc (fStr, size);
+ if (!tmp)
+ {
+ free (fStr);
+ return FALSE;
+ }
+ else
+ {
+ fStr = tmp;
+ }
+ }
+
+ data->body[index].type = CompOpTypeDataBlend;
+ data->body[index].data.data = fStr;
+
+ return TRUE;
+}
+
+static int
+allocFunctionId (CompScreen *s)
+{
+ return ++s->lastFunctionId;
+}
+
+int
+createFragmentFunction (CompScreen *s,
+ const char *name,
+ CompFunctionData *data)
+{
+ CompFunction *function;
+ const char *validName = name;
+ char *nameBuffer = NULL;
+ int i = 0;
+
+ while (findFragmentFunctionWithName (s, validName))
+ {
+ if (!nameBuffer)
+ {
+ nameBuffer = malloc (strlen (name) + 64);
+ if (!nameBuffer)
+ return 0;
+
+ validName = nameBuffer;
+ }
+
+ sprintf (nameBuffer, "%s%d", name, i++);
+ }
+
+ function = malloc (sizeof (CompFunction));
+ if (!function)
+ {
+ if (nameBuffer)
+ free (nameBuffer);
+
+ return 0;
+ }
+
+ if (!copyFunctionData (&function->data[COMP_FUNCTION_TYPE_ARB], data,
+ validName))
+ {
+ free (function);
+ if (nameBuffer)
+ free (nameBuffer);
+
+ return 0;
+ }
+
+ function->name = strdup (validName);
+ function->mask = COMP_FUNCTION_ARB_MASK;
+ function->id = allocFunctionId (s);
+
+ function->next = s->fragmentFunctions;
+ s->fragmentFunctions = function;
+
+ if (nameBuffer)
+ free (nameBuffer);
+
+ return function->id;
+}
+
+void
+destroyFragmentFunction (CompScreen *s,
+ int id)
+{
+ CompFunction *function, *prevFunction = NULL;
+ CompProgram *program, *prevProgram = NULL;
+ int i;
+
+ for (function = s->fragmentFunctions; function; function = function->next)
+ {
+ if (function->id == id)
+ break;
+
+ prevFunction = function;
+ }
+
+ if (!function)
+ return;
+
+ program = s->fragmentPrograms;
+ while (program)
+ {
+ for (i = 0; i < program->nSignature; i++)
+ {
+ if (program->signature[i] == id)
+ break;
+ }
+
+ if (i < program->nSignature)
+ {
+ CompProgram *tmp = program;
+
+ if (prevProgram)
+ prevProgram->next = program->next;
+ else
+ s->fragmentPrograms = program->next;
+
+ program = program->next;
+
+ (*s->deletePrograms) (1, &tmp->name);
+
+ free (tmp->signature);
+ free (tmp);
+ }
+ else
+ {
+ prevProgram = program;
+ program = program->next;
+ }
+ }
+
+ if (prevFunction)
+ prevFunction->next = function->next;
+ else
+ s->fragmentFunctions = function->next;
+
+ finiFunctionData (&function->data[COMP_FUNCTION_TYPE_ARB]);
+ free (function->name);
+ free (function);
+}
+
+int
+getSaturateFragmentFunction (CompScreen *s,
+ CompTexture *texture,
+ int param)
+{
+ int target;
+
+ if (param >= 64)
+ return 0;
+
+ if (texture->target == GL_TEXTURE_2D)
+ target = COMP_FETCH_TARGET_2D;
+ else
+ target = COMP_FETCH_TARGET_RECT;
+
+ if (!s->saturateFunction[target][param])
+ {
+ static const char *saturateData =
+ "MUL temp, output, { 1.0, 1.0, 1.0, 0.0 };"
+ "DP3 temp, temp, program.env[%d];"
+ "LRP output.xyz, program.env[%d].w, output, temp;";
+ CompFunctionData *data;
+
+ data = createFunctionData ();
+ if (data)
+ {
+ char str[1024];
+
+ if (!addTempHeaderOpToFunctionData (data, "temp"))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ if (!addFetchOpToFunctionData (data, "output", NULL, target))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ if (!addColorOpToFunctionData (data, "output", "output"))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ snprintf (str, 1024, saturateData, param, param);
+
+ if (!addDataOpToFunctionData (data, str))
+ {
+ destroyFunctionData (data);
+ return 0;
+ }
+
+ s->saturateFunction[target][param] =
+ createFragmentFunction (s, "__core_saturate", data);
+
+ destroyFunctionData (data);
+ }
+ }
+
+ return s->saturateFunction[target][param];
+}
+
+int
+allocFragmentTextureUnits (FragmentAttrib *attrib,
+ int nTexture)
+{
+ int first = attrib->nTexture;
+
+ attrib->nTexture += nTexture;
+
+ /* 0 is reserved for source texture */
+ return 1 + first;
+}
+
+int
+allocFragmentParameters (FragmentAttrib *attrib,
+ int nParam)
+{
+ int first = attrib->nParam;
+
+ attrib->nParam += nParam;
+
+ return first;
+}
+
+void
+addFragmentFunction (FragmentAttrib *attrib,
+ int function)
+{
+ if (attrib->nFunction < MAX_FRAGMENT_FUNCTIONS)
+ attrib->function[attrib->nFunction++] = function;
+}
+
+void
+initFragmentAttrib (FragmentAttrib *attrib,
+ const WindowPaintAttrib *paint)
+{
+ attrib->opacity = paint->opacity;
+ attrib->brightness = paint->brightness;
+ attrib->saturation = paint->saturation;
+ attrib->nTexture = 0;
+ attrib->nFunction = 0;
+ attrib->nParam = 0;
+
+ memset (attrib->function, 0, sizeof (attrib->function));
+}
+
+Bool
+enableFragmentAttrib (CompScreen *s,
+ FragmentAttrib *attrib,
+ Bool *blending)
+{
+ GLuint name;
+ GLenum type;
+ Bool programBlending;
+
+ if (!s->fragmentProgram)
+ return FALSE;
+
+ name = getFragmentProgram (s, attrib, &type, &programBlending);
+ if (!name)
+ return FALSE;
+
+ *blending = !programBlending;
+
+ glEnable (GL_FRAGMENT_PROGRAM_ARB);
+
+ (*s->bindProgram) (type, name);
+
+ return TRUE;
+}
+
+void
+disableFragmentAttrib (CompScreen *s,
+ FragmentAttrib *attrib)
+{
+ glDisable (GL_FRAGMENT_PROGRAM_ARB);
+}
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..b6869b4
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,472 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/wait.h>
+
+#include <compiz-core.h>
+
+char *programName;
+char **programArgv;
+int programArgc;
+
+char *backgroundImage = NULL;
+
+REGION emptyRegion;
+REGION infiniteRegion;
+GLushort defaultColor[4] = { 0xffff, 0xffff, 0xffff, 0xffff };
+Window currentRoot = 0;
+
+int defaultRefreshRate = 50;
+char *defaultTextureFilter = "Good";
+
+Bool shutDown = FALSE;
+Bool restartSignal = FALSE;
+Bool coreInitialized = FALSE;
+
+CompWindow *lastFoundWindow = 0;
+CompWindow *lastDamagedWindow = 0;
+
+Bool replaceCurrentWm = FALSE;
+Bool indirectRendering = FALSE;
+Bool strictBinding = TRUE;
+Bool noDetection = FALSE;
+Bool useDesktopHints = FALSE;
+Bool onlyCurrentScreen = FALSE;
+static Bool debugOutput = FALSE;
+
+#ifdef USE_COW
+Bool useCow = TRUE;
+#endif
+
+CompMetadata coreMetadata;
+
+static void
+usage (void)
+{
+ printf ("Usage: %s\n "
+ "[--display DISPLAY] "
+ "[--bg-image PNG] "
+ "[--refresh-rate RATE]\n "
+ "[--fast-filter] "
+ "[--indirect-rendering] "
+ "[--no-detection]\n "
+ "[--keep-desktop-hints] "
+ "[--loose-binding] "
+ "[--replace]\n "
+ "[--sm-disable] "
+ "[--sm-client-id ID] "
+ "[--only-current-screen]\n "
+
+#ifdef USE_COW
+ " [--use-root-window] "
+#endif
+
+ "[--debug] "
+ "[--version] "
+ "[--help] "
+ "[PLUGIN]...\n",
+ programName);
+}
+
+void
+compLogMessage (const char *componentName,
+ CompLogLevel level,
+ const char *format,
+ ...)
+{
+ va_list args;
+ char message[2048];
+
+ va_start (args, format);
+
+ vsnprintf (message, 2048, format, args);
+
+ if (coreInitialized)
+ (*core.logMessage) (componentName, level, message);
+ else
+ logMessage (componentName, level, message);
+
+ va_end (args);
+}
+
+void
+logMessage (const char *componentName,
+ CompLogLevel level,
+ const char *message)
+{
+ if (!debugOutput && level >= CompLogLevelDebug)
+ return;
+
+ fprintf (stderr, "%s (%s) - %s: %s\n",
+ programName, componentName,
+ logLevelToString (level), message);
+}
+
+const char *
+logLevelToString (CompLogLevel level)
+{
+ switch (level) {
+ case CompLogLevelFatal:
+ return "Fatal";
+ case CompLogLevelError:
+ return "Error";
+ case CompLogLevelWarn:
+ return "Warn";
+ case CompLogLevelInfo:
+ return "Info";
+ case CompLogLevelDebug:
+ return "Debug";
+ default:
+ break;
+ }
+
+ return "Unknown";
+}
+
+static void
+signalHandler (int sig)
+{
+ int status;
+
+ switch (sig) {
+ case SIGCHLD:
+ waitpid (-1, &status, WNOHANG | WUNTRACED);
+ break;
+ case SIGHUP:
+ restartSignal = TRUE;
+ break;
+ case SIGINT:
+ case SIGTERM:
+ shutDown = TRUE;
+ default:
+ break;
+ }
+}
+
+typedef struct _CompIOCtx {
+ int offset;
+ char *pluginData;
+ char *textureFilterData;
+ char *refreshRateData;
+} CompIOCtx;
+
+static int
+readCoreXmlCallback (void *context,
+ char *buffer,
+ int length)
+{
+ CompIOCtx *ctx = (CompIOCtx *) context;
+ int offset = ctx->offset;
+ int i, j;
+
+ i = compReadXmlChunk ("<compiz><core><display>", &offset, buffer, length);
+
+ for (j = 0; j < COMP_DISPLAY_OPTION_NUM; j++)
+ {
+ CompMetadataOptionInfo info = coreDisplayOptionInfo[j];
+
+ switch (j) {
+ case COMP_DISPLAY_OPTION_ACTIVE_PLUGINS:
+ if (ctx->pluginData)
+ info.data = ctx->pluginData;
+ break;
+ case COMP_DISPLAY_OPTION_TEXTURE_FILTER:
+ if (ctx->textureFilterData)
+ info.data = ctx->textureFilterData;
+ default:
+ break;
+ }
+
+ i += compReadXmlChunkFromMetadataOptionInfo (&info,
+ &offset,
+ buffer + i,
+ length - i);
+ }
+
+ i += compReadXmlChunk ("</display><screen>", &offset,
+ buffer + i, length - 1);
+
+ for (j = 0; j < COMP_SCREEN_OPTION_NUM; j++)
+ {
+ CompMetadataOptionInfo info = coreScreenOptionInfo[j];
+
+ switch (j) {
+ case COMP_SCREEN_OPTION_REFRESH_RATE:
+ if (ctx->refreshRateData)
+ info.data = ctx->refreshRateData;
+ default:
+ break;
+ }
+
+ i += compReadXmlChunkFromMetadataOptionInfo (&info,
+ &offset,
+ buffer + i,
+ length - i);
+ }
+
+ i += compReadXmlChunk ("</screen></core></compiz>", &offset, buffer + i,
+ length - i);
+
+ if (!offset && length > i)
+ buffer[i++] = '\0';
+
+ ctx->offset += i;
+
+ return i;
+}
+
+int
+main (int argc, char **argv)
+{
+ CompIOCtx ctx;
+ char *displayName = 0;
+ char *plugin[256];
+ int i, nPlugin = 0;
+ Bool disableSm = FALSE;
+ char *clientId = NULL;
+ char *refreshRateArg = NULL;
+
+ programName = argv[0];
+ programArgc = argc;
+ programArgv = argv;
+
+ signal (SIGHUP, signalHandler);
+ signal (SIGCHLD, signalHandler);
+ signal (SIGINT, signalHandler);
+ signal (SIGTERM, signalHandler);
+
+ emptyRegion.rects = &emptyRegion.extents;
+ emptyRegion.numRects = 0;
+ emptyRegion.extents.x1 = 0;
+ emptyRegion.extents.y1 = 0;
+ emptyRegion.extents.x2 = 0;
+ emptyRegion.extents.y2 = 0;
+ emptyRegion.size = 0;
+
+ infiniteRegion.rects = &infiniteRegion.extents;
+ infiniteRegion.numRects = 1;
+ infiniteRegion.extents.x1 = MINSHORT;
+ infiniteRegion.extents.y1 = MINSHORT;
+ infiniteRegion.extents.x2 = MAXSHORT;
+ infiniteRegion.extents.y2 = MAXSHORT;
+
+ memset (&ctx, 0, sizeof (ctx));
+
+ for (i = 1; i < argc; i++)
+ {
+ if (!strcmp (argv[i], "--help"))
+ {
+ usage ();
+ return 0;
+ }
+ else if (!strcmp (argv[i], "--version"))
+ {
+ printf (PACKAGE_STRING "\n");
+ return 0;
+ }
+ else if (!strcmp (argv[i], "--debug"))
+ {
+ debugOutput = TRUE;
+ }
+ else if (!strcmp (argv[i], "--display"))
+ {
+ if (i + 1 < argc)
+ displayName = argv[++i];
+ }
+ else if (!strcmp (argv[i], "--refresh-rate"))
+ {
+ if (i + 1 < argc)
+ {
+ refreshRateArg = programArgv[++i];
+ defaultRefreshRate = atoi (refreshRateArg);
+ defaultRefreshRate = RESTRICT_VALUE (defaultRefreshRate,
+ 1, 1000);
+ }
+ }
+ else if (!strcmp (argv[i], "--fast-filter"))
+ {
+ ctx.textureFilterData = "<default>Fast</default>";
+ defaultTextureFilter = "Fast";
+ }
+ else if (!strcmp (argv[i], "--indirect-rendering"))
+ {
+ /* force Mesa libGL into indirect rendering mode, because
+ glXQueryExtensionsString is context-independant */
+ setenv ("LIBGL_ALWAYS_INDIRECT", "1", True);
+ indirectRendering = TRUE;
+ }
+ else if (!strcmp (argv[i], "--loose-binding"))
+ {
+ strictBinding = FALSE;
+ }
+ else if (!strcmp (argv[i], "--ignore-desktop-hints"))
+ {
+ /* keep command line parameter for backward compatibility */
+ useDesktopHints = FALSE;
+ }
+ else if (!strcmp (argv[i], "--keep-desktop-hints"))
+ {
+ useDesktopHints = TRUE;
+ }
+ else if (!strcmp (argv[i], "--only-current-screen"))
+ {
+ onlyCurrentScreen = TRUE;
+ }
+
+#ifdef USE_COW
+ else if (!strcmp (argv[i], "--use-root-window"))
+ {
+ useCow = FALSE;
+ }
+#endif
+
+ else if (!strcmp (argv[i], "--replace"))
+ {
+ replaceCurrentWm = TRUE;
+ }
+ else if (!strcmp (argv[i], "--sm-disable"))
+ {
+ disableSm = TRUE;
+ }
+ else if (!strcmp (argv[i], "--sm-client-id"))
+ {
+ if (i + 1 < argc)
+ clientId = argv[++i];
+ }
+ else if (!strcmp (argv[i], "--no-detection"))
+ {
+ noDetection = TRUE;
+ }
+ else if (!strcmp (argv[i], "--bg-image"))
+ {
+ if (i + 1 < argc)
+ backgroundImage = argv[++i];
+ }
+ else if (*argv[i] == '-')
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Unknown option '%s'\n", argv[i]);
+ }
+ else
+ {
+ if (nPlugin < 256)
+ plugin[nPlugin++] = argv[i];
+ }
+ }
+
+ if (refreshRateArg)
+ {
+ ctx.refreshRateData = malloc (strlen (refreshRateArg) + 256);
+ if (ctx.refreshRateData)
+ sprintf (ctx.refreshRateData,
+ "<min>1</min><default>%s</default>",
+ refreshRateArg);
+ }
+
+ if (nPlugin)
+ {
+ int size = 256;
+
+ for (i = 0; i < nPlugin; i++)
+ size += strlen (plugin[i]) + 16;
+
+ ctx.pluginData = malloc (size);
+ if (ctx.pluginData)
+ {
+ char *ptr = ctx.pluginData;
+
+ ptr += sprintf (ptr, "<type>string</type><default>");
+
+ for (i = 0; i < nPlugin; i++)
+ ptr += sprintf (ptr, "<value>%s</value>", plugin[i]);
+
+ ptr += sprintf (ptr, "</default>");
+ }
+ }
+
+ xmlInitParser ();
+
+ LIBXML_TEST_VERSION;
+
+ if (!compInitMetadata (&coreMetadata))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't initialize core metadata");
+ return 1;
+ }
+
+ if (!compAddMetadataFromIO (&coreMetadata,
+ readCoreXmlCallback, NULL,
+ &ctx))
+ return 1;
+
+ if (ctx.refreshRateData)
+ free (ctx.refreshRateData);
+
+ if (ctx.pluginData)
+ free (ctx.pluginData);
+
+ compAddMetadataFromFile (&coreMetadata, "core");
+
+ if (!initCore ())
+ return 1;
+
+ coreInitialized = TRUE;
+
+ if (!disableSm)
+ initSession (clientId);
+
+ if (!addDisplay (displayName))
+ return 1;
+
+ eventLoop ();
+
+ if (!disableSm)
+ closeSession ();
+
+ coreInitialized = FALSE;
+
+ finiCore ();
+ compFiniMetadata (&coreMetadata);
+
+ xmlCleanupParser ();
+
+ if (restartSignal)
+ {
+ execvp (programName, programArgv);
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/src/match.c b/src/match.c
new file mode 100644
index 0000000..90bcee1
--- /dev/null
+++ b/src/match.c
@@ -0,0 +1,782 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <compiz-core.h>
+
+static void
+matchResetOps (CompDisplay *display,
+ CompMatchOp *op,
+ int nOp)
+{
+ while (nOp--)
+ {
+ switch (op->type) {
+ case CompMatchOpTypeGroup:
+ matchResetOps (display, op->group.op, op->group.nOp);
+ break;
+ case CompMatchOpTypeExp:
+ if (op->exp.e.fini)
+ {
+ (*op->exp.e.fini) (display, op->exp.e.priv);
+ op->exp.e.fini = NULL;
+ }
+
+ op->exp.e.eval = NULL;
+ op->exp.e.priv.val = 0;
+ break;
+ }
+
+ op++;
+ }
+}
+
+static void
+matchReset (CompMatch *match)
+{
+ if (match->display)
+ matchResetOps (match->display, match->op, match->nOp);
+
+ match->display = NULL;
+}
+
+void
+matchInit (CompMatch *match)
+{
+ match->display = NULL;
+ match->op = NULL;
+ match->nOp = 0;
+}
+
+static void
+matchFiniOps (CompMatchOp *op,
+ int nOp)
+{
+ while (nOp--)
+ {
+ switch (op->type) {
+ case CompMatchOpTypeGroup:
+ matchFiniOps (op->group.op, op->group.nOp);
+ free (op->group.op);
+ break;
+ case CompMatchOpTypeExp:
+ free (op->exp.value);
+ break;
+ }
+
+ op++;
+ }
+}
+
+void
+matchFini (CompMatch *match)
+{
+ matchReset (match);
+ matchFiniOps (match->op, match->nOp);
+ free (match->op);
+}
+
+static Bool
+matchOpsEqual (CompMatchOp *op1,
+ CompMatchOp *op2,
+ int nOp)
+{
+ while (nOp--)
+ {
+ if (op1->type != op2->type)
+ return FALSE;
+
+ switch (op1->type) {
+ case CompMatchOpTypeGroup:
+ if (op1->group.nOp != op2->group.nOp)
+ return FALSE;
+
+ if (!matchOpsEqual (op1->group.op, op2->group.op, op1->group.nOp))
+ return FALSE;
+
+ break;
+ case CompMatchOpTypeExp:
+ if (op1->exp.flags != op2->exp.flags)
+ return FALSE;
+
+ if (strcmp (op1->exp.value, op2->exp.value))
+ return FALSE;
+
+ break;
+ }
+
+ op1++;
+ op2++;
+ }
+
+ return TRUE;
+}
+
+Bool
+matchEqual (CompMatch *m1,
+ CompMatch *m2)
+{
+ if (m1->nOp != m2->nOp)
+ return FALSE;
+
+ return matchOpsEqual (m1->op, m2->op, m1->nOp);
+}
+
+static CompMatchOp *
+matchAddOp (CompMatch *match,
+ CompMatchOpType type,
+ int flags)
+{
+ CompMatchOp *op;
+
+ /* remove AND prefix if this is the first op in this group */
+ if (!match->nOp)
+ flags &= ~MATCH_OP_AND_MASK;
+
+ op = realloc (match->op, sizeof (CompMatchOp) * (match->nOp + 1));
+ if (!op)
+ return FALSE;
+
+ op[match->nOp].any.type = type;
+ op[match->nOp].any.flags = flags;
+
+ match->op = op;
+ match->nOp++;
+
+ return &match->op[match->nOp - 1];
+}
+
+static Bool
+matchCopyOps (CompMatchOp *opDst,
+ CompMatchOp *opSrc,
+ int nOpSrc)
+{
+ CompMatchOp *op, *first = opDst;
+ int count = 0;
+
+ while (nOpSrc--)
+ {
+ opDst->any.type = opSrc->any.type;
+ opDst->any.flags = opSrc->any.flags;
+
+ switch (opSrc->type) {
+ case CompMatchOpTypeGroup:
+ op = malloc (sizeof (CompMatchOp) * opSrc->group.nOp);
+ if (!op)
+ {
+ matchFiniOps (first, count);
+ return FALSE;
+ }
+
+ if (!matchCopyOps (op, opSrc->group.op, opSrc->group.nOp))
+ {
+ free (op);
+ matchFiniOps (first, count);
+ return FALSE;
+ }
+
+ opDst->group.op = op;
+ opDst->group.nOp = opSrc->group.nOp;
+ break;
+ case CompMatchOpTypeExp:
+ opDst->exp.value = strdup (opSrc->exp.value);
+ if (!opDst->exp.value)
+ {
+ matchFiniOps (first, count);
+ return FALSE;
+ }
+
+ opDst->exp.e.fini = NULL;
+ opDst->exp.e.eval = NULL;
+ opDst->exp.e.priv.val = 0;
+ break;
+ }
+
+ count++;
+ opDst++;
+ opSrc++;
+ }
+
+ return TRUE;
+}
+
+Bool
+matchCopy (CompMatch *dst,
+ CompMatch *src)
+{
+ CompMatchOp *opDst;
+
+ opDst = malloc (sizeof (CompMatchOp) * src->nOp);
+ if (!opDst)
+ return FALSE;
+
+ if (!matchCopyOps (opDst, src->op, src->nOp))
+ {
+ free (opDst);
+ return FALSE;
+ }
+
+ dst->op = opDst;
+ dst->nOp = src->nOp;
+
+ return TRUE;
+}
+
+Bool
+matchAddGroup (CompMatch *match,
+ int flags,
+ CompMatch *group)
+{
+ CompMatchOp *op, *opDst;
+
+ opDst = malloc (sizeof (CompMatchOp) * group->nOp);
+ if (!opDst)
+ return FALSE;
+
+ if (!matchCopyOps (opDst, group->op, group->nOp))
+ {
+ free (opDst);
+ return FALSE;
+ }
+
+ op = matchAddOp (match, CompMatchOpTypeGroup, flags);
+ if (!op)
+ {
+ matchFiniOps (opDst, group->nOp);
+ free (opDst);
+ return FALSE;
+ }
+
+ op->group.op = opDst;
+ op->group.nOp = group->nOp;
+
+ return TRUE;
+}
+
+Bool
+matchAddExp (CompMatch *match,
+ int flags,
+ const char *str)
+{
+ CompMatchOp *op;
+ char *value;
+
+ value = strdup (str);
+ if (!value)
+ return FALSE;
+
+ op = matchAddOp (match, CompMatchOpTypeExp, flags);
+ if (!op)
+ {
+ free (value);
+ return FALSE;
+ }
+
+ op->exp.value = value;
+ op->exp.e.fini = NULL;
+ op->exp.e.eval = NULL;
+ op->exp.e.priv.val = 0;
+
+ return TRUE;
+}
+
+static int
+nextIndex (const char *str,
+ int i)
+{
+ while (str[i] == '\\')
+ if (str[++i] != '\0')
+ i++;
+
+ return i;
+}
+
+static char *
+strndupValue (const char *str,
+ int n)
+{
+ char *value;
+
+ value = malloc (sizeof (char) * (n + 1));
+ if (value)
+ {
+ int i, j;
+
+ /* count trialing white spaces */
+ i = j = 0;
+ while (i < n)
+ {
+ if (str[i] != ' ')
+ {
+ j = 0;
+ if (str[i] == '\\')
+ i++;
+ }
+ else
+ {
+ j++;
+ }
+
+ i++;
+ }
+
+ /* remove trialing white spaces */
+ n -= j;
+
+ i = j = 0;
+ for (;;)
+ {
+ if (str[i] == '\\')
+ i++;
+
+ value[j++] = str[i++];
+
+ if (i >= n)
+ {
+ value[j] = '\0';
+ return value;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/*
+ Add match expressions from string. Special characters are
+ '(', ')', '!', '&', '|'. Escape character is '\'.
+
+ Example:
+
+ "type=desktop | !type=dock"
+ "!type=dock & (state=fullscreen | state=shaded)"
+*/
+void
+matchAddFromString (CompMatch *match,
+ const char *str)
+{
+ char *value;
+ int j, i = 0;
+ int flags = 0;
+
+ while (str[i] != '\0')
+ {
+ while (str[i] == ' ')
+ i++;
+
+ if (str[i] == '!')
+ {
+ flags |= MATCH_OP_NOT_MASK;
+
+ i++;
+ while (str[i] == ' ')
+ i++;
+ }
+
+ if (str[i] == '(')
+ {
+ int level = 1;
+ int length;
+
+ j = ++i;
+
+ while (str[j] != '\0')
+ {
+ if (str[j] == '(')
+ {
+ level++;
+ }
+ else if (str[j] == ')')
+ {
+ level--;
+ if (level == 0)
+ break;
+ }
+
+ j = nextIndex (str, ++j);
+ }
+
+ length = j - i;
+
+ value = malloc (sizeof (char) * (length + 1));
+ if (value)
+ {
+ CompMatch group;
+
+ strncpy (value, &str[i], length);
+ value[length] = '\0';
+
+ matchInit (&group);
+ matchAddFromString (&group, value);
+ matchAddGroup (match, flags, &group);
+ matchFini (&group);
+
+ free (value);
+ }
+
+ while (str[j] != '\0' && str[j] != '|' && str[j] != '&')
+ j++;
+ }
+ else
+ {
+ j = i;
+
+ while (str[j] != '\0' && str[j] != '|' && str[j] != '&')
+ j = nextIndex (str, ++j);
+
+ value = strndupValue (&str[i], j - i);
+ if (value)
+ {
+ matchAddExp (match, flags, value);
+
+ free (value);
+ }
+ }
+
+ i = j;
+
+ if (str[i] != '\0')
+ {
+ if (str[i] == '&')
+ flags = MATCH_OP_AND_MASK;
+
+ i++;
+ }
+ }
+}
+
+static char *
+matchOpsToString (CompMatchOp *op,
+ int nOp)
+{
+ char *value, *group;
+ char *str = NULL;
+ int length = 0;
+
+ while (nOp--)
+ {
+ value = NULL;
+
+ switch (op->type) {
+ case CompMatchOpTypeGroup:
+ group = matchOpsToString (op->group.op, op->group.nOp);
+ if (group)
+ {
+ value = malloc (sizeof (char) * (strlen (group) + 7));
+ if (value)
+ sprintf (value, "%s%s(%s)%s", !str ? "" :
+ ((op->any.flags & MATCH_OP_AND_MASK) ?
+ "& " : "| "),
+ (op->any.flags & MATCH_OP_NOT_MASK) ? "!" : "",
+ group, nOp ? " " : "");
+
+ free (group);
+ }
+ break;
+ case CompMatchOpTypeExp:
+ value = malloc (sizeof (char) * (strlen (op->exp.value) + 5));
+ if (value)
+ sprintf (value, "%s%s%s%s", !str ? "" :
+ ((op->any.flags & MATCH_OP_AND_MASK) ? "& " : "| "),
+ (op->any.flags & MATCH_OP_NOT_MASK) ? "!" : "",
+ op->exp.value, nOp ? " " : "");
+ break;
+ }
+
+ if (value)
+ {
+ char *s;
+ int valueLength = strlen (value);
+
+ s = malloc (sizeof (char) * (length + valueLength + 1));
+ if (s)
+ {
+ if (str)
+ memcpy (s, str, sizeof (char) * length);
+
+ memcpy (s + length, value, sizeof (char) * valueLength);
+
+ length += valueLength;
+
+ s[length] = '\0';
+
+ if (str)
+ free (str);
+
+ str = s;
+ }
+
+ free (value);
+ }
+
+ op++;
+ }
+
+ return str;
+}
+
+char *
+matchToString (CompMatch *match)
+{
+ char *str;
+
+ str = matchOpsToString (match->op, match->nOp);
+ if (!str)
+ str = strdup ("");
+
+ return str;
+}
+
+static void
+matchUpdateOps (CompDisplay *display,
+ CompMatchOp *op,
+ int nOp)
+{
+ while (nOp--)
+ {
+ switch (op->type) {
+ case CompMatchOpTypeGroup:
+ matchUpdateOps (display, op->group.op, op->group.nOp);
+ break;
+ case CompMatchOpTypeExp:
+ (*display->matchInitExp) (display, &op->exp.e, op->exp.value);
+ break;
+ }
+
+ op++;
+ }
+}
+
+void
+matchUpdate (CompDisplay *display,
+ CompMatch *match)
+{
+ matchReset (match);
+ matchUpdateOps (display, match->op, match->nOp);
+ match->display = display;
+}
+
+static Bool
+matchEvalOps (CompDisplay *display,
+ CompMatchOp *op,
+ int nOp,
+ CompWindow *window)
+{
+ Bool value, result = FALSE;
+
+ while (nOp--)
+ {
+ /* fast evaluation */
+ if (op->any.flags & MATCH_OP_AND_MASK)
+ {
+ /* result will never be true */
+ if (!result)
+ return FALSE;
+ }
+ else
+ {
+ /* result will always be true */
+ if (result)
+ return TRUE;
+ }
+
+ switch (op->type) {
+ case CompMatchOpTypeGroup:
+ value = matchEvalOps (display, op->group.op, op->group.nOp, window);
+ break;
+ case CompMatchOpTypeExp:
+ default:
+ value = (*op->exp.e.eval) (display, window, op->exp.e.priv);
+ break;
+ }
+
+ if (op->any.flags & MATCH_OP_NOT_MASK)
+ value = !value;
+
+ if (op->any.flags & MATCH_OP_AND_MASK)
+ result = (result && value);
+ else
+ result = (result || value);
+
+ op++;
+ }
+
+ return result;
+}
+
+Bool
+matchEval (CompMatch *match,
+ CompWindow *window)
+{
+ if (match->display)
+ return matchEvalOps (match->display, match->op, match->nOp, window);
+
+ return FALSE;
+}
+
+static Bool
+matchEvalTypeExp (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate private)
+{
+ return (private.uval & window->wmType);
+}
+
+static Bool
+matchEvalStateExp (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate private)
+{
+ return (private.uval & window->state);
+}
+
+static Bool
+matchEvalIdExp (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate private)
+{
+ return (private.val == window->id);
+}
+
+static Bool
+matchEvalOverrideRedirectExp (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate private)
+{
+ Bool overrideRedirect = window->attrib.override_redirect;
+ return ((private.val == 1 && overrideRedirect) ||
+ (private.val == 0 && !overrideRedirect));
+}
+
+static Bool
+matchEvalAlphaExp (CompDisplay *display,
+ CompWindow *window,
+ CompPrivate private)
+{
+ return ((private.val && window->alpha) ||
+ (!private.val && !window->alpha));
+}
+
+void
+matchInitExp (CompDisplay *display,
+ CompMatchExp *exp,
+ const char *value)
+{
+ if (strncmp (value, "xid=", 4) == 0)
+ {
+ exp->eval = matchEvalIdExp;
+ exp->priv.val = strtol (value + 4, NULL, 0);
+ }
+ else if (strncmp (value, "state=", 6) == 0)
+ {
+ exp->eval = matchEvalStateExp;
+ exp->priv.uval = windowStateFromString (value + 6);
+ }
+ else if (strncmp (value, "override_redirect=", 18) == 0)
+ {
+ exp->eval = matchEvalOverrideRedirectExp;
+ exp->priv.val = strtol (value + 18, NULL, 0);
+ }
+ else if (strncmp (value, "rgba=", 5) == 0)
+ {
+ exp->eval = matchEvalAlphaExp;
+ exp->priv.val = strtol (value + 5, NULL, 0);
+ }
+ else
+ {
+ if (strncmp (value, "type=", 5) == 0)
+ value += 5;
+
+ exp->eval = matchEvalTypeExp;
+ exp->priv.uval = windowTypeFromString (value);
+ }
+}
+
+static void
+matchUpdateMatchOptions (CompOption *option,
+ int nOption)
+{
+ while (nOption--)
+ {
+ switch (option->type) {
+ case CompOptionTypeMatch:
+ if (option->value.match.display)
+ matchUpdate (option->value.match.display, &option->value.match);
+ break;
+ case CompOptionTypeList:
+ if (option->value.list.type == CompOptionTypeMatch)
+ {
+ int i;
+
+ for (i = 0; i < option->value.list.nValue; i++)
+ if (option->value.list.value[i].match.display)
+ matchUpdate (option->value.list.value[i].match.display,
+ &option->value.list.value[i].match);
+ }
+ default:
+ break;
+ }
+
+ option++;
+ }
+}
+
+void
+matchExpHandlerChanged (CompDisplay *display)
+{
+ CompOption *option;
+ int nOption;
+ CompPlugin *p;
+ CompScreen *s;
+
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, &display->base, &nOption);
+ matchUpdateMatchOptions (option, nOption);
+ }
+
+ for (s = display->screens; s; s = s->next)
+ {
+ for (p = getPlugins (); p; p = p->next)
+ {
+ if (!p->vTable->getObjectOptions)
+ continue;
+
+ option = (*p->vTable->getObjectOptions) (p, &s->base, &nOption);
+ matchUpdateMatchOptions (option, nOption);
+ }
+ }
+}
+
+void
+matchPropertyChanged (CompDisplay *display,
+ CompWindow *w)
+{
+}
diff --git a/src/matrix.c b/src/matrix.c
new file mode 100644
index 0000000..8430f02
--- /dev/null
+++ b/src/matrix.c
@@ -0,0 +1,369 @@
+/*
+ * Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * From Mesa 3-D graphics library.
+ */
+
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+/**
+ * Identity matrix.
+ */
+static float identity[16] = {
+ 1.0, 0.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0
+};
+
+#define A(row, col) a[(col << 2) + row]
+#define B(row, col) b[(col << 2) + row]
+#define P(row, col) product[(col << 2) + row]
+
+/**
+ * Perform a full 4x4 matrix multiplication.
+ *
+ * \param a matrix.
+ * \param b matrix.
+ * \param product will receive the product of \p a and \p b.
+ *
+ * \warning Is assumed that \p product != \p b. \p product == \p a is allowed.
+ *
+ * \note KW: 4*16 = 64 multiplications
+ *
+ * \author This \c matmul was contributed by Thomas Malik
+ */
+static void
+matmul4 (float *product,
+ const float *a,
+ const float *b)
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ const float ai0 = A(i,0), ai1 = A(i,1), ai2 = A(i,2), ai3 = A(i,3);
+
+ P(i,0) = ai0 * B(0,0) + ai1 * B(1,0) + ai2 * B(2,0) + ai3 * B(3,0);
+ P(i,1) = ai0 * B(0,1) + ai1 * B(1,1) + ai2 * B(2,1) + ai3 * B(3,1);
+ P(i,2) = ai0 * B(0,2) + ai1 * B(1,2) + ai2 * B(2,2) + ai3 * B(3,2);
+ P(i,3) = ai0 * B(0,3) + ai1 * B(1,3) + ai2 * B(2,3) + ai3 * B(3,3);
+ }
+}
+
+void
+matrixMultiply (CompTransform *product,
+ const CompTransform *transformA,
+ const CompTransform *transformB)
+{
+ matmul4 (product->m, transformA->m, transformB->m);
+}
+
+/**
+ * Multiply the 1x4 vector v with the 4x4 matrix a.
+ *
+ * \param a matrix.
+ * \param v vector.
+ * \param product will receive the product of \p a and \p v.
+ *
+ */
+void
+matrixMultiplyVector (CompVector *product,
+ const CompVector *vector,
+ const CompTransform *transform)
+{
+ float vec[4];
+ const float *a = transform->m;
+ const float *b = vector->v;
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ vec[i] = A(i,0) * B(0,0) + A(i,1) * B(1,0) +
+ A(i,2) * B(2,0) + A(i,3) * B(3,0);
+ }
+
+ memcpy (product->v, vec, sizeof (vec));
+}
+
+void
+matrixVectorDiv (CompVector *vector)
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ vector->v[i] /= vector->v[3];
+}
+
+#undef A
+#undef B
+#undef P
+
+/**
+ * Generate a 4x4 transformation matrix from glRotate parameters, and
+ * post-multiply the input matrix by it.
+ *
+ * \author
+ * This function was contributed by Erich Boleyn (erich@uruk.org).
+ * Optimizations contributed by Rudolf Opalla (rudi@khm.de).
+ */
+void
+matrixRotate (CompTransform *transform,
+ float angle,
+ float x,
+ float y,
+ float z)
+{
+ float xx, yy, zz, xy, yz, zx, xs, ys, zs, one_c, s, c;
+ float m[16];
+ Bool optimized;
+
+ s = (float) sin (angle * DEG2RAD);
+ c = (float) cos (angle * DEG2RAD);
+
+ memcpy (m, identity, sizeof (float) * 16);
+ optimized = FALSE;
+
+#define M(row, col) m[col * 4 + row]
+
+ if (x == 0.0f)
+ {
+ if (y == 0.0f)
+ {
+ if (z != 0.0f)
+ {
+ optimized = TRUE;
+ /* rotate only around z-axis */
+ M(0,0) = c;
+ M(1,1) = c;
+ if (z < 0.0f)
+ {
+ M(0,1) = s;
+ M(1,0) = -s;
+ }
+ else
+ {
+ M(0,1) = -s;
+ M(1,0) = s;
+ }
+ }
+ }
+ else if (z == 0.0f)
+ {
+ optimized = TRUE;
+ /* rotate only around y-axis */
+ M(0,0) = c;
+ M(2,2) = c;
+ if (y < 0.0f)
+ {
+ M(0,2) = -s;
+ M(2,0) = s;
+ }
+ else
+ {
+ M(0,2) = s;
+ M(2,0) = -s;
+ }
+ }
+ }
+ else if (y == 0.0f)
+ {
+ if (z == 0.0f)
+ {
+ optimized = TRUE;
+ /* rotate only around x-axis */
+ M(1,1) = c;
+ M(2,2) = c;
+ if (x < 0.0f)
+ {
+ M(1,2) = s;
+ M(2,1) = -s;
+ }
+ else
+ {
+ M(1,2) = -s;
+ M(2,1) = s;
+ }
+ }
+ }
+
+ if (!optimized)
+ {
+ const float mag = sqrtf (x * x + y * y + z * z);
+
+ if (mag <= 1.0e-4)
+ {
+ /* no rotation, leave mat as-is */
+ return;
+ }
+
+ x /= mag;
+ y /= mag;
+ z /= mag;
+
+
+ /*
+ * Arbitrary axis rotation matrix.
+ *
+ * This is composed of 5 matrices, Rz, Ry, T, Ry', Rz', multiplied
+ * like so: Rz * Ry * T * Ry' * Rz'. T is the final rotation
+ * (which is about the X-axis), and the two composite transforms
+ * Ry' * Rz' and Rz * Ry are (respectively) the rotations necessary
+ * from the arbitrary axis to the X-axis then back. They are
+ * all elementary rotations.
+ *
+ * Rz' is a rotation about the Z-axis, to bring the axis vector
+ * into the x-z plane. Then Ry' is applied, rotating about the
+ * Y-axis to bring the axis vector parallel with the X-axis. The
+ * rotation about the X-axis is then performed. Ry and Rz are
+ * simply the respective inverse transforms to bring the arbitrary
+ * axis back to it's original orientation. The first transforms
+ * Rz' and Ry' are considered inverses, since the data from the
+ * arbitrary axis gives you info on how to get to it, not how
+ * to get away from it, and an inverse must be applied.
+ *
+ * The basic calculation used is to recognize that the arbitrary
+ * axis vector (x, y, z), since it is of unit length, actually
+ * represents the sines and cosines of the angles to rotate the
+ * X-axis to the same orientation, with theta being the angle about
+ * Z and phi the angle about Y (in the order described above)
+ * as follows:
+ *
+ * cos ( theta ) = x / sqrt ( 1 - z^2 )
+ * sin ( theta ) = y / sqrt ( 1 - z^2 )
+ *
+ * cos ( phi ) = sqrt ( 1 - z^2 )
+ * sin ( phi ) = z
+ *
+ * Note that cos ( phi ) can further be inserted to the above
+ * formulas:
+ *
+ * cos ( theta ) = x / cos ( phi )
+ * sin ( theta ) = y / sin ( phi )
+ *
+ * ...etc. Because of those relations and the standard trigonometric
+ * relations, it is pssible to reduce the transforms down to what
+ * is used below. It may be that any primary axis chosen will give the
+ * same results (modulo a sign convention) using thie method.
+ *
+ * Particularly nice is to notice that all divisions that might
+ * have caused trouble when parallel to certain planes or
+ * axis go away with care paid to reducing the expressions.
+ * After checking, it does perform correctly under all cases, since
+ * in all the cases of division where the denominator would have
+ * been zero, the numerator would have been zero as well, giving
+ * the expected result.
+ */
+
+ xx = x * x;
+ yy = y * y;
+ zz = z * z;
+ xy = x * y;
+ yz = y * z;
+ zx = z * x;
+ xs = x * s;
+ ys = y * s;
+ zs = z * s;
+ one_c = 1.0f - c;
+
+ /* We already hold the identity-matrix so we can skip some statements */
+ M(0,0) = (one_c * xx) + c;
+ M(0,1) = (one_c * xy) - zs;
+ M(0,2) = (one_c * zx) + ys;
+/* M(0,3) = 0.0F; */
+
+ M(1,0) = (one_c * xy) + zs;
+ M(1,1) = (one_c * yy) + c;
+ M(1,2) = (one_c * yz) - xs;
+/* M(1,3) = 0.0F; */
+
+ M(2,0) = (one_c * zx) - ys;
+ M(2,1) = (one_c * yz) + xs;
+ M(2,2) = (one_c * zz) + c;
+/* M(2,3) = 0.0F; */
+
+/*
+ M(3,0) = 0.0F;
+ M(3,1) = 0.0F;
+ M(3,2) = 0.0F;
+ M(3,3) = 1.0F;
+*/
+ }
+#undef M
+
+ matmul4 (transform->m, transform->m, m);
+}
+
+/**
+ * Multiply a matrix with a general scaling matrix.
+ *
+ * \param matrix matrix.
+ * \param x x axis scale factor.
+ * \param y y axis scale factor.
+ * \param z z axis scale factor.
+ *
+ * Multiplies in-place the elements of \p matrix by the scale factors.
+ */
+void
+matrixScale (CompTransform *transform,
+ float x,
+ float y,
+ float z)
+{
+ float *m = transform->m;
+
+ m[0] *= x; m[4] *= y; m[8] *= z;
+ m[1] *= x; m[5] *= y; m[9] *= z;
+ m[2] *= x; m[6] *= y; m[10] *= z;
+ m[3] *= x; m[7] *= y; m[11] *= z;
+}
+
+/**
+ * Multiply a matrix with a translation matrix.
+ *
+ * \param matrix matrix.
+ * \param x translation vector x coordinate.
+ * \param y translation vector y coordinate.
+ * \param z translation vector z coordinate.
+ *
+ * Adds the translation coordinates to the elements of \p matrix in-place.
+ */
+void
+matrixTranslate (CompTransform *transform,
+ float x,
+ float y,
+ float z)
+{
+ float *m = transform->m;
+
+ m[12] = m[0] * x + m[4] * y + m[8] * z + m[12];
+ m[13] = m[1] * x + m[5] * y + m[9] * z + m[13];
+ m[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
+ m[15] = m[3] * x + m[7] * y + m[11] * z + m[15];
+}
+
+void
+matrixGetIdentity (CompTransform *transform)
+{
+ memcpy (transform->m, identity, sizeof (float) * 16);
+}
diff --git a/src/metadata.c b/src/metadata.c
new file mode 100644
index 0000000..f5f92a0
--- /dev/null
+++ b/src/metadata.c
@@ -0,0 +1,1467 @@
+/*
+ * Copyright © 2007 Dennis Kasprzyk
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Authors: Dennis Kasprzyk <onestone@deltatauchi.de>
+ * David Reveman <davidr@novell.com>
+ */
+
+#include <string.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <locale.h>
+
+#include <compiz-core.h>
+
+#define HOME_METADATADIR ".compiz/metadata"
+#define EXTENSION ".xml"
+
+Bool
+compInitMetadata (CompMetadata *metadata)
+{
+ metadata->path = strdup ("core");
+ if (!metadata->path)
+ return FALSE;
+
+ metadata->doc = NULL;
+ metadata->nDoc = 0;
+
+ return TRUE;
+}
+
+Bool
+compInitPluginMetadata (CompMetadata *metadata,
+ const char *plugin)
+{
+ char str[1024];
+
+ snprintf (str, 1024, "plugin[@name=\"%s\"]", plugin);
+
+ metadata->path = strdup (str);
+ if (!metadata->path)
+ return FALSE;
+
+ metadata->doc = NULL;
+ metadata->nDoc = 0;
+
+ return TRUE;
+}
+
+void
+compFiniMetadata (CompMetadata *metadata)
+{
+ int i;
+
+ for (i = 0; i < metadata->nDoc; i++)
+ xmlFreeDoc (metadata->doc[i]);
+
+ if (metadata->doc)
+ free (metadata->doc);
+
+ free (metadata->path);
+}
+
+static xmlDoc *
+readXmlFile (const char *path,
+ const char *name)
+{
+ char *file;
+ int length = strlen (name) + strlen (EXTENSION) + 1;
+ xmlDoc *doc = NULL;
+ FILE *fp;
+
+ if (path)
+ length += strlen (path) + 1;
+
+ file = malloc (length);
+ if (!file)
+ return NULL;
+
+ if (path)
+ sprintf (file, "%s/%s%s", path, name, EXTENSION);
+ else
+ sprintf (file, "%s%s", name, EXTENSION);
+
+ fp = fopen (file, "r");
+ if (!fp)
+ {
+ free (file);
+ return NULL;
+ }
+
+ fclose (fp);
+
+ doc = xmlReadFile (file, NULL, 0);
+
+ free (file);
+
+ return doc;
+}
+
+static Bool
+addMetadataFromFilename (CompMetadata *metadata,
+ const char *path,
+ const char *file)
+{
+ xmlDoc **d, *doc;
+
+ doc = readXmlFile (path, file);
+ if (!doc)
+ return FALSE;
+
+ d = realloc (metadata->doc, (metadata->nDoc + 1) * sizeof (xmlDoc *));
+ if (!d)
+ {
+ xmlFreeDoc (doc);
+ return FALSE;
+ }
+
+ d[metadata->nDoc++] = doc;
+ metadata->doc = d;
+
+ return TRUE;
+}
+
+Bool
+compAddMetadataFromFile (CompMetadata *metadata,
+ const char *file)
+{
+ char *home;
+ Bool status = FALSE;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ char *path;
+
+ path = malloc (strlen (home) + strlen (HOME_METADATADIR) + 2);
+ if (path)
+ {
+ sprintf (path, "%s/%s", home, HOME_METADATADIR);
+ status |= addMetadataFromFilename (metadata, path, file);
+ free (path);
+ }
+ }
+
+ status |= addMetadataFromFilename (metadata, METADATADIR, file);
+ if (!status)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Unable to parse XML metadata from file \"%s%s\"",
+ file, EXTENSION);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+Bool
+compAddMetadataFromString (CompMetadata *metadata,
+ const char *string)
+{
+ xmlDoc **d, *doc;
+
+ doc = xmlReadMemory (string, strlen (string), NULL, NULL, 0);
+ if (!doc)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Unable to parse XML metadata");
+
+ return FALSE;
+ }
+
+ d = realloc (metadata->doc, (metadata->nDoc + 1) * sizeof (xmlDoc *));
+ if (!d)
+ {
+ xmlFreeDoc (doc);
+ return FALSE;
+ }
+
+ d[metadata->nDoc++] = doc;
+ metadata->doc = d;
+
+ return TRUE;
+}
+
+Bool
+compAddMetadataFromIO (CompMetadata *metadata,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx)
+{
+ xmlDoc **d, *doc;
+
+ doc = xmlReadIO (ioread, ioclose, ioctx, NULL, NULL, 0);
+ if (!doc)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Unable to parse XML metadata");
+
+ return FALSE;
+ }
+
+ d = realloc (metadata->doc, (metadata->nDoc + 1) * sizeof (xmlDoc *));
+ if (!d)
+ {
+ xmlFreeDoc (doc);
+ return FALSE;
+ }
+
+ d[metadata->nDoc++] = doc;
+ metadata->doc = d;
+
+ return TRUE;
+}
+
+typedef struct _CompIOCtx {
+ int offset;
+ const char *name;
+ const CompMetadataOptionInfo *displayOInfo;
+ int nDisplayOInfo;
+ const CompMetadataOptionInfo *screenOInfo;
+ int nScreenOInfo;
+} CompIOCtx;
+
+static int
+readPluginXmlCallback (void *context,
+ char *buffer,
+ int length)
+{
+ CompIOCtx *ctx = (CompIOCtx *) context;
+ int offset = ctx->offset;
+ int i, j;
+
+ i = compReadXmlChunk ("<compiz><plugin name=\"", &offset, buffer, length);
+ i += compReadXmlChunk (ctx->name, &offset, buffer + i, length - i);
+ i += compReadXmlChunk ("\">", &offset, buffer + i, length - i);
+
+ if (ctx->nDisplayOInfo)
+ {
+ i += compReadXmlChunk ("<display>", &offset, buffer + i, length - i);
+
+ for (j = 0; j < ctx->nDisplayOInfo; j++)
+ i += compReadXmlChunkFromMetadataOptionInfo (&ctx->displayOInfo[j],
+ &offset,
+ buffer + i,
+ length - i);
+
+ i += compReadXmlChunk ("</display>", &offset, buffer + i, length - i);
+ }
+
+ if (ctx->nScreenOInfo)
+ {
+ i += compReadXmlChunk ("<screen>", &offset, buffer + i, length - i);
+
+ for (j = 0; j < ctx->nScreenOInfo; j++)
+ i += compReadXmlChunkFromMetadataOptionInfo (&ctx->screenOInfo[j],
+ &offset,
+ buffer + i,
+ length - i);
+
+ i += compReadXmlChunk ("</screen>", &offset, buffer + i, length - i);
+ }
+
+ i += compReadXmlChunk ("</plugin></compiz>", &offset, buffer + i,
+ length - i);
+
+ if (!offset && length > i)
+ buffer[i++] = '\0';
+
+ ctx->offset += i;
+
+ return i;
+}
+
+Bool
+compInitPluginMetadataFromInfo (CompMetadata *metadata,
+ const char *plugin,
+ const CompMetadataOptionInfo *displayOptionInfo,
+ int nDisplayOptionInfo,
+ const CompMetadataOptionInfo *screenOptionInfo,
+ int nScreenOptionInfo)
+{
+ if (!compInitPluginMetadata (metadata, plugin))
+ return FALSE;
+
+ if (nDisplayOptionInfo || nScreenOptionInfo)
+ {
+ CompIOCtx ctx;
+
+ ctx.offset = 0;
+ ctx.name = plugin;
+ ctx.displayOInfo = displayOptionInfo;
+ ctx.nDisplayOInfo = nDisplayOptionInfo;
+ ctx.screenOInfo = screenOptionInfo;
+ ctx.nScreenOInfo = nScreenOptionInfo;
+
+ if (!compAddMetadataFromIO (metadata,
+ readPluginXmlCallback, NULL,
+ (void *) &ctx))
+ {
+ compFiniMetadata (metadata);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+typedef struct _CompXPath {
+ xmlXPathObjectPtr obj;
+ xmlXPathContextPtr ctx;
+ xmlDocPtr doc;
+} CompXPath;
+
+static Bool
+initXPathFromMetadataPath (CompXPath *xPath,
+ CompMetadata *metadata,
+ const xmlChar *path)
+{
+ xmlXPathObjectPtr obj;
+ xmlXPathContextPtr ctx;
+ int i;
+
+ for (i = 0; i < metadata->nDoc; i++)
+ {
+ ctx = xmlXPathNewContext (metadata->doc[i]);
+ if (ctx)
+ {
+ obj = xmlXPathEvalExpression (path, ctx);
+ if (obj)
+ {
+ if (obj->nodesetval && obj->nodesetval->nodeNr)
+ {
+ xPath->ctx = ctx;
+ xPath->obj = obj;
+ xPath->doc = metadata->doc[i];
+
+ return TRUE;
+ }
+
+ xmlXPathFreeObject (obj);
+ }
+
+ xmlXPathFreeContext (ctx);
+ }
+ }
+
+ return FALSE;
+}
+
+static Bool
+initXPathFromMetadataPathElement (CompXPath *xPath,
+ CompMetadata *metadata,
+ const xmlChar *path,
+ const xmlChar *element)
+{
+ char str[1024];
+
+ snprintf (str, 1024, "%s/%s", path, element);
+
+ return initXPathFromMetadataPath (xPath, metadata, BAD_CAST str);
+}
+
+static void
+finiXPath (CompXPath *xPath)
+{
+ xmlXPathFreeObject (xPath->obj);
+ xmlXPathFreeContext (xPath->ctx);
+}
+
+static CompOptionType
+getOptionType (char *name)
+{
+ static struct _TypeMap {
+ char *name;
+ CompOptionType type;
+ } map[] = {
+ { "int", CompOptionTypeInt },
+ { "float", CompOptionTypeFloat },
+ { "string", CompOptionTypeString },
+ { "color", CompOptionTypeColor },
+ { "action", CompOptionTypeAction },
+ { "key", CompOptionTypeKey },
+ { "button", CompOptionTypeButton },
+ { "edge", CompOptionTypeEdge },
+ { "bell", CompOptionTypeBell },
+ { "match", CompOptionTypeMatch },
+ { "list", CompOptionTypeList }
+ };
+ int i;
+
+ for (i = 0; i < sizeof (map) / sizeof (map[0]); i++)
+ if (strcasecmp (name, map[i].name) == 0)
+ return map[i].type;
+
+ return CompOptionTypeBool;
+}
+
+static void
+initBoolValue (CompOptionValue *v,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ v->b = FALSE;
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ if (strcasecmp ((char *) value, "true") == 0)
+ v->b = TRUE;
+
+ xmlFree (value);
+ }
+}
+
+static void
+initIntValue (CompOptionValue *v,
+ CompOptionRestriction *r,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ v->i = (r->i.min + r->i.max) / 2;
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ int i = strtol ((char *) value, NULL, 0);
+
+ if (i >= r->i.min && i <= r->i.max)
+ v->i = i;
+
+ xmlFree (value);
+ }
+}
+
+static void
+initFloatValue (CompOptionValue *v,
+ CompOptionRestriction *r,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+ char *loc;
+
+ v->f = (r->f.min + r->f.max) / 2;
+
+ if (!doc)
+ return;
+
+ loc = setlocale (LC_NUMERIC, NULL);
+ setlocale (LC_NUMERIC, "C");
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ float f = strtod ((char *) value, NULL);
+
+ if (f >= r->f.min && f <= r->f.max)
+ v->f = f;
+
+ xmlFree (value);
+ }
+ setlocale (LC_NUMERIC, loc);
+}
+
+static void
+initStringValue (CompOptionValue *v,
+ CompOptionRestriction *r,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ v->s = strdup ("");
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ free (v->s);
+ v->s = strdup ((char *) value);
+
+ xmlFree (value);
+ }
+}
+
+static void
+initColorValue (CompOptionValue *v,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlNodePtr child;
+
+ v->c[0] = 0x0000;
+ v->c[1] = 0x0000;
+ v->c[2] = 0x0000;
+ v->c[3] = 0xffff;
+
+ if (!doc)
+ return;
+
+ for (child = node->xmlChildrenNode; child; child = child->next)
+ {
+ xmlChar *value;
+ int index;
+
+ if (!xmlStrcmp (child->name, BAD_CAST "red"))
+ index = 0;
+ else if (!xmlStrcmp (child->name, BAD_CAST "green"))
+ index = 1;
+ else if (!xmlStrcmp (child->name, BAD_CAST "blue"))
+ index = 2;
+ else if (!xmlStrcmp (child->name, BAD_CAST "alpha"))
+ index = 3;
+ else
+ continue;
+
+ value = xmlNodeListGetString (child->doc, child->xmlChildrenNode, 1);
+ if (value)
+ {
+ int color = strtol ((char *) value, NULL , 0);
+
+ v->c[index] = MAX (0, MIN (0xffff, color));
+
+ xmlFree (value);
+ }
+ }
+}
+
+static void
+initActionValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompActionState state,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ memset (&v->action, 0, sizeof (v->action));
+
+ v->action.state = state;
+}
+
+static void
+initKeyValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompActionState state,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ memset (&v->action, 0, sizeof (v->action));
+
+ v->action.state = state | CompActionStateInitKey;
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ char *binding = (char *) value;
+
+ if (strcasecmp (binding, "disabled") && *binding)
+ stringToKeyAction (d, binding, &v->action);
+
+ xmlFree (value);
+ }
+
+ if (state & CompActionStateAutoGrab)
+ {
+ CompScreen *s;
+
+ for (s = d->screens; s; s = s->next)
+ addScreenAction (s, &v->action);
+ }
+}
+
+static void
+initButtonValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompActionState state,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ memset (&v->action, 0, sizeof (v->action));
+
+ v->action.state = state | CompActionStateInitButton |
+ CompActionStateInitEdge;
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ char *binding = (char *) value;
+
+ if (strcasecmp (binding, "disabled") && *binding)
+ stringToButtonAction (d, binding, &v->action);
+
+ xmlFree (value);
+ }
+
+ if (state & CompActionStateAutoGrab)
+ {
+ CompScreen *s;
+
+ for (s = d->screens; s; s = s->next)
+ addScreenAction (s, &v->action);
+ }
+}
+
+static void
+initEdgeValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompActionState state,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlNodePtr child;
+ xmlChar *value;
+
+ memset (&v->action, 0, sizeof (v->action));
+
+ v->action.state = state | CompActionStateInitEdge;
+
+ if (!doc)
+ return;
+
+ for (child = node->xmlChildrenNode; child; child = child->next)
+ {
+ value = xmlGetProp (child, BAD_CAST "name");
+ if (value)
+ {
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ if (strcasecmp ((char *) value, edgeToString (i)) == 0)
+ v->action.edgeMask |= (1 << i);
+
+ xmlFree (value);
+ }
+ }
+
+ if (state & CompActionStateAutoGrab)
+ {
+ CompScreen *s;
+
+ for (s = d->screens; s; s = s->next)
+ addScreenAction (s, &v->action);
+ }
+}
+
+static void
+initBellValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompActionState state,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ memset (&v->action, 0, sizeof (v->action));
+
+ v->action.state = state | CompActionStateInitBell;
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ if (strcasecmp ((char *) value, "true") == 0)
+ v->action.bell = TRUE;
+
+ xmlFree (value);
+ }
+}
+
+static void
+initMatchValue (CompDisplay *d,
+ CompOptionValue *v,
+ Bool helper,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlChar *value;
+
+ matchInit (&v->match);
+
+ if (!doc)
+ return;
+
+ value = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ if (value)
+ {
+ matchAddFromString (&v->match, (char *) value);
+ xmlFree (value);
+ }
+
+ if (!helper)
+ matchUpdate (d, &v->match);
+}
+
+static void
+initListValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompOptionRestriction *r,
+ CompActionState state,
+ Bool helper,
+ xmlDocPtr doc,
+ xmlNodePtr node)
+{
+ xmlNodePtr child;
+
+ v->list.value = NULL;
+ v->list.nValue = 0;
+
+ if (!doc)
+ return;
+
+ for (child = node->xmlChildrenNode; child; child = child->next)
+ {
+ CompOptionValue *value;
+
+ if (xmlStrcmp (child->name, BAD_CAST "value"))
+ continue;
+
+ value = realloc (v->list.value,
+ sizeof (CompOptionValue) * (v->list.nValue + 1));
+ if (value)
+ {
+ switch (v->list.type) {
+ case CompOptionTypeBool:
+ initBoolValue (&value[v->list.nValue], doc, child);
+ break;
+ case CompOptionTypeInt:
+ initIntValue (&value[v->list.nValue], r, doc, child);
+ break;
+ case CompOptionTypeFloat:
+ initFloatValue (&value[v->list.nValue], r, doc, child);
+ break;
+ case CompOptionTypeString:
+ initStringValue (&value[v->list.nValue], r, doc, child);
+ break;
+ case CompOptionTypeColor:
+ initColorValue (&value[v->list.nValue], doc, child);
+ break;
+ case CompOptionTypeAction:
+ initActionValue (d, &value[v->list.nValue], state, doc, child);
+ break;
+ case CompOptionTypeKey:
+ initKeyValue (d, &value[v->list.nValue], state, doc, child);
+ break;
+ case CompOptionTypeButton:
+ initButtonValue (d, &value[v->list.nValue], state, doc, child);
+ break;
+ case CompOptionTypeEdge:
+ initEdgeValue (d, &value[v->list.nValue], state, doc, child);
+ break;
+ case CompOptionTypeBell:
+ initBellValue (d, &value[v->list.nValue], state, doc, child);
+ break;
+ case CompOptionTypeMatch:
+ initMatchValue (d, &value[v->list.nValue], helper, doc, child);
+ default:
+ break;
+ }
+
+ v->list.value = value;
+ v->list.nValue++;
+ }
+ }
+}
+
+static char *
+stringFromMetadataPathElement (CompMetadata *metadata,
+ const char *path,
+ const char *element)
+{
+ char str[1024];
+
+ snprintf (str, 1024, "%s/%s", path, element);
+
+ return compGetStringFromMetadataPath (metadata, str);
+}
+
+static Bool
+boolFromMetadataPathElement (CompMetadata *metadata,
+ const char *path,
+ const char *element,
+ Bool defaultValue)
+{
+ Bool value = FALSE;
+ char *str;
+
+ str = stringFromMetadataPathElement (metadata, path, element);
+ if (!str)
+ return defaultValue;
+
+ if (strcasecmp (str, "true") == 0)
+ value = TRUE;
+
+ free (str);
+
+ return value;
+}
+
+static void
+initIntRestriction (CompMetadata *metadata,
+ CompOptionRestriction *r,
+ const char *path)
+{
+ char *value;
+
+ r->i.min = MINSHORT;
+ r->i.max = MAXSHORT;
+
+ value = stringFromMetadataPathElement (metadata, path, "min");
+ if (value)
+ {
+ r->i.min = strtol ((char *) value, NULL, 0);
+ free (value);
+ }
+
+ value = stringFromMetadataPathElement (metadata, path, "max");
+ if (value)
+ {
+ r->i.max = strtol ((char *) value, NULL, 0);
+ free (value);
+ }
+}
+
+static void
+initFloatRestriction (CompMetadata *metadata,
+ CompOptionRestriction *r,
+ const char *path)
+{
+ char *value;
+ char *loc;
+
+ r->f.min = MINSHORT;
+ r->f.max = MAXSHORT;
+ r->f.precision = 0.1f;
+
+ loc = setlocale (LC_NUMERIC, NULL);
+ setlocale (LC_NUMERIC, "C");
+ value = stringFromMetadataPathElement (metadata, path, "min");
+ if (value)
+ {
+ r->f.min = strtod ((char *) value, NULL);
+ free (value);
+ }
+
+ value = stringFromMetadataPathElement (metadata, path, "max");
+ if (value)
+ {
+ r->f.max = strtod ((char *) value, NULL);
+ free (value);
+ }
+
+ value = stringFromMetadataPathElement (metadata, path, "precision");
+ if (value)
+ {
+ r->f.precision = strtod ((char *) value, NULL);
+ free (value);
+ }
+
+ setlocale (LC_NUMERIC, loc);
+}
+
+static void
+initActionState (CompMetadata *metadata,
+ CompOptionType type,
+ CompActionState *state,
+ const char *path)
+{
+ static struct _StateMap {
+ char *name;
+ CompActionState state;
+ } map[] = {
+ { "key", CompActionStateInitKey },
+ { "button", CompActionStateInitButton },
+ { "bell", CompActionStateInitBell },
+ { "edge", CompActionStateInitEdge },
+ { "edgednd", CompActionStateInitEdgeDnd }
+ };
+ int i;
+ CompXPath xPath;
+ char *grab;
+
+ *state = CompActionStateAutoGrab;
+
+ grab = stringFromMetadataPathElement (metadata, path, "passive_grab");
+ if (grab)
+ {
+ if (strcmp (grab, "false") == 0)
+ *state = 0;
+
+ free (grab);
+ }
+
+ if (type == CompOptionTypeEdge)
+ {
+ char *noEdgeDelay;
+
+ noEdgeDelay = stringFromMetadataPathElement (metadata, path, "nodelay");
+ if (noEdgeDelay)
+ {
+ if (strcmp (noEdgeDelay, "true") == 0)
+ *state |= CompActionStateNoEdgeDelay;
+
+ free (noEdgeDelay);
+ }
+ }
+
+ if (!initXPathFromMetadataPathElement (&xPath, metadata, BAD_CAST path,
+ BAD_CAST "allowed"))
+ return;
+
+ for (i = 0; i < sizeof (map) / sizeof (map[0]); i++)
+ {
+ xmlChar *value;
+
+ value = xmlGetProp (*xPath.obj->nodesetval->nodeTab,
+ BAD_CAST map[i].name);
+ if (value)
+ {
+ if (xmlStrcmp (value, BAD_CAST "true") == 0)
+ *state |= map[i].state;
+ xmlFree (value);
+ }
+ }
+
+ finiXPath (&xPath);
+}
+
+static Bool
+initOptionFromMetadataPath (CompDisplay *d,
+ CompMetadata *metadata,
+ CompOption *option,
+ const xmlChar *path)
+{
+ CompXPath xPath, xDefaultPath;
+ xmlNodePtr node, defaultNode;
+ xmlDocPtr defaultDoc;
+ xmlChar *name, *type;
+ char *value;
+ CompActionState state = 0;
+ Bool helper = FALSE;
+
+ if (!initXPathFromMetadataPath (&xPath, metadata, path))
+ return FALSE;
+
+ node = *xPath.obj->nodesetval->nodeTab;
+
+ type = xmlGetProp (node, BAD_CAST "type");
+ if (type)
+ {
+ option->type = getOptionType ((char *) type);
+ xmlFree (type);
+ }
+ else
+ {
+ option->type = CompOptionTypeBool;
+ }
+
+ name = xmlGetProp (node, BAD_CAST "name");
+ option->name = strdup ((char *) name);
+ xmlFree (name);
+
+ if (initXPathFromMetadataPathElement (&xDefaultPath, metadata, path,
+ BAD_CAST "default"))
+ {
+ defaultDoc = xDefaultPath.doc;
+ defaultNode = *xDefaultPath.obj->nodesetval->nodeTab;
+ }
+ else
+ {
+ defaultDoc = NULL;
+ defaultNode = NULL;
+ }
+
+ switch (option->type) {
+ case CompOptionTypeBool:
+ initBoolValue (&option->value, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeInt:
+ initIntRestriction (metadata, &option->rest, (char *) path);
+ initIntValue (&option->value, &option->rest, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeFloat:
+ initFloatRestriction (metadata, &option->rest, (char *) path);
+ initFloatValue (&option->value, &option->rest, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeString:
+ initStringValue (&option->value, &option->rest,
+ defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeColor:
+ initColorValue (&option->value, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeAction:
+ initActionState (metadata, option->type, &state, (char *) path);
+ initActionValue (d, &option->value, state, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeKey:
+ initActionState (metadata, option->type, &state, (char *) path);
+ initKeyValue (d, &option->value, state, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeButton:
+ initActionState (metadata, option->type, &state, (char *) path);
+ initButtonValue (d, &option->value, state, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeEdge:
+ initActionState (metadata, option->type, &state, (char *) path);
+ initEdgeValue (d, &option->value, state, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeBell:
+ initActionState (metadata, option->type, &state, (char *) path);
+ initBellValue (d, &option->value, state, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeMatch:
+ helper = boolFromMetadataPathElement (metadata, (char *) path, "helper",
+ FALSE);
+ initMatchValue (d, &option->value, helper, defaultDoc, defaultNode);
+ break;
+ case CompOptionTypeList:
+ value = stringFromMetadataPathElement (metadata, (char *) path, "type");
+ if (value)
+ {
+ option->value.list.type = getOptionType ((char *) value);
+ free (value);
+ }
+ else
+ {
+ option->value.list.type = CompOptionTypeBool;
+ }
+
+ switch (option->value.list.type) {
+ case CompOptionTypeInt:
+ initIntRestriction (metadata, &option->rest, (char *) path);
+ break;
+ case CompOptionTypeFloat:
+ initFloatRestriction (metadata, &option->rest, (char *) path);
+ break;
+ case CompOptionTypeAction:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ initActionState (metadata, option->value.list.type,
+ &state, (char *) path);
+ break;
+ case CompOptionTypeMatch:
+ helper = boolFromMetadataPathElement (metadata, (char *) path,
+ "helper", FALSE);
+ default:
+ break;
+ }
+
+ initListValue (d, &option->value, &option->rest, state, helper,
+ defaultDoc, defaultNode);
+ break;
+ }
+
+ if (defaultDoc)
+ finiXPath (&xDefaultPath);
+
+ finiXPath (&xPath);
+
+ return TRUE;
+}
+
+Bool
+compInitScreenOptionFromMetadata (CompScreen *s,
+ CompMetadata *m,
+ CompOption *o,
+ const char *name)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/screen//option[@name=\"%s\"]", m->path, name);
+
+ return initOptionFromMetadataPath (s->display, m, o, BAD_CAST str);
+}
+
+static void
+finiScreenOptionValue (CompScreen *s,
+ CompOptionValue *v,
+ CompOptionType type)
+{
+ int i;
+
+ switch (type) {
+ case CompOptionTypeAction:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ if (v->action.state & CompActionStateAutoGrab)
+ removeScreenAction (s, &v->action);
+ break;
+ case CompOptionTypeList:
+ for (i = 0; i < v->list.nValue; i++)
+ finiScreenOptionValue (s, &v->list.value[i], v->list.type);
+ default:
+ break;
+ }
+}
+
+void
+compFiniScreenOption (CompScreen *s,
+ CompOption *o)
+{
+ finiScreenOptionValue (s, &o->value, o->type);
+ compFiniOption (o);
+ free (o->name);
+}
+
+Bool
+compInitScreenOptionsFromMetadata (CompScreen *s,
+ CompMetadata *m,
+ const CompMetadataOptionInfo *info,
+ CompOption *opt,
+ int n)
+{
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ if (!compInitScreenOptionFromMetadata (s, m, &opt[i], info[i].name))
+ {
+ compFiniScreenOptions (s, opt, i);
+ return FALSE;
+ }
+
+ if (info[i].initiate)
+ opt[i].value.action.initiate = info[i].initiate;
+
+ if (info[i].terminate)
+ opt[i].value.action.terminate = info[i].terminate;
+ }
+
+ return TRUE;
+}
+
+void
+compFiniScreenOptions (CompScreen *s,
+ CompOption *opt,
+ int n)
+{
+ int i;
+
+ for (i = 0; i < n; i++)
+ compFiniScreenOption (s, &opt[i]);
+}
+
+Bool
+compSetScreenOption (CompScreen *s,
+ CompOption *o,
+ CompOptionValue *value)
+{
+ if (compSetOption (o, value))
+ return TRUE;
+
+ return FALSE;
+}
+
+Bool
+compInitDisplayOptionFromMetadata (CompDisplay *d,
+ CompMetadata *m,
+ CompOption *o,
+ const char *name)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/display//option[@name=\"%s\"]", m->path, name);
+
+ return initOptionFromMetadataPath (d, m, o, BAD_CAST str);
+}
+
+static void
+finiDisplayOptionValue (CompDisplay *d,
+ CompOptionValue *v,
+ CompOptionType type)
+{
+ CompScreen *s;
+ int i;
+
+ switch (type) {
+ case CompOptionTypeAction:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ if (v->action.state & CompActionStateAutoGrab)
+ for (s = d->screens; s; s = s->next)
+ removeScreenAction (s, &v->action);
+ break;
+ case CompOptionTypeList:
+ for (i = 0; i < v->list.nValue; i++)
+ finiDisplayOptionValue (d, &v->list.value[i], v->list.type);
+ default:
+ break;
+ }
+}
+
+void
+compFiniDisplayOption (CompDisplay *d,
+ CompOption *o)
+{
+ finiDisplayOptionValue (d, &o->value, o->type);
+ compFiniOption (o);
+ free (o->name);
+}
+
+Bool
+compInitDisplayOptionsFromMetadata (CompDisplay *d,
+ CompMetadata *m,
+ const CompMetadataOptionInfo *info,
+ CompOption *opt,
+ int n)
+{
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ if (!compInitDisplayOptionFromMetadata (d, m, &opt[i], info[i].name))
+ {
+ compFiniDisplayOptions (d, opt, i);
+ return FALSE;
+ }
+
+ if (info[i].initiate)
+ opt[i].value.action.initiate = info[i].initiate;
+
+ if (info[i].terminate)
+ opt[i].value.action.terminate = info[i].terminate;
+ }
+
+ return TRUE;
+}
+
+void
+compFiniDisplayOptions (CompDisplay *d,
+ CompOption *opt,
+ int n)
+{
+ int i;
+
+ for (i = 0; i < n; i++)
+ compFiniDisplayOption (d, &opt[i]);
+}
+
+Bool
+compSetDisplayOption (CompDisplay *d,
+ CompOption *o,
+ CompOptionValue *value)
+{
+ if (isActionOption (o))
+ {
+ if (o->value.action.state & CompActionStateAutoGrab)
+ {
+ if (setDisplayAction (d, o, value))
+ return TRUE;
+ }
+ else
+ {
+ if (compSetActionOption (o, value))
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (compSetOption (o, value))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+char *
+compGetStringFromMetadataPath (CompMetadata *metadata,
+ const char *path)
+{
+ CompXPath xPath;
+ char *v = NULL;
+
+ if (!initXPathFromMetadataPath (&xPath, metadata, BAD_CAST path))
+ return NULL;
+
+ xPath.obj = xmlXPathConvertString (xPath.obj);
+
+ if (xPath.obj->type == XPATH_STRING && xPath.obj->stringval)
+ v = strdup ((char *) xPath.obj->stringval);
+
+ finiXPath (&xPath);
+
+ return v;
+}
+
+char *
+compGetShortPluginDescription (CompMetadata *m)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/short/child::text()", m->path);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+char *
+compGetLongPluginDescription (CompMetadata *m)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/long/child::text()", m->path);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+char *
+compGetShortScreenOptionDescription (CompMetadata *m,
+ CompOption *o)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/screen//option[@name=\"%s\"]/short/child::text()",
+ m->path, o->name);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+char *
+compGetLongScreenOptionDescription (CompMetadata *m,
+ CompOption *o)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/screen//option[@name=\"%s\"]/long/child::text()",
+ m->path, o->name);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+
+char *
+compGetShortDisplayOptionDescription (CompMetadata *m,
+ CompOption *o)
+{
+ char str[1024];
+
+ sprintf (str,
+ "/compiz/%s/display//option[@name=\"%s\"]/short/child::text()",
+ m->path, o->name);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+
+char *
+compGetLongDisplayOptionDescription (CompMetadata *m,
+ CompOption *o)
+{
+ char str[1024];
+
+ sprintf (str, "/compiz/%s/display//option[@name=\"%s\"]/long/child::text()",
+ m->path, o->name);
+
+ return compGetStringFromMetadataPath (m, str);
+}
+
+int
+compReadXmlChunk (const char *src,
+ int *offset,
+ char *buffer,
+ int length)
+{
+ int srcLength = strlen (src);
+ int srcOffset = *offset;
+
+ if (srcOffset > srcLength)
+ srcOffset = srcLength;
+
+ *offset -= srcOffset;
+
+ src += srcOffset;
+ srcLength -= srcOffset;
+
+ if (srcLength > 0 && length > 0)
+ {
+ if (srcLength < length)
+ length = srcLength;
+
+ memcpy (buffer, src, length);
+
+ return length;
+ }
+
+ return 0;
+}
+
+int
+compReadXmlChunkFromMetadataOptionInfo (const CompMetadataOptionInfo *info,
+ int *offset,
+ char *buffer,
+ int length)
+{
+ int i;
+
+ i = compReadXmlChunk ("<option name=\"", offset, buffer, length);
+ i += compReadXmlChunk (info->name, offset, buffer + i, length - i);
+
+ if (info->type)
+ {
+ i += compReadXmlChunk ("\" type=\"", offset, buffer + i, length - i);
+ i += compReadXmlChunk (info->type, offset, buffer + i, length - i);
+ }
+
+ if (info->data)
+ {
+ i += compReadXmlChunk ("\">", offset, buffer + i, length - i);
+ i += compReadXmlChunk (info->data, offset, buffer + i, length - i);
+ i += compReadXmlChunk ("</option>", offset, buffer + i, length - i);
+ }
+ else
+ {
+ i += compReadXmlChunk ("\"/>", offset, buffer + i, length - i);
+ }
+
+ return i;
+}
diff --git a/src/object.c b/src/object.c
new file mode 100644
index 0000000..e9717c6
--- /dev/null
+++ b/src/object.c
@@ -0,0 +1,147 @@
+/*
+ * Copyright © 2007 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <compiz-core.h>
+
+typedef CompBool (*AllocObjectPrivateIndexProc) (CompObject *parent);
+
+typedef void (*FreeObjectPrivateIndexProc) (CompObject *parent,
+ int index);
+
+typedef CompBool (*ForEachObjectProc) (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure);
+
+typedef char *(*NameObjectProc) (CompObject *object);
+
+typedef CompObject *(*FindObjectProc) (CompObject *parent,
+ const char *name);
+
+struct _CompObjectInfo {
+ const char *name;
+ AllocObjectPrivateIndexProc allocPrivateIndex;
+ FreeObjectPrivateIndexProc freePrivateIndex;
+ ForEachObjectProc forEachObject;
+ NameObjectProc nameObject;
+ FindObjectProc findObject;
+} objectInfo[] = {
+ {
+ "core",
+ allocCoreObjectPrivateIndex,
+ freeCoreObjectPrivateIndex,
+ forEachCoreObject,
+ nameCoreObject,
+ findCoreObject
+ }, {
+ "display",
+ allocDisplayObjectPrivateIndex,
+ freeDisplayObjectPrivateIndex,
+ forEachDisplayObject,
+ nameDisplayObject,
+ findDisplayObject
+ }, {
+ "screen",
+ allocScreenObjectPrivateIndex,
+ freeScreenObjectPrivateIndex,
+ forEachScreenObject,
+ nameScreenObject,
+ findScreenObject
+ }, {
+ "window",
+ allocWindowObjectPrivateIndex,
+ freeWindowObjectPrivateIndex,
+ forEachWindowObject,
+ nameWindowObject,
+ findWindowObject
+ }
+};
+
+void
+compObjectInit (CompObject *object,
+ CompPrivate *privates,
+ CompObjectType type)
+{
+ object->type = type;
+ object->privates = privates;
+ object->parent = NULL;
+}
+
+int
+compObjectAllocatePrivateIndex (CompObject *parent,
+ CompObjectType type)
+{
+ return (*objectInfo[type].allocPrivateIndex) (parent);
+}
+
+void
+compObjectFreePrivateIndex (CompObject *parent,
+ CompObjectType type,
+ int index)
+{
+ (*objectInfo[type].freePrivateIndex) (parent, index);
+}
+
+CompBool
+compObjectForEach (CompObject *parent,
+ CompObjectType type,
+ ObjectCallBackProc proc,
+ void *closure)
+{
+ return (*objectInfo[type].forEachObject) (parent, proc, closure);
+}
+
+CompBool
+compObjectForEachType (CompObject *parent,
+ ObjectTypeCallBackProc proc,
+ void *closure)
+{
+ int i;
+
+ for (i = 0; i < sizeof (objectInfo) / sizeof (objectInfo[0]); i++)
+ if (!(*proc) (i, parent, closure))
+ return FALSE;
+
+ return TRUE;
+}
+
+const char *
+compObjectTypeName (CompObjectType type)
+{
+ return objectInfo[type].name;
+}
+
+char *
+compObjectName (CompObject *object)
+{
+ return (*objectInfo[object->type].nameObject) (object);
+}
+
+CompObject *
+compObjectFind (CompObject *parent,
+ CompObjectType type,
+ const char *name)
+{
+ return (*objectInfo[type].findObject) (parent, name);
+}
diff --git a/src/option.c b/src/option.c
new file mode 100644
index 0000000..3c8e108
--- /dev/null
+++ b/src/option.c
@@ -0,0 +1,965 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <ctype.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+struct _Modifier {
+ char *name;
+ int modifier;
+} modifiers[] = {
+ { "<Shift>", ShiftMask },
+ { "<Control>", ControlMask },
+ { "<Mod1>", Mod1Mask },
+ { "<Mod2>", Mod2Mask },
+ { "<Mod3>", Mod3Mask },
+ { "<Mod4>", Mod4Mask },
+ { "<Mod5>", Mod5Mask },
+ { "<Alt>", CompAltMask },
+ { "<Meta>", CompMetaMask },
+ { "<Super>", CompSuperMask },
+ { "<Hyper>", CompHyperMask },
+ { "<ModeSwitch>", CompModeSwitchMask }
+};
+
+#define N_MODIFIERS (sizeof (modifiers) / sizeof (struct _Modifier))
+
+struct _Edge {
+ char *name;
+ char *modifierName;
+} edges[] = {
+ { "Left", "<LeftEdge>" },
+ { "Right", "<RightEdge>" },
+ { "Top", "<TopEdge>" },
+ { "Bottom", "<BottomEdge>" },
+ { "TopLeft", "<TopLeftEdge>" },
+ { "TopRight", "<TopRightEdge>" },
+ { "BottomLeft", "<BottomLeftEdge>" },
+ { "BottomRight", "<BottomRightEdge>" }
+};
+
+void
+compInitOptionValue (CompOptionValue *v)
+{
+ memset (v, 0, sizeof (CompOptionValue));
+}
+
+void
+compFiniOptionValue (CompOptionValue *v,
+ CompOptionType type)
+{
+ int i;
+
+ switch (type) {
+ case CompOptionTypeString:
+ if (v->s)
+ free (v->s);
+ break;
+ case CompOptionTypeMatch:
+ matchFini (&v->match);
+ break;
+ case CompOptionTypeList:
+ for (i = 0; i < v->list.nValue; i++)
+ compFiniOptionValue (&v->list.value[i], v->list.type);
+
+ if (v->list.value)
+ free (v->list.value);
+ break;
+ default:
+ break;
+ }
+}
+
+void
+compInitOption (CompOption *o)
+{
+ memset (o, 0, sizeof (CompOption));
+}
+
+void
+compFiniOption (CompOption *o)
+{
+ compFiniOptionValue (&o->value, o->type);
+}
+
+CompOption *
+compFindOption (CompOption *option,
+ int nOption,
+ const char *name,
+ int *index)
+{
+ int i;
+
+ for (i = 0; i < nOption; i++)
+ {
+ if (strcmp (option[i].name, name) == 0)
+ {
+ if (index)
+ *index = i;
+
+ return &option[i];
+ }
+ }
+
+ return 0;
+}
+
+Bool
+compSetBoolOption (CompOption *option,
+ CompOptionValue *value)
+{
+ int b;
+
+ b = (value->b) ? TRUE : FALSE;
+
+ if (option->value.b == b)
+ return FALSE;
+
+ option->value.b = b;
+
+ return TRUE;
+}
+
+Bool
+compSetIntOption (CompOption *option,
+ CompOptionValue *value)
+{
+ if (value->i < option->rest.i.min ||
+ value->i > option->rest.i.max ||
+ value->i == option->value.i)
+ return FALSE;
+
+ option->value.i = value->i;
+
+ return TRUE;
+}
+
+Bool
+compSetFloatOption (CompOption *option,
+ CompOptionValue *value)
+{
+ float v, p;
+
+ /* Workaround for float rounding errors */
+ static float equalRange = 1e-5;
+
+ int sign = (value->f < 0 ? -1 : 1);
+
+ p = 1.0f / option->rest.f.precision;
+ v = ((int) (value->f * p + sign * 0.5f)) / p;
+
+ if (v < (option->rest.f.min - equalRange) ||
+ v > (option->rest.f.max + equalRange))
+ return FALSE;
+
+ if (v > (option->value.f - equalRange) &&
+ v < (option->value.f + equalRange))
+ return FALSE;
+
+ option->value.f = v;
+
+ return TRUE;
+}
+
+Bool
+compSetStringOption (CompOption *option,
+ CompOptionValue *value)
+{
+ char *s;
+
+ s = value->s;
+ if (!s)
+ s = "";
+
+ if (option->value.s == s)
+ return FALSE;
+
+ if (option->value.s && s)
+ {
+ if (strcmp (option->value.s, s) == 0)
+ return FALSE;
+ }
+
+ if (option->value.s)
+ free (option->value.s);
+
+ option->value.s = strdup (s);
+
+ return TRUE;
+}
+
+Bool
+compSetColorOption (CompOption *option,
+ CompOptionValue *value)
+{
+ if (memcmp (value->c, option->value.c, sizeof (value->c)) == 0)
+ return FALSE;
+
+ memcpy (option->value.c, value->c, sizeof (value->c));
+
+ return TRUE;
+}
+
+Bool
+compSetActionOption (CompOption *option,
+ CompOptionValue *value)
+{
+ CompAction *action = &option->value.action;
+ CompOptionValue v = *value;
+
+ /* initiate, terminate, priv and state should never be changed */
+ v.action.initiate = action->initiate;
+ v.action.terminate = action->terminate;
+ v.action.state = action->state;
+ v.action.priv = action->priv;
+
+ if (action->type == v.action.type)
+ {
+ switch (option->type) {
+ case CompOptionTypeKey:
+ if (!(action->type & CompBindingTypeKey))
+ return FALSE;
+
+ if (action->key.keycode == v.action.key.keycode &&
+ action->key.modifiers == v.action.key.modifiers)
+ return FALSE;
+ break;
+ case CompOptionTypeButton:
+ if (!(action->type & (CompBindingTypeButton |
+ CompBindingTypeEdgeButton)))
+ return FALSE;
+
+ if (action->type & CompBindingTypeEdgeButton)
+ {
+ if (action->button.button == v.action.button.button &&
+ action->button.modifiers == v.action.button.modifiers &&
+ action->edgeMask == v.action.edgeMask)
+ return FALSE;
+ }
+ else if (action->type & CompBindingTypeButton)
+ {
+ if (action->button.button == v.action.button.button &&
+ action->button.modifiers == v.action.button.modifiers)
+ return FALSE;
+ }
+ break;
+ case CompOptionTypeEdge:
+ if (v.action.edgeMask == action->edgeMask)
+ return FALSE;
+ break;
+ case CompOptionTypeBell:
+ if (v.action.bell == action->bell)
+ return FALSE;
+ break;
+ default:
+ return FALSE;
+ }
+ }
+
+ *action = v.action;
+
+ return TRUE;
+}
+
+Bool
+compSetMatchOption (CompOption *option,
+ CompOptionValue *value)
+{
+ CompDisplay *display = option->value.match.display;
+ CompMatch match;
+
+ if (matchEqual (&option->value.match, &value->match))
+ return FALSE;
+
+ if (!matchCopy (&match, &value->match))
+ return FALSE;
+
+ matchFini (&option->value.match);
+
+ option->value.match.op = match.op;
+ option->value.match.nOp = match.nOp;
+
+ if (display)
+ matchUpdate (display, &option->value.match);
+
+ return TRUE;
+}
+
+Bool
+compSetOptionList (CompOption *option,
+ CompOptionValue *value)
+{
+ CompOption o;
+ Bool status = FALSE;
+ int i, min;
+
+ if (value->list.nValue != option->value.list.nValue)
+ {
+ CompOptionValue *v;
+
+ v = malloc (sizeof (CompOptionValue) * value->list.nValue);
+ if (!v)
+ return FALSE;
+
+ min = MIN (value->list.nValue, option->value.list.nValue);
+
+ for (i = min; i < option->value.list.nValue; i++)
+ {
+ switch (option->value.list.type) {
+ case CompOptionTypeString:
+ if (option->value.list.value[i].s)
+ free (option->value.list.value[i].s);
+ break;
+ case CompOptionTypeMatch:
+ matchFini (&option->value.list.value[i].match);
+ default:
+ break;
+ }
+ }
+
+ memset (v, 0, sizeof (CompOptionValue) * value->list.nValue);
+
+ if (min)
+ memcpy (v, option->value.list.value,
+ sizeof (CompOptionValue) * min);
+
+ if (option->value.list.value)
+ free (option->value.list.value);
+
+ option->value.list.value = v;
+ option->value.list.nValue = value->list.nValue;
+
+ status = TRUE;
+ }
+
+ o = *option;
+ o.type = option->value.list.type;
+
+ for (i = 0; i < value->list.nValue; i++)
+ {
+ o.value = option->value.list.value[i];
+
+ switch (o.type) {
+ case CompOptionTypeBool:
+ status |= compSetBoolOption (&o, &value->list.value[i]);
+ break;
+ case CompOptionTypeInt:
+ status |= compSetIntOption (&o, &value->list.value[i]);
+ break;
+ case CompOptionTypeFloat:
+ status |= compSetFloatOption (&o, &value->list.value[i]);
+ break;
+ case CompOptionTypeString:
+ status |= compSetStringOption (&o, &value->list.value[i]);
+ break;
+ case CompOptionTypeColor:
+ status |= compSetColorOption (&o, &value->list.value[i]);
+ break;
+ case CompOptionTypeMatch:
+ status |= compSetMatchOption (&o, &value->list.value[i]);
+ default:
+ break;
+ }
+
+ option->value.list.value[i] = o.value;
+ }
+
+ return status;
+}
+
+Bool
+compSetOption (CompOption *option,
+ CompOptionValue *value)
+{
+ switch (option->type) {
+ case CompOptionTypeBool:
+ return compSetBoolOption (option, value);
+ case CompOptionTypeInt:
+ return compSetIntOption (option, value);
+ case CompOptionTypeFloat:
+ return compSetFloatOption (option, value);
+ case CompOptionTypeString:
+ return compSetStringOption (option, value);
+ case CompOptionTypeColor:
+ return compSetColorOption (option, value);
+ case CompOptionTypeMatch:
+ return compSetMatchOption (option, value);
+ case CompOptionTypeAction:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ return compSetActionOption (option, value);
+ case CompOptionTypeList:
+ return compSetOptionList (option, value);
+ }
+
+ return FALSE;
+}
+
+Bool
+getBoolOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ Bool defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeBool)
+ if (strcmp (option->name, name) == 0)
+ return option->value.b;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+int
+getIntOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ int defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeInt)
+ if (strcmp (option->name, name) == 0)
+ return option->value.i;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+float
+getFloatOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ float defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeFloat)
+ if (strcmp (option->name, name) == 0)
+ return option->value.f;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+char *
+getStringOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ char *defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeString)
+ if (strcmp (option->name, name) == 0)
+ return option->value.s;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+unsigned short *
+getColorOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ unsigned short *defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeColor)
+ if (strcmp (option->name, name) == 0)
+ return option->value.c;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+CompMatch *
+getMatchOptionNamed (CompOption *option,
+ int nOption,
+ const char *name,
+ CompMatch *defaultValue)
+{
+ while (nOption--)
+ {
+ if (option->type == CompOptionTypeMatch)
+ if (strcmp (option->name, name) == 0)
+ return &option->value.match;
+
+ option++;
+ }
+
+ return defaultValue;
+}
+
+static char *
+stringAppend (char *s,
+ const char *a)
+{
+ char *r;
+ int len;
+
+ len = strlen (a);
+
+ if (s)
+ len += strlen (s);
+
+ r = malloc (len + 1);
+ if (r)
+ {
+ if (s)
+ {
+ sprintf (r, "%s%s", s, a);
+ free (s);
+ }
+ else
+ {
+ sprintf (r, "%s", a);
+ }
+
+ s = r;
+ }
+
+ return s;
+}
+
+static char *
+modifiersToString (CompDisplay *d,
+ unsigned int modMask)
+{
+ char *binding = NULL;
+ int i;
+
+ for (i = 0; i < N_MODIFIERS; i++)
+ {
+ if (modMask & modifiers[i].modifier)
+ binding = stringAppend (binding, modifiers[i].name);
+ }
+
+ return binding;
+}
+
+static char *
+edgeMaskToBindingString (CompDisplay *d,
+ unsigned int edgeMask)
+{
+ char *binding = NULL;
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ if (edgeMask & (1 << i))
+ binding = stringAppend (binding, edges[i].modifierName);
+
+ return binding;
+}
+
+char *
+keyBindingToString (CompDisplay *d,
+ CompKeyBinding *key)
+{
+ char *binding;
+
+ binding = modifiersToString (d, key->modifiers);
+
+ if (key->keycode != 0)
+ {
+ KeySym keysym;
+ char *keyname;
+
+ keysym = XKeycodeToKeysym (d->display, key->keycode, 0);
+ keyname = XKeysymToString (keysym);
+
+ if (keyname)
+ {
+ binding = stringAppend (binding, keyname);
+ }
+ else
+ {
+ char keyCodeStr[256];
+
+ snprintf (keyCodeStr, 256, "0x%x", key->keycode);
+ binding = stringAppend (binding, keyCodeStr);
+ }
+ }
+
+ return binding;
+}
+
+char *
+buttonBindingToString (CompDisplay *d,
+ CompButtonBinding *button)
+{
+ char *binding;
+ char buttonStr[256];
+
+ binding = modifiersToString (d, button->modifiers);
+
+ snprintf (buttonStr, 256, "Button%d", button->button);
+ binding = stringAppend (binding, buttonStr);
+
+ return binding;
+}
+
+char *
+keyActionToString (CompDisplay *d,
+ CompAction *action)
+{
+ char *binding;
+
+ binding = keyBindingToString (d, &action->key);
+ if (!binding)
+ return strdup ("Disabled");
+
+ return binding;
+}
+
+char *
+buttonActionToString (CompDisplay *d,
+ CompAction *action)
+{
+ char *binding, *edge;
+ char buttonStr[256];
+
+ binding = modifiersToString (d, action->button.modifiers);
+ edge = edgeMaskToBindingString (d, action->edgeMask);
+
+ if (edge)
+ {
+ binding = stringAppend (binding, edge);
+ free (edge);
+ }
+
+ snprintf (buttonStr, 256, "Button%d", action->button.button);
+ binding = stringAppend (binding, buttonStr);
+
+ if (!binding)
+ return strdup ("Disabled");
+
+ return binding;
+}
+
+static unsigned int
+stringToModifiers (CompDisplay *d,
+ const char *binding)
+{
+ unsigned int mods = 0;
+ int i;
+
+ for (i = 0; i < N_MODIFIERS; i++)
+ {
+ if (strstr (binding, modifiers[i].name))
+ mods |= modifiers[i].modifier;
+ }
+
+ return mods;
+}
+
+static unsigned int
+bindingStringToEdgeMask (CompDisplay *d,
+ const char *binding)
+{
+ unsigned int edgeMask = 0;
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ if (strstr (binding, edges[i].modifierName))
+ edgeMask |= 1 << i;
+
+ return edgeMask;
+}
+
+Bool
+stringToKeyBinding (CompDisplay *d,
+ const char *binding,
+ CompKeyBinding *key)
+{
+ char *ptr;
+ unsigned int mods;
+ KeySym keysym;
+
+ mods = stringToModifiers (d, binding);
+
+ ptr = strrchr (binding, '>');
+ if (ptr)
+ binding = ptr + 1;
+
+ while (*binding && !isalnum (*binding))
+ binding++;
+
+ if (!*binding)
+ {
+ if (mods)
+ {
+ key->keycode = 0;
+ key->modifiers = mods;
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ keysym = XStringToKeysym (binding);
+ if (keysym != NoSymbol)
+ {
+ KeyCode keycode;
+
+ keycode = XKeysymToKeycode (d->display, keysym);
+ if (keycode)
+ {
+ key->keycode = keycode;
+ key->modifiers = mods;
+
+ return TRUE;
+ }
+ }
+
+ if (strncmp (binding, "0x", 2) == 0)
+ {
+ key->keycode = strtol (binding, NULL, 0);
+ key->modifiers = mods;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+Bool
+stringToButtonBinding (CompDisplay *d,
+ const char *binding,
+ CompButtonBinding *button)
+{
+ char *ptr;
+ unsigned int mods;
+
+ mods = stringToModifiers (d, binding);
+
+ ptr = strrchr (binding, '>');
+ if (ptr)
+ binding = ptr + 1;
+
+ while (*binding && !isalnum (*binding))
+ binding++;
+
+ if (strncmp (binding, "Button", strlen ("Button")) == 0)
+ {
+ int buttonNum;
+
+ if (sscanf (binding + strlen ("Button"), "%d", &buttonNum) == 1)
+ {
+ button->button = buttonNum;
+ button->modifiers = mods;
+
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+void
+stringToKeyAction (CompDisplay *d,
+ const char *binding,
+ CompAction *action)
+{
+ if (stringToKeyBinding (d, binding, &action->key))
+ action->type = CompBindingTypeKey;
+ else
+ action->type = CompBindingTypeNone;
+}
+
+void
+stringToButtonAction (CompDisplay *d,
+ const char *binding,
+ CompAction *action)
+{
+ if (stringToButtonBinding (d, binding, &action->button))
+ {
+ action->edgeMask = bindingStringToEdgeMask (d, binding);
+ if (action->edgeMask)
+ action->type = CompBindingTypeEdgeButton;
+ else
+ action->type = CompBindingTypeButton;
+ }
+ else
+ {
+ action->type = CompBindingTypeNone;
+ }
+}
+
+const char *
+edgeToString (unsigned int edge)
+{
+ return edges[edge].name;
+}
+
+unsigned int
+stringToEdgeMask (const char *edge)
+{
+ unsigned int edgeMask = 0;
+ char *needle;
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ needle = strstr (edge, edgeToString (i));
+ if (needle)
+ {
+ if (needle != edge && isalnum (*(needle - 1)))
+ continue;
+
+ needle += strlen (edgeToString (i));
+
+ if (*needle && isalnum (*needle))
+ continue;
+
+ edgeMask |= 1 << i;
+ }
+ }
+
+ return edgeMask;
+}
+
+char *
+edgeMaskToString (unsigned int edgeMask)
+{
+ char *edge = NULL;
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (edgeMask & (1 << i))
+ {
+ if (edge)
+ edge = stringAppend (edge, " | ");
+
+ edge = stringAppend (edge, edgeToString (i));
+ }
+ }
+
+ if (!edge)
+ return strdup ("");
+
+ return edge;
+}
+
+Bool
+stringToColor (const char *color,
+ unsigned short *rgba)
+{
+ int c[4];
+
+ if (sscanf (color, "#%2x%2x%2x%2x", &c[0], &c[1], &c[2], &c[3]) == 4)
+ {
+ rgba[0] = c[0] << 8 | c[0];
+ rgba[1] = c[1] << 8 | c[1];
+ rgba[2] = c[2] << 8 | c[2];
+ rgba[3] = c[3] << 8 | c[3];
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+char *
+colorToString (unsigned short *rgba)
+{
+ char tmp[256];
+
+ snprintf (tmp, 256, "#%.2x%.2x%.2x%.2x",
+ rgba[0] / 256, rgba[1] / 256, rgba[2] / 256, rgba[3] / 256);
+
+ return strdup (tmp);
+}
+
+const char *
+optionTypeToString (CompOptionType type)
+{
+ switch (type) {
+ case CompOptionTypeBool:
+ return "bool";
+ case CompOptionTypeInt:
+ return "int";
+ case CompOptionTypeFloat:
+ return "float";
+ case CompOptionTypeString:
+ return "string";
+ case CompOptionTypeColor:
+ return "color";
+ case CompOptionTypeAction:
+ return "action";
+ case CompOptionTypeKey:
+ return "key";
+ case CompOptionTypeButton:
+ return "button";
+ case CompOptionTypeEdge:
+ return "edge";
+ case CompOptionTypeBell:
+ return "bell";
+ case CompOptionTypeMatch:
+ return "match";
+ case CompOptionTypeList:
+ return "list";
+ }
+
+ return "unknown";
+}
+
+Bool
+isActionOption (CompOption *option)
+{
+ switch (option->type) {
+ case CompOptionTypeAction:
+ case CompOptionTypeKey:
+ case CompOptionTypeButton:
+ case CompOptionTypeEdge:
+ case CompOptionTypeBell:
+ return TRUE;
+ default:
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/src/paint.c b/src/paint.c
new file mode 100644
index 0000000..013cd10
--- /dev/null
+++ b/src/paint.c
@@ -0,0 +1,1267 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <compiz-core.h>
+
+ScreenPaintAttrib defaultScreenPaintAttrib = {
+ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -DEFAULT_Z_CAMERA
+};
+
+WindowPaintAttrib defaultWindowPaintAttrib = {
+ OPAQUE, BRIGHT, COLOR, 1.0f, 1.0f, 0.0f, 0.0f
+};
+
+void
+preparePaintScreen (CompScreen *screen,
+ int msSinceLastPaint)
+{
+}
+
+void
+donePaintScreen (CompScreen *screen)
+{
+}
+
+void
+applyScreenTransform (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ CompOutput *output,
+ CompTransform *transform)
+{
+ matrixTranslate (transform,
+ sAttrib->xTranslate,
+ sAttrib->yTranslate,
+ sAttrib->zTranslate + sAttrib->zCamera);
+ matrixRotate (transform,
+ sAttrib->xRotate, 0.0f, 1.0f, 0.0f);
+ matrixRotate (transform,
+ sAttrib->vRotate,
+ cosf (sAttrib->xRotate * DEG2RAD),
+ 0.0f,
+ sinf (sAttrib->xRotate * DEG2RAD));
+ matrixRotate (transform,
+ sAttrib->yRotate, 0.0f, 1.0f, 0.0f);
+}
+
+void
+transformToScreenSpace (CompScreen *screen,
+ CompOutput *output,
+ float z,
+ CompTransform *transform)
+{
+ matrixTranslate (transform, -0.5f, -0.5f, z);
+ matrixScale (transform,
+ 1.0f / output->width,
+ -1.0f / output->height,
+ 1.0f);
+ matrixTranslate (transform,
+ -output->region.extents.x1,
+ -output->region.extents.y2,
+ 0.0f);
+}
+
+void
+prepareXCoords (CompScreen *screen,
+ CompOutput *output,
+ float z)
+{
+ glTranslatef (-0.5f, -0.5f, z);
+ glScalef (1.0f / output->width,
+ -1.0f / output->height,
+ 1.0f);
+ glTranslatef (-output->region.extents.x1,
+ -output->region.extents.y2,
+ 0.0f);
+}
+
+void
+paintCursor (CompCursor *c,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ int x1, y1, x2, y2;
+
+ if (!c->image)
+ return;
+
+ x1 = c->x;
+ y1 = c->y;
+ x2 = c->x + c->image->width;
+ y2 = c->y + c->image->height;
+
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ glEnable (GL_BLEND);
+
+ enableTexture (c->screen, &c->image->texture, COMP_TEXTURE_FILTER_FAST);
+
+ glBegin (GL_QUADS);
+
+ glTexCoord2f (COMP_TEX_COORD_X (&c->matrix, x1),
+ COMP_TEX_COORD_Y (&c->matrix, y2));
+ glVertex2i (x1, y2);
+ glTexCoord2f (COMP_TEX_COORD_X (&c->matrix, x2),
+ COMP_TEX_COORD_Y (&c->matrix, y2));
+ glVertex2i (x2, y2);
+ glTexCoord2f (COMP_TEX_COORD_X (&c->matrix, x2),
+ COMP_TEX_COORD_Y (&c->matrix, y1));
+ glVertex2i (x2, y1);
+ glTexCoord2f (COMP_TEX_COORD_X (&c->matrix, x1),
+ COMP_TEX_COORD_Y (&c->matrix, y1));
+ glVertex2i (x1, y1);
+
+ glEnd ();
+
+ disableTexture (c->screen, &c->image->texture);
+
+ glDisable (GL_BLEND);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+}
+
+static void
+paintBackground (CompScreen *s,
+ Region region,
+ Bool transformed)
+{
+ CompTexture *bg = &s->backgroundTexture;
+ BoxPtr pBox = region->rects;
+ int n, nBox = region->numRects;
+ GLfloat *d, *data;
+
+ if (!nBox)
+ return;
+
+ if (s->desktopWindowCount)
+ {
+ if (bg->name)
+ {
+ finiTexture (s, bg);
+ initTexture (s, bg);
+ }
+
+ s->backgroundLoaded = FALSE;
+
+ return;
+ }
+ else
+ {
+ if (!s->backgroundLoaded)
+ updateScreenBackground (s, bg);
+
+ s->backgroundLoaded = TRUE;
+ }
+
+ data = malloc (sizeof (GLfloat) * nBox * 16);
+ if (!data)
+ return;
+
+ d = data;
+ n = nBox;
+ while (n--)
+ {
+ *d++ = COMP_TEX_COORD_X (&bg->matrix, pBox->x1);
+ *d++ = COMP_TEX_COORD_Y (&bg->matrix, pBox->y2);
+
+ *d++ = pBox->x1;
+ *d++ = pBox->y2;
+
+ *d++ = COMP_TEX_COORD_X (&bg->matrix, pBox->x2);
+ *d++ = COMP_TEX_COORD_Y (&bg->matrix, pBox->y2);
+
+ *d++ = pBox->x2;
+ *d++ = pBox->y2;
+
+ *d++ = COMP_TEX_COORD_X (&bg->matrix, pBox->x2);
+ *d++ = COMP_TEX_COORD_Y (&bg->matrix, pBox->y1);
+
+ *d++ = pBox->x2;
+ *d++ = pBox->y1;
+
+ *d++ = COMP_TEX_COORD_X (&bg->matrix, pBox->x1);
+ *d++ = COMP_TEX_COORD_Y (&bg->matrix, pBox->y1);
+
+ *d++ = pBox->x1;
+ *d++ = pBox->y1;
+
+ pBox++;
+ }
+
+ glTexCoordPointer (2, GL_FLOAT, sizeof (GLfloat) * 4, data);
+ glVertexPointer (2, GL_FLOAT, sizeof (GLfloat) * 4, data + 2);
+
+ if (bg->name)
+ {
+ if (transformed)
+ enableTexture (s, bg, COMP_TEXTURE_FILTER_GOOD);
+ else
+ enableTexture (s, bg, COMP_TEXTURE_FILTER_FAST);
+
+ glDrawArrays (GL_QUADS, 0, nBox * 4);
+
+ disableTexture (s, bg);
+ }
+ else
+ {
+ glColor4us (0, 0, 0, 0);
+ glDrawArrays (GL_QUADS, 0, nBox * 4);
+ glColor4usv (defaultColor);
+ }
+
+ free (data);
+}
+
+
+/* This function currently always performs occlusion detection to
+ minimize paint regions. OpenGL precision requirements are no good
+ enough to guarantee that the results from using occlusion detection
+ is the same as without. It's likely not possible to see any
+ difference with most hardware but occlusion detection in the
+ transformed screen case should be made optional for those who do
+ see a difference. */
+static void
+paintOutputRegion (CompScreen *screen,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ static Region tmpRegion = NULL;
+ CompWindow *w;
+ CompCursor *c;
+ int count, windowMask, odMask, i;
+ CompWindow *fullscreenWindow = NULL;
+ CompWalker walk;
+ Bool status;
+ Bool withOffset = FALSE;
+ CompTransform vTransform;
+ int offX, offY;
+ Region clip = region;
+
+ if (!tmpRegion)
+ {
+ tmpRegion = XCreateRegion ();
+ if (!tmpRegion)
+ return;
+ }
+
+ if (mask & PAINT_SCREEN_TRANSFORMED_MASK)
+ {
+ windowMask = PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK;
+ count = 1;
+ }
+ else
+ {
+ windowMask = 0;
+ count = 0;
+ }
+
+ XSubtractRegion (region, &emptyRegion, tmpRegion);
+
+ (*screen->initWindowWalker) (screen, &walk);
+
+ if (!(mask & PAINT_SCREEN_NO_OCCLUSION_DETECTION_MASK))
+ {
+ /* detect occlusions */
+ for (w = (*walk.last) (screen); w; w = (*walk.prev) (w))
+ {
+ if (w->destroyed)
+ continue;
+
+ if (!w->shaded)
+ {
+ if (w->attrib.map_state != IsViewable || !w->damaged)
+ continue;
+ }
+
+ /* copy region */
+ XSubtractRegion (tmpRegion, &emptyRegion, w->clip);
+
+ odMask = PAINT_WINDOW_OCCLUSION_DETECTION_MASK;
+
+ if ((screen->windowOffsetX != 0 || screen->windowOffsetY != 0) &&
+ !windowOnAllViewports (w))
+ {
+ withOffset = TRUE;
+
+ getWindowMovementForOffset (w, screen->windowOffsetX,
+ screen->windowOffsetY,
+ &offX, &offY);
+
+ vTransform = *transform;
+ matrixTranslate (&vTransform, offX, offY, 0);
+
+ XOffsetRegion (w->clip, -offX, -offY);
+
+ odMask |= PAINT_WINDOW_WITH_OFFSET_MASK;
+ status = (*screen->paintWindow) (w, &w->paint, &vTransform,
+ tmpRegion, odMask);
+ }
+ else
+ {
+ withOffset = FALSE;
+ status = (*screen->paintWindow) (w, &w->paint, transform, tmpRegion,
+ odMask);
+ }
+
+ if (status)
+ {
+ if (withOffset)
+ {
+ XOffsetRegion (w->region, offX, offY);
+ XSubtractRegion (tmpRegion, w->region, tmpRegion);
+ XOffsetRegion (w->region, -offX, -offY);
+ }
+ else
+ XSubtractRegion (tmpRegion, w->region, tmpRegion);
+
+ /* unredirect top most fullscreen windows. */
+ if (count == 0 &&
+ screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b)
+ {
+ if (XEqualRegion (w->region, &screen->region) &&
+ !REGION_NOT_EMPTY (tmpRegion))
+ {
+ fullscreenWindow = w;
+ }
+ else
+ {
+ for (i = 0; i < screen->nOutputDev; i++)
+ if (XEqualRegion (w->region,
+ &screen->outputDev[i].region))
+ fullscreenWindow = w;
+ }
+ }
+ }
+
+ if (!w->invisible)
+ count++;
+ }
+ }
+
+ if (fullscreenWindow)
+ unredirectWindow (fullscreenWindow);
+
+ if (!(mask & PAINT_SCREEN_NO_BACKGROUND_MASK))
+ paintBackground (screen, tmpRegion,
+ (mask & PAINT_SCREEN_TRANSFORMED_MASK));
+
+ /* paint all windows from bottom to top */
+ for (w = (*walk.first) (screen); w; w = (*walk.next) (w))
+ {
+ if (w->destroyed)
+ continue;
+
+ if (w == fullscreenWindow)
+ continue;
+
+ if (!w->shaded)
+ {
+ if (w->attrib.map_state != IsViewable || !w->damaged)
+ continue;
+ }
+
+ if (!(mask & PAINT_SCREEN_NO_OCCLUSION_DETECTION_MASK))
+ clip = w->clip;
+
+ if ((screen->windowOffsetX != 0 || screen->windowOffsetY != 0) &&
+ !windowOnAllViewports (w))
+ {
+ getWindowMovementForOffset (w, screen->windowOffsetX,
+ screen->windowOffsetY, &offX, &offY);
+
+ vTransform = *transform;
+ matrixTranslate (&vTransform, offX, offY, 0);
+ (*screen->paintWindow) (w, &w->paint, &vTransform, clip,
+ windowMask | PAINT_WINDOW_WITH_OFFSET_MASK);
+ }
+ else
+ {
+ (*screen->paintWindow) (w, &w->paint, transform, clip,
+ windowMask);
+ }
+ }
+
+ if (walk.fini)
+ (*walk.fini) (screen, &walk);
+
+ /* paint cursors */
+ for (c = screen->cursors; c; c = c->next)
+ (*screen->paintCursor) (c, transform, tmpRegion, 0);
+}
+
+void
+enableOutputClipping (CompScreen *screen,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output)
+{
+ GLdouble h = screen->height;
+
+ GLdouble p1[2] = { region->extents.x1, h - region->extents.y2 };
+ GLdouble p2[2] = { region->extents.x2, h - region->extents.y1 };
+
+ GLdouble halfW = output->width / 2.0;
+ GLdouble halfH = output->height / 2.0;
+
+ GLdouble cx = output->region.extents.x1 + halfW;
+ GLdouble cy = (h - output->region.extents.y2) + halfH;
+
+ GLdouble top[4] = { 0.0, halfH / (cy - p1[1]), 0.0, 0.5 };
+ GLdouble bottom[4] = { 0.0, halfH / (cy - p2[1]), 0.0, 0.5 };
+ GLdouble left[4] = { halfW / (cx - p1[0]), 0.0, 0.0, 0.5 };
+ GLdouble right[4] = { halfW / (cx - p2[0]), 0.0, 0.0, 0.5 };
+
+ glPushMatrix ();
+ glLoadMatrixf (transform->m);
+
+ glClipPlane (GL_CLIP_PLANE0, top);
+ glClipPlane (GL_CLIP_PLANE1, bottom);
+ glClipPlane (GL_CLIP_PLANE2, left);
+ glClipPlane (GL_CLIP_PLANE3, right);
+
+ glEnable (GL_CLIP_PLANE0);
+ glEnable (GL_CLIP_PLANE1);
+ glEnable (GL_CLIP_PLANE2);
+ glEnable (GL_CLIP_PLANE3);
+
+ glPopMatrix ();
+}
+
+void
+disableOutputClipping (CompScreen *screen)
+{
+ glDisable (GL_CLIP_PLANE0);
+ glDisable (GL_CLIP_PLANE1);
+ glDisable (GL_CLIP_PLANE2);
+ glDisable (GL_CLIP_PLANE3);
+}
+
+#define CLIP_PLANE_MASK (PAINT_SCREEN_TRANSFORMED_MASK | \
+ PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK)
+
+void
+paintTransformedOutput (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ CompTransform sTransform = *transform;
+
+ if (mask & PAINT_SCREEN_CLEAR_MASK)
+ clearTargetOutput (screen->display, GL_COLOR_BUFFER_BIT);
+
+ screenLighting (screen, TRUE);
+
+ (*screen->applyScreenTransform) (screen, sAttrib, output, &sTransform);
+
+ if ((mask & CLIP_PLANE_MASK) == CLIP_PLANE_MASK)
+ {
+ screen->enableOutputClipping (screen, &sTransform, region, output);
+
+ transformToScreenSpace (screen, output, -sAttrib->zTranslate,
+ &sTransform);
+
+ glPushMatrix ();
+ glLoadMatrixf (sTransform.m);
+
+ paintOutputRegion (screen, &sTransform, region, output, mask);
+
+ glPopMatrix ();
+
+ screen->disableOutputClipping (screen);
+ }
+ else
+ {
+ transformToScreenSpace (screen, output, -sAttrib->zTranslate,
+ &sTransform);
+
+ glPushMatrix ();
+ glLoadMatrixf (sTransform.m);
+
+ paintOutputRegion (screen, &sTransform, region, output, mask);
+
+ glPopMatrix ();
+ }
+}
+
+Bool
+paintOutput (CompScreen *screen,
+ const ScreenPaintAttrib *sAttrib,
+ const CompTransform *transform,
+ Region region,
+ CompOutput *output,
+ unsigned int mask)
+{
+ CompTransform sTransform = *transform;
+
+ if (mask & PAINT_SCREEN_REGION_MASK)
+ {
+ if (mask & PAINT_SCREEN_TRANSFORMED_MASK)
+ {
+ if (mask & PAINT_SCREEN_FULL_MASK)
+ {
+ region = &output->region;
+
+ (*screen->paintTransformedOutput) (screen, sAttrib,
+ &sTransform, region,
+ output, mask);
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ /* fall through and redraw region */
+ }
+ else if (mask & PAINT_SCREEN_FULL_MASK)
+ {
+ (*screen->paintTransformedOutput) (screen, sAttrib, &sTransform,
+ &output->region,
+ output, mask);
+
+ return TRUE;
+ }
+ else
+ return FALSE;
+
+ screenLighting (screen, FALSE);
+
+ transformToScreenSpace (screen, output, -DEFAULT_Z_CAMERA, &sTransform);
+
+ glPushMatrix ();
+ glLoadMatrixf (sTransform.m);
+
+ paintOutputRegion (screen, &sTransform, region, output, mask);
+
+ glPopMatrix ();
+
+ return TRUE;
+}
+
+#define ADD_RECT(data, m, n, x1, y1, x2, y2) \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_X (&m[it], x1); \
+ *(data)++ = COMP_TEX_COORD_Y (&m[it], y1); \
+ } \
+ *(data)++ = (x1); \
+ *(data)++ = (y1); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_X (&m[it], x1); \
+ *(data)++ = COMP_TEX_COORD_Y (&m[it], y2); \
+ } \
+ *(data)++ = (x1); \
+ *(data)++ = (y2); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_X (&m[it], x2); \
+ *(data)++ = COMP_TEX_COORD_Y (&m[it], y2); \
+ } \
+ *(data)++ = (x2); \
+ *(data)++ = (y2); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_X (&m[it], x2); \
+ *(data)++ = COMP_TEX_COORD_Y (&m[it], y1); \
+ } \
+ *(data)++ = (x2); \
+ *(data)++ = (y1); \
+ *(data)++ = 0.0
+
+#define ADD_QUAD(data, m, n, x1, y1, x2, y2) \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_XY (&m[it], x1, y1); \
+ *(data)++ = COMP_TEX_COORD_YX (&m[it], x1, y1); \
+ } \
+ *(data)++ = (x1); \
+ *(data)++ = (y1); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_XY (&m[it], x1, y2); \
+ *(data)++ = COMP_TEX_COORD_YX (&m[it], x1, y2); \
+ } \
+ *(data)++ = (x1); \
+ *(data)++ = (y2); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_XY (&m[it], x2, y2); \
+ *(data)++ = COMP_TEX_COORD_YX (&m[it], x2, y2); \
+ } \
+ *(data)++ = (x2); \
+ *(data)++ = (y2); \
+ *(data)++ = 0.0; \
+ for (it = 0; it < n; it++) \
+ { \
+ *(data)++ = COMP_TEX_COORD_XY (&m[it], x2, y1); \
+ *(data)++ = COMP_TEX_COORD_YX (&m[it], x2, y1); \
+ } \
+ *(data)++ = (x2); \
+ *(data)++ = (y1); \
+ *(data)++ = 0.0;
+
+
+Bool
+moreWindowVertices (CompWindow *w,
+ int newSize)
+{
+ if (newSize > w->vertexSize)
+ {
+ GLfloat *vertices;
+
+ vertices = realloc (w->vertices, sizeof (GLfloat) * newSize);
+ if (!vertices)
+ return FALSE;
+
+ w->vertices = vertices;
+ w->vertexSize = newSize;
+ }
+
+ return TRUE;
+}
+
+Bool
+moreWindowIndices (CompWindow *w,
+ int newSize)
+{
+ if (newSize > w->indexSize)
+ {
+ GLushort *indices;
+
+ indices = realloc (w->indices, sizeof (GLushort) * newSize);
+ if (!indices)
+ return FALSE;
+
+ w->indices = indices;
+ w->indexSize = newSize;
+ }
+
+ return TRUE;
+}
+
+static void
+drawWindowGeometry (CompWindow *w)
+{
+ int texUnit = w->texUnits;
+ int currentTexUnit = 0;
+ int stride = w->vertexStride;
+ GLfloat *vertices = w->vertices + (stride - 3);
+
+ stride *= sizeof (GLfloat);
+
+ glVertexPointer (3, GL_FLOAT, stride, vertices);
+
+ while (texUnit--)
+ {
+ if (texUnit != currentTexUnit)
+ {
+ (*w->screen->clientActiveTexture) (GL_TEXTURE0_ARB + texUnit);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+ currentTexUnit = texUnit;
+ }
+ vertices -= w->texCoordSize;
+ glTexCoordPointer (w->texCoordSize, GL_FLOAT, stride, vertices);
+ }
+
+ glDrawArrays (GL_QUADS, 0, w->vCount);
+
+ /* disable all texture coordinate arrays except 0 */
+ texUnit = w->texUnits;
+ if (texUnit > 1)
+ {
+ while (--texUnit)
+ {
+ (*w->screen->clientActiveTexture) (GL_TEXTURE0_ARB + texUnit);
+ glDisableClientState (GL_TEXTURE_COORD_ARRAY);
+ }
+
+ (*w->screen->clientActiveTexture) (GL_TEXTURE0_ARB);
+ }
+}
+
+void
+addWindowGeometry (CompWindow *w,
+ CompMatrix *matrix,
+ int nMatrix,
+ Region region,
+ Region clip)
+{
+ BoxRec full;
+
+ w->texUnits = nMatrix;
+
+ full = clip->extents;
+ if (region->extents.x1 > full.x1)
+ full.x1 = region->extents.x1;
+ if (region->extents.y1 > full.y1)
+ full.y1 = region->extents.y1;
+ if (region->extents.x2 < full.x2)
+ full.x2 = region->extents.x2;
+ if (region->extents.y2 < full.y2)
+ full.y2 = region->extents.y2;
+
+ if (full.x1 < full.x2 && full.y1 < full.y2)
+ {
+ BoxPtr pBox;
+ int nBox;
+ BoxPtr pClip;
+ int nClip;
+ BoxRec cbox;
+ int vSize;
+ int n, it, x1, y1, x2, y2;
+ GLfloat *d;
+ Bool rect = TRUE;
+
+ for (it = 0; it < nMatrix; it++)
+ {
+ if (matrix[it].xy != 0.0f || matrix[it].yx != 0.0f)
+ {
+ rect = FALSE;
+ break;
+ }
+ }
+
+ pBox = region->rects;
+ nBox = region->numRects;
+
+ vSize = 3 + nMatrix * 2;
+
+ n = w->vCount / 4;
+
+ if ((n + nBox) * vSize * 4 > w->vertexSize)
+ {
+ if (!moreWindowVertices (w, (n + nBox) * vSize * 4))
+ return;
+ }
+
+ d = w->vertices + (w->vCount * vSize);
+
+ while (nBox--)
+ {
+ x1 = pBox->x1;
+ y1 = pBox->y1;
+ x2 = pBox->x2;
+ y2 = pBox->y2;
+
+ pBox++;
+
+ if (x1 < full.x1)
+ x1 = full.x1;
+ if (y1 < full.y1)
+ y1 = full.y1;
+ if (x2 > full.x2)
+ x2 = full.x2;
+ if (y2 > full.y2)
+ y2 = full.y2;
+
+ if (x1 < x2 && y1 < y2)
+ {
+ nClip = clip->numRects;
+
+ if (nClip == 1)
+ {
+ if (rect)
+ {
+ ADD_RECT (d, matrix, nMatrix, x1, y1, x2, y2);
+ }
+ else
+ {
+ ADD_QUAD (d, matrix, nMatrix, x1, y1, x2, y2);
+ }
+
+ n++;
+ }
+ else
+ {
+ pClip = clip->rects;
+
+ if (((n + nClip) * vSize * 4) > w->vertexSize)
+ {
+ if (!moreWindowVertices (w, (n + nClip) * vSize * 4))
+ return;
+
+ d = w->vertices + (n * vSize * 4);
+ }
+
+ while (nClip--)
+ {
+ cbox = *pClip;
+
+ pClip++;
+
+ if (cbox.x1 < x1)
+ cbox.x1 = x1;
+ if (cbox.y1 < y1)
+ cbox.y1 = y1;
+ if (cbox.x2 > x2)
+ cbox.x2 = x2;
+ if (cbox.y2 > y2)
+ cbox.y2 = y2;
+
+ if (cbox.x1 < cbox.x2 && cbox.y1 < cbox.y2)
+ {
+ if (rect)
+ {
+ ADD_RECT (d, matrix, nMatrix,
+ cbox.x1, cbox.y1, cbox.x2, cbox.y2);
+ }
+ else
+ {
+ ADD_QUAD (d, matrix, nMatrix,
+ cbox.x1, cbox.y1, cbox.x2, cbox.y2);
+ }
+
+ n++;
+ }
+ }
+ }
+ }
+ }
+
+ w->vCount = n * 4;
+ w->vertexStride = vSize;
+ w->texCoordSize = 2;
+ w->drawWindowGeometry = drawWindowGeometry;
+ }
+}
+
+static Bool
+enableFragmentProgramAndDrawGeometry (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ int filter,
+ unsigned int mask)
+{
+ FragmentAttrib fa = *attrib;
+ CompScreen *s = w->screen;
+ Bool blending;
+
+ if (s->canDoSaturated && attrib->saturation != COLOR)
+ {
+ int param, function;
+
+ param = allocFragmentParameters (&fa, 1);
+ function = getSaturateFragmentFunction (s, texture, param);
+
+ addFragmentFunction (&fa, function);
+
+ (*s->programEnvParameter4f) (GL_FRAGMENT_PROGRAM_ARB, param,
+ RED_SATURATION_WEIGHT,
+ GREEN_SATURATION_WEIGHT,
+ BLUE_SATURATION_WEIGHT,
+ attrib->saturation / 65535.0f);
+ }
+
+ if (!enableFragmentAttrib (s, &fa, &blending))
+ return FALSE;
+
+ enableTexture (s, texture, filter);
+
+ if (mask & PAINT_WINDOW_BLEND_MASK)
+ {
+ if (blending)
+ glEnable (GL_BLEND);
+
+ if (attrib->opacity != OPAQUE || attrib->brightness != BRIGHT)
+ {
+ GLushort color;
+
+ color = (attrib->opacity * attrib->brightness) >> 16;
+
+ screenTexEnvMode (s, GL_MODULATE);
+ glColor4us (color, color, color, attrib->opacity);
+
+ (*w->drawWindowGeometry) (w);
+
+ glColor4usv (defaultColor);
+ screenTexEnvMode (s, GL_REPLACE);
+ }
+ else
+ {
+ (*w->drawWindowGeometry) (w);
+ }
+
+ if (blending)
+ glDisable (GL_BLEND);
+ }
+ else if (attrib->brightness != BRIGHT)
+ {
+ screenTexEnvMode (s, GL_MODULATE);
+ glColor4us (attrib->brightness, attrib->brightness,
+ attrib->brightness, BRIGHT);
+
+ (*w->drawWindowGeometry) (w);
+
+ glColor4usv (defaultColor);
+ screenTexEnvMode (s, GL_REPLACE);
+ }
+ else
+ {
+ (*w->drawWindowGeometry) (w);
+ }
+
+ disableTexture (w->screen, texture);
+
+ disableFragmentAttrib (s, &fa);
+
+ return TRUE;
+}
+
+static void
+enableFragmentOperationsAndDrawGeometry (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ int filter,
+ unsigned int mask)
+{
+ CompScreen *s = w->screen;
+
+ if (s->canDoSaturated && attrib->saturation != COLOR)
+ {
+ GLfloat constant[4];
+
+ if (mask & PAINT_WINDOW_BLEND_MASK)
+ glEnable (GL_BLEND);
+
+ enableTexture (s, texture, filter);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_PRIMARY_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+
+ glColor4f (1.0f, 1.0f, 1.0f, 0.5f);
+
+ s->activeTexture (GL_TEXTURE1_ARB);
+
+ enableTexture (s, texture, filter);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_DOT3_RGB);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
+
+ if (s->canDoSlightlySaturated && attrib->saturation > 0)
+ {
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+
+ constant[0] = 0.5f + 0.5f * RED_SATURATION_WEIGHT;
+ constant[1] = 0.5f + 0.5f * GREEN_SATURATION_WEIGHT;
+ constant[2] = 0.5f + 0.5f * BLUE_SATURATION_WEIGHT;
+ constant[3] = 1.0;
+
+ glTexEnvfv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constant);
+
+ s->activeTexture (GL_TEXTURE2_ARB);
+
+ enableTexture (s, texture, filter);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE0);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_CONSTANT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+
+ constant[3] = attrib->saturation / 65535.0f;
+
+ glTexEnvfv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constant);
+
+ if (attrib->opacity < OPAQUE || attrib->brightness != BRIGHT)
+ {
+ s->activeTexture (GL_TEXTURE3_ARB);
+
+ enableTexture (s, texture, filter);
+
+ constant[3] = attrib->opacity / 65535.0f;
+ constant[0] = constant[1] = constant[2] = constant[3] *
+ attrib->brightness / 65535.0f;
+
+ glTexEnvfv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constant);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
+
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_CONSTANT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
+
+ (*w->drawWindowGeometry) (w);
+
+ disableTexture (s, texture);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ s->activeTexture (GL_TEXTURE2_ARB);
+ }
+ else
+ {
+ (*w->drawWindowGeometry) (w);
+ }
+
+ disableTexture (s, texture);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ s->activeTexture (GL_TEXTURE1_ARB);
+ }
+ else
+ {
+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_CONSTANT);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
+
+ constant[3] = attrib->opacity / 65535.0f;
+ constant[0] = constant[1] = constant[2] = constant[3] *
+ attrib->brightness / 65535.0f;
+
+ constant[0] = 0.5f + 0.5f * RED_SATURATION_WEIGHT * constant[0];
+ constant[1] = 0.5f + 0.5f * GREEN_SATURATION_WEIGHT * constant[1];
+ constant[2] = 0.5f + 0.5f * BLUE_SATURATION_WEIGHT * constant[2];
+
+ glTexEnvfv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constant);
+
+ (*w->drawWindowGeometry) (w);
+ }
+
+ disableTexture (s, texture);
+
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ s->activeTexture (GL_TEXTURE0_ARB);
+
+ disableTexture (s, texture);
+
+ glColor4usv (defaultColor);
+ screenTexEnvMode (s, GL_REPLACE);
+
+ if (mask & PAINT_WINDOW_BLEND_MASK)
+ glDisable (GL_BLEND);
+ }
+ else
+ {
+ enableTexture (s, texture, filter);
+
+ if (mask & PAINT_WINDOW_BLEND_MASK)
+ {
+ glEnable (GL_BLEND);
+ if (attrib->opacity != OPAQUE || attrib->brightness != BRIGHT)
+ {
+ GLushort color;
+
+ color = (attrib->opacity * attrib->brightness) >> 16;
+
+ screenTexEnvMode (s, GL_MODULATE);
+ glColor4us (color, color, color, attrib->opacity);
+
+ (*w->drawWindowGeometry) (w);
+
+ glColor4usv (defaultColor);
+ screenTexEnvMode (s, GL_REPLACE);
+ }
+ else
+ {
+ (*w->drawWindowGeometry) (w);
+ }
+
+ glDisable (GL_BLEND);
+ }
+ else if (attrib->brightness != BRIGHT)
+ {
+ screenTexEnvMode (s, GL_MODULATE);
+ glColor4us (attrib->brightness, attrib->brightness,
+ attrib->brightness, BRIGHT);
+
+ (*w->drawWindowGeometry) (w);
+
+ glColor4usv (defaultColor);
+ screenTexEnvMode (s, GL_REPLACE);
+ }
+ else
+ {
+ (*w->drawWindowGeometry) (w);
+ }
+
+ disableTexture (w->screen, texture);
+ }
+}
+
+void
+drawWindowTexture (CompWindow *w,
+ CompTexture *texture,
+ const FragmentAttrib *attrib,
+ unsigned int mask)
+{
+ int filter;
+
+ if (mask & (PAINT_WINDOW_TRANSFORMED_MASK |
+ PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK))
+ filter = w->screen->filter[SCREEN_TRANS_FILTER];
+ else
+ filter = w->screen->filter[NOTHING_TRANS_FILTER];
+
+ if ((!attrib->nFunction && (!w->screen->lighting ||
+ attrib->saturation == COLOR || attrib->saturation == 0)) ||
+ !enableFragmentProgramAndDrawGeometry (w,
+ texture,
+ attrib,
+ filter,
+ mask))
+ {
+ enableFragmentOperationsAndDrawGeometry (w,
+ texture,
+ attrib,
+ filter,
+ mask);
+ }
+}
+
+Bool
+drawWindow (CompWindow *w,
+ const CompTransform *transform,
+ const FragmentAttrib *fragment,
+ Region region,
+ unsigned int mask)
+{
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ region = &infiniteRegion;
+
+ if (!region->numRects)
+ return TRUE;
+
+ if (w->attrib.map_state != IsViewable)
+ return TRUE;
+
+ if (!w->texture->pixmap && !bindWindow (w))
+ return FALSE;
+
+ if (mask & PAINT_WINDOW_TRANSLUCENT_MASK)
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ w->vCount = w->indexCount = 0;
+ (*w->screen->addWindowGeometry) (w, &w->matrix, 1, w->region, region);
+ if (w->vCount)
+ (*w->screen->drawWindowTexture) (w, w->texture, fragment, mask);
+
+ return TRUE;
+}
+
+Bool
+paintWindow (CompWindow *w,
+ const WindowPaintAttrib *attrib,
+ const CompTransform *transform,
+ Region region,
+ unsigned int mask)
+{
+ FragmentAttrib fragment;
+ Bool status;
+
+ w->lastPaint = *attrib;
+
+ if (w->alpha || attrib->opacity != OPAQUE)
+ mask |= PAINT_WINDOW_TRANSLUCENT_MASK;
+
+ w->lastMask = mask;
+
+ if (mask & PAINT_WINDOW_OCCLUSION_DETECTION_MASK)
+ {
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ return FALSE;
+
+ if (mask & PAINT_WINDOW_NO_CORE_INSTANCE_MASK)
+ return FALSE;
+
+ if (mask & PAINT_WINDOW_TRANSLUCENT_MASK)
+ return FALSE;
+
+ if (w->shaded)
+ return FALSE;
+
+ return TRUE;
+ }
+
+ if (mask & PAINT_WINDOW_NO_CORE_INSTANCE_MASK)
+ return TRUE;
+
+ initFragmentAttrib (&fragment, attrib);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK ||
+ mask & PAINT_WINDOW_WITH_OFFSET_MASK)
+ {
+ glPushMatrix ();
+ glLoadMatrixf (transform->m);
+ }
+
+ status = (*w->screen->drawWindow) (w, transform, &fragment, region, mask);
+
+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK ||
+ mask & PAINT_WINDOW_WITH_OFFSET_MASK)
+ glPopMatrix ();
+
+ return status;
+}
diff --git a/src/plugin.c b/src/plugin.c
new file mode 100644
index 0000000..df0ccc6
--- /dev/null
+++ b/src/plugin.c
@@ -0,0 +1,793 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <compiz-core.h>
+
+CompPlugin *plugins = 0;
+
+static Bool
+coreInit (CompPlugin *p)
+{
+ return TRUE;
+}
+
+static void
+coreFini (CompPlugin *p)
+{
+}
+
+static CompMetadata *
+coreGetMetadata (CompPlugin *plugin)
+{
+ return &coreMetadata;
+}
+
+static CompOption *
+coreGetObjectOptions (CompPlugin *plugin,
+ CompObject *object,
+ int *count)
+{
+ static GetPluginObjectOptionsProc dispTab[] = {
+ (GetPluginObjectOptionsProc) 0, /* GetCoreOptions */
+ (GetPluginObjectOptionsProc) getDisplayOptions,
+ (GetPluginObjectOptionsProc) getScreenOptions
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab),
+ (void *) (*count = 0), (plugin, object, count));
+}
+
+static Bool
+coreSetObjectOption (CompPlugin *plugin,
+ CompObject *object,
+ const char *name,
+ CompOptionValue *value)
+{
+ static SetPluginObjectOptionProc dispTab[] = {
+ (SetPluginObjectOptionProc) 0, /* SetCoreOption */
+ (SetPluginObjectOptionProc) setDisplayOption,
+ (SetPluginObjectOptionProc) setScreenOption
+ };
+
+ RETURN_DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), FALSE,
+ (plugin, object, name, value));
+}
+
+static CompPluginVTable coreVTable = {
+ "core",
+ coreGetMetadata,
+ coreInit,
+ coreFini,
+ 0, /* InitObject */
+ 0, /* FiniObject */
+ coreGetObjectOptions,
+ coreSetObjectOption
+};
+
+static Bool
+cloaderLoadPlugin (CompPlugin *p,
+ const char *path,
+ const char *name)
+{
+ if (path)
+ return FALSE;
+
+ if (strcmp (name, coreVTable.name))
+ return FALSE;
+
+ p->vTable = &coreVTable;
+ p->devPrivate.ptr = NULL;
+ p->devType = "cloader";
+
+ return TRUE;
+}
+
+static void
+cloaderUnloadPlugin (CompPlugin *p)
+{
+}
+
+static char **
+cloaderListPlugins (const char *path,
+ int *n)
+{
+ char **list;
+
+ if (path)
+ return 0;
+
+ list = malloc (sizeof (char *));
+ if (!list)
+ return 0;
+
+ *list = strdup (coreVTable.name);
+ if (!*list)
+ {
+ free (list);
+ return 0;
+ }
+
+ *n = 1;
+
+ return list;
+}
+
+static Bool
+dlloaderLoadPlugin (CompPlugin *p,
+ const char *path,
+ const char *name)
+{
+ char *file;
+ void *dlhand;
+ struct stat fileInfo;
+ Bool loaded = FALSE;
+
+ if (cloaderLoadPlugin (p, path, name))
+ return TRUE;
+
+ file = malloc ((path ? strlen (path) : 0) + strlen (name) + 8);
+ if (!file)
+ return FALSE;
+
+ if (path)
+ sprintf (file, "%s/lib%s.so", path, name);
+ else
+ sprintf (file, "lib%s.so", name);
+
+ if (stat (file, &fileInfo) != 0)
+ {
+ /* file likely not present */
+ compLogMessage ("core", CompLogLevelDebug,
+ "Could not stat() file %s : %s",
+ file, strerror (errno));
+ free (file);
+ return FALSE;
+ }
+
+ dlhand = dlopen (file, RTLD_LAZY);
+ if (dlhand)
+ {
+ PluginGetInfoProc getInfo;
+ char *error;
+
+ dlerror ();
+
+ getInfo = (PluginGetInfoProc) dlsym (dlhand,
+ "getCompPluginInfo20070830");
+
+ error = dlerror ();
+ if (error)
+ {
+ compLogMessage ("core", CompLogLevelError, "dlsym: %s", error);
+
+ getInfo = 0;
+ }
+
+ if (getInfo)
+ {
+ p->vTable = (*getInfo) ();
+ if (!p->vTable)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Couldn't get vtable from '%s' plugin",
+ file);
+ }
+ else
+ {
+ p->devPrivate.ptr = dlhand;
+ p->devType = "dlloader";
+ loaded = TRUE;
+ }
+ }
+ }
+ else
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Couldn't load plugin '%s' : %s", file, dlerror ());
+ }
+
+ free (file);
+
+ if (!loaded && dlhand)
+ dlclose (dlhand);
+
+ return loaded;
+}
+
+static void
+dlloaderUnloadPlugin (CompPlugin *p)
+{
+ if (strcmp (p->devType, "dlloader") == 0)
+ dlclose (p->devPrivate.ptr);
+ else
+ cloaderUnloadPlugin (p);
+}
+
+static int
+dlloaderFilter (const struct dirent *name)
+{
+ int length = strlen (name->d_name);
+
+ if (length < 7)
+ return 0;
+
+ if (strncmp (name->d_name, "lib", 3) ||
+ strncmp (name->d_name + length - 3, ".so", 3))
+ return 0;
+
+ return 1;
+}
+
+static char **
+dlloaderListPlugins (const char *path,
+ int *n)
+{
+ struct dirent **nameList;
+ char **list, **cList;
+ char *name;
+ int length, nFile, i, j = 0;
+
+ cList = cloaderListPlugins (path, n);
+ if (cList)
+ j = *n;
+
+ if (!path)
+ path = ".";
+
+ nFile = scandir (path, &nameList, dlloaderFilter, alphasort);
+ if (!nFile)
+ return cList;
+
+ list = realloc (cList, (j + nFile) * sizeof (char *));
+ if (!list)
+ return cList;
+
+ for (i = 0; i < nFile; i++)
+ {
+ length = strlen (nameList[i]->d_name);
+
+ name = malloc ((length - 5) * sizeof (char));
+ if (name)
+ {
+ strncpy (name, nameList[i]->d_name + 3, length - 6);
+ name[length - 6] = '\0';
+
+ list[j++] = name;
+ }
+ }
+
+ if (j)
+ {
+ *n = j;
+
+ return list;
+ }
+
+ free (list);
+
+ return NULL;
+}
+
+LoadPluginProc loaderLoadPlugin = dlloaderLoadPlugin;
+UnloadPluginProc loaderUnloadPlugin = dlloaderUnloadPlugin;
+ListPluginsProc loaderListPlugins = dlloaderListPlugins;
+
+typedef struct _InitObjectContext {
+ CompPlugin *plugin;
+ CompObject *object;
+} InitObjectContext;
+
+typedef struct _InitObjectTypeContext {
+ CompPlugin *plugin;
+ CompObjectType type;
+} InitObjectTypeContext;
+
+static CompBool
+initObjectTree (CompObject *object,
+ void *closure);
+
+static CompBool
+finiObjectTree (CompObject *object,
+ void *closure);
+
+static CompBool
+initObjectsWithType (CompObjectType type,
+ CompObject *parent,
+ void *closure)
+{
+ InitObjectTypeContext *pCtx = (InitObjectTypeContext *) closure;
+ InitObjectContext ctx;
+
+ pCtx->type = type;
+
+ ctx.plugin = pCtx->plugin;
+ ctx.object = NULL;
+
+ if (!compObjectForEach (parent, type, initObjectTree, (void *) &ctx))
+ {
+ compObjectForEach (parent, type, finiObjectTree, (void *) &ctx);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static CompBool
+finiObjectsWithType (CompObjectType type,
+ CompObject *parent,
+ void *closure)
+{
+ InitObjectTypeContext *pCtx = (InitObjectTypeContext *) closure;
+ InitObjectContext ctx;
+
+ /* pCtx->type is set to the object type that failed to be initialized */
+ if (pCtx->type == type)
+ return FALSE;
+
+ ctx.plugin = pCtx->plugin;
+ ctx.object = NULL;
+
+ compObjectForEach (parent, type, finiObjectTree, (void *) &ctx);
+
+ return TRUE;
+}
+
+static CompBool
+initObjectTree (CompObject *object,
+ void *closure)
+{
+ InitObjectContext *pCtx = (InitObjectContext *) closure;
+ CompPlugin *p = pCtx->plugin;
+ InitObjectTypeContext ctx;
+
+ pCtx->object = object;
+
+ if (p->vTable->initObject)
+ {
+ if (!(*p->vTable->initObject) (p, object))
+ {
+ compLogMessage (p->vTable->name, CompLogLevelError,
+ "InitObject failed");
+ return FALSE;
+ }
+ }
+
+ ctx.plugin = p;
+ ctx.type = 0;
+
+ /* initialize children */
+ if (!compObjectForEachType (object, initObjectsWithType, (void *) &ctx))
+ {
+ compObjectForEachType (object, finiObjectsWithType, (void *) &ctx);
+
+ if (p->vTable->initObject && p->vTable->finiObject)
+ (*p->vTable->finiObject) (p, object);
+
+ return FALSE;
+ }
+
+ if (!(*core.initPluginForObject) (p, object))
+ {
+ compObjectForEachType (object, finiObjectsWithType, (void *) &ctx);
+
+ if (p->vTable->initObject && p->vTable->finiObject)
+ (*p->vTable->finiObject) (p, object);
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static CompBool
+finiObjectTree (CompObject *object,
+ void *closure)
+{
+ InitObjectContext *pCtx = (InitObjectContext *) closure;
+ CompPlugin *p = pCtx->plugin;
+ InitObjectTypeContext ctx;
+
+ /* pCtx->object is set to the object that failed to be initialized */
+ if (pCtx->object == object)
+ return FALSE;
+
+ ctx.plugin = p;
+ ctx.type = ~0;
+
+ compObjectForEachType (object, finiObjectsWithType, (void *) &ctx);
+
+ if (p->vTable->initObject && p->vTable->finiObject)
+ (*p->vTable->finiObject) (p, object);
+
+ (*core.finiPluginForObject) (p, object);
+
+ return TRUE;
+}
+
+static Bool
+initPlugin (CompPlugin *p)
+{
+ InitObjectContext ctx;
+
+ if (!(*p->vTable->init) (p))
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "InitPlugin '%s' failed", p->vTable->name);
+ return FALSE;
+ }
+
+ ctx.plugin = p;
+ ctx.object = NULL;
+
+ if (!initObjectTree (&core.base, (void *) &ctx))
+ {
+ (*p->vTable->fini) (p);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+finiPlugin (CompPlugin *p)
+{
+ InitObjectContext ctx;
+
+ ctx.plugin = p;
+ ctx.object = NULL;
+
+ finiObjectTree (&core.base, (void *) &ctx);
+
+ (*p->vTable->fini) (p);
+}
+
+CompBool
+objectInitPlugins (CompObject *o)
+{
+ InitObjectContext ctx;
+ CompPlugin *p;
+ int i, j = 0;
+
+ ctx.object = NULL;
+
+ for (p = plugins; p; p = p->next)
+ j++;
+
+ while (j--)
+ {
+ i = 0;
+ for (p = plugins; i < j; p = p->next)
+ i++;
+
+ ctx.plugin = p;
+
+ if (!initObjectTree (o, (void *) &ctx))
+ {
+ for (p = p->next; p; p = p->next)
+ {
+ ctx.plugin = p;
+
+ finiObjectTree (o, (void *) &ctx);
+ }
+
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+void
+objectFiniPlugins (CompObject *o)
+{
+ InitObjectContext ctx;
+ CompPlugin *p;
+
+ ctx.object = NULL;
+
+ for (p = plugins; p; p = p->next)
+ {
+ ctx.plugin = p;
+
+ finiObjectTree (o, (void *) &ctx);
+ }
+}
+
+CompPlugin *
+findActivePlugin (const char *name)
+{
+ CompPlugin *p;
+
+ for (p = plugins; p; p = p->next)
+ {
+ if (strcmp (p->vTable->name, name) == 0)
+ return p;
+ }
+
+ return 0;
+}
+
+void
+unloadPlugin (CompPlugin *p)
+{
+ (*loaderUnloadPlugin) (p);
+ free (p);
+}
+
+CompPlugin *
+loadPlugin (const char *name)
+{
+ CompPlugin *p;
+ char *home, *plugindir;
+ Bool status;
+
+ p = malloc (sizeof (CompPlugin));
+ if (!p)
+ return 0;
+
+ p->next = 0;
+ p->devPrivate.uval = 0;
+ p->devType = NULL;
+ p->vTable = 0;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ plugindir = malloc (strlen (home) + strlen (HOME_PLUGINDIR) + 3);
+ if (plugindir)
+ {
+ sprintf (plugindir, "%s/%s", home, HOME_PLUGINDIR);
+ status = (*loaderLoadPlugin) (p, plugindir, name);
+ free (plugindir);
+
+ if (status)
+ return p;
+ }
+ }
+
+ status = (*loaderLoadPlugin) (p, PLUGINDIR, name);
+ if (status)
+ return p;
+
+ status = (*loaderLoadPlugin) (p, NULL, name);
+ if (status)
+ return p;
+
+ compLogMessage ("core", CompLogLevelError,
+ "Couldn't load plugin '%s'", name);
+
+ free (p);
+
+ return 0;
+}
+
+Bool
+pushPlugin (CompPlugin *p)
+{
+ if (findActivePlugin (p->vTable->name))
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Plugin '%s' already active",
+ p->vTable->name);
+
+ return FALSE;
+ }
+
+ p->next = plugins;
+ plugins = p;
+
+ if (!initPlugin (p))
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Couldn't activate plugin '%s'", p->vTable->name);
+ plugins = p->next;
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+CompPlugin *
+popPlugin (void)
+{
+ CompPlugin *p = plugins;
+
+ if (!p)
+ return 0;
+
+ finiPlugin (p);
+
+ plugins = p->next;
+
+ return p;
+}
+
+CompPlugin *
+getPlugins (void)
+{
+ return plugins;
+}
+
+static Bool
+stringExist (char **list,
+ int nList,
+ char *s)
+{
+ int i;
+
+ for (i = 0; i < nList; i++)
+ if (strcmp (list[i], s) == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
+char **
+availablePlugins (int *n)
+{
+ char *home, *plugindir;
+ char **list, **currentList, **pluginList, **homeList = NULL;
+ int nCurrentList, nPluginList, nHomeList;
+ int count, i, j;
+
+ home = getenv ("HOME");
+ if (home)
+ {
+ plugindir = malloc (strlen (home) + strlen (HOME_PLUGINDIR) + 3);
+ if (plugindir)
+ {
+ sprintf (plugindir, "%s/%s", home, HOME_PLUGINDIR);
+ homeList = (*loaderListPlugins) (plugindir, &nHomeList);
+ free (plugindir);
+ }
+ }
+
+ pluginList = (*loaderListPlugins) (PLUGINDIR, &nPluginList);
+ currentList = (*loaderListPlugins) (NULL, &nCurrentList);
+
+ count = 0;
+ if (homeList)
+ count += nHomeList;
+ if (pluginList)
+ count += nPluginList;
+ if (currentList)
+ count += nCurrentList;
+
+ if (!count)
+ return NULL;
+
+ list = malloc (count * sizeof (char *));
+ if (!list)
+ return NULL;
+
+ j = 0;
+ if (homeList)
+ {
+ for (i = 0; i < nHomeList; i++)
+ if (!stringExist (list, j, homeList[i]))
+ list[j++] = homeList[i];
+
+ free (homeList);
+ }
+
+ if (pluginList)
+ {
+ for (i = 0; i < nPluginList; i++)
+ if (!stringExist (list, j, pluginList[i]))
+ list[j++] = pluginList[i];
+
+ free (pluginList);
+ }
+
+ if (currentList)
+ {
+ for (i = 0; i < nCurrentList; i++)
+ if (!stringExist (list, j, currentList[i]))
+ list[j++] = currentList[i];
+
+ free (currentList);
+ }
+
+ *n = j;
+
+ return list;
+}
+
+int
+getPluginABI (const char *name)
+{
+ CompPlugin *p = findActivePlugin (name);
+ CompOption *option;
+ int nOption;
+
+ if (!p || !p->vTable->getObjectOptions)
+ return 0;
+
+ /* MULTIDPYERROR: ABI options should be moved into core */
+ option = (*p->vTable->getObjectOptions) (p, &core.displays->base,
+ &nOption);
+
+ return getIntOptionNamed (option, nOption, "abi", 0);
+}
+
+Bool
+checkPluginABI (const char *name,
+ int abi)
+{
+ int pluginABI;
+
+ pluginABI = getPluginABI (name);
+ if (!pluginABI)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Plugin '%s' not loaded.\n", name);
+ return FALSE;
+ }
+ else if (pluginABI != abi)
+ {
+ compLogMessage ("core", CompLogLevelError,
+ "Plugin '%s' has ABI version '%d', expected "
+ "ABI version '%d'.\n",
+ name, pluginABI, abi);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+Bool
+getPluginDisplayIndex (CompDisplay *d,
+ const char *name,
+ int *index)
+{
+ CompPlugin *p = findActivePlugin (name);
+ CompOption *option;
+ int nOption, value;
+
+ if (!p || !p->vTable->getObjectOptions)
+ return FALSE;
+
+ option = (*p->vTable->getObjectOptions) (p, &d->base, &nOption);
+
+ value = getIntOptionNamed (option, nOption, "index", -1);
+ if (value < 0)
+ return FALSE;
+
+ *index = value;
+
+ return TRUE;
+}
diff --git a/src/privates.c b/src/privates.c
new file mode 100644
index 0000000..56baa4b
--- /dev/null
+++ b/src/privates.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <stdlib.h>
+
+#include <compiz-core.h>
+
+int
+allocatePrivateIndex (int *len,
+ char **indices,
+ ReallocPrivatesProc reallocProc,
+ void *closure)
+{
+ char *newIndices;
+ int i;
+
+ for (i = 0; i < *len; i++)
+ {
+ if (!(*indices)[i])
+ {
+ (*indices)[i] = 1;
+ return i;
+ }
+ }
+
+ newIndices = (char *) realloc (*indices, (*len + 1) * sizeof (char));
+ if (!newIndices)
+ return -1;
+
+ newIndices[*len] = 1;
+ *indices = newIndices;
+
+ if (!(*reallocProc) (*len + 1, closure))
+ return -1;
+
+ return (*len)++;
+}
+
+void
+freePrivateIndex (int len,
+ char *indices,
+ int index)
+{
+ if (index < len)
+ indices[index] = 0;
+}
diff --git a/src/screen.c b/src/screen.c
new file mode 100644
index 0000000..c2bb563
--- /dev/null
+++ b/src/screen.c
@@ -0,0 +1,4328 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <math.h>
+#include <dlfcn.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <assert.h>
+#include <limits.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+#include <X11/extensions/Xrandr.h>
+#include <X11/extensions/shape.h>
+#include <X11/cursorfont.h>
+
+#include <compiz-core.h>
+
+#define NUM_OPTIONS(s) (sizeof ((s)->opt) / sizeof (CompOption))
+
+static int
+reallocScreenPrivate (int size,
+ void *closure)
+{
+ CompDisplay *d = (CompDisplay *) closure;
+ CompScreen *s;
+ void *privates;
+
+ for (s = d->screens; s; s = s->next)
+ {
+ privates = realloc (s->base.privates, size * sizeof (CompPrivate));
+ if (!privates)
+ return FALSE;
+
+ s->base.privates = (CompPrivate *) privates;
+ }
+
+ return TRUE;
+}
+
+int
+allocScreenObjectPrivateIndex (CompObject *parent)
+{
+ CompDisplay *display = (CompDisplay *) parent;
+
+ return allocatePrivateIndex (&display->screenPrivateLen,
+ &display->screenPrivateIndices,
+ reallocScreenPrivate,
+ (void *) display);
+}
+
+void
+freeScreenObjectPrivateIndex (CompObject *parent,
+ int index)
+{
+ CompDisplay *display = (CompDisplay *) parent;
+
+ freePrivateIndex (display->screenPrivateLen,
+ display->screenPrivateIndices,
+ index);
+}
+
+CompBool
+forEachScreenObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure)
+{
+ if (parent->type == COMP_OBJECT_TYPE_DISPLAY)
+ {
+ CompScreen *s;
+
+ CORE_DISPLAY (parent);
+
+ for (s = d->screens; s; s = s->next)
+ {
+ if (!(*proc) (&s->base, closure))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+char *
+nameScreenObject (CompObject *object)
+{
+ char tmp[256];
+
+ CORE_SCREEN (object);
+
+ snprintf (tmp, 256, "%d", s->screenNum);
+
+ return strdup (tmp);
+}
+
+CompObject *
+findScreenObject (CompObject *parent,
+ const char *name)
+{
+ if (parent->type == COMP_OBJECT_TYPE_DISPLAY)
+ {
+ CompScreen *s;
+ int screenNum = atoi (name);
+
+ CORE_DISPLAY (parent);
+
+ for (s = d->screens; s; s = s->next)
+ if (s->screenNum == screenNum)
+ return &s->base;
+ }
+
+ return NULL;
+}
+
+int
+allocateScreenPrivateIndex (CompDisplay *display)
+{
+ return compObjectAllocatePrivateIndex (&display->base,
+ COMP_OBJECT_TYPE_SCREEN);
+}
+
+void
+freeScreenPrivateIndex (CompDisplay *display,
+ int index)
+{
+ compObjectFreePrivateIndex (&display->base,
+ COMP_OBJECT_TYPE_SCREEN,
+ index);
+}
+
+static Bool
+desktopHintEqual (CompScreen *s,
+ unsigned long *data,
+ int size,
+ int offset,
+ int hintSize)
+{
+ if (size != s->desktopHintSize)
+ return FALSE;
+
+ if (memcmp (data + offset,
+ s->desktopHintData + offset,
+ hintSize * sizeof (unsigned long)) == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
+static void
+setDesktopHints (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ unsigned long *data;
+ int size, offset, hintSize, i;
+
+ size = s->nDesktop * 2 + s->nDesktop * 2 + s->nDesktop * 4 + 1;
+
+ data = malloc (sizeof (unsigned long) * size);
+ if (!data)
+ return;
+
+ offset = 0;
+ hintSize = s->nDesktop * 2;
+
+ for (i = 0; i < s->nDesktop; i++)
+ {
+ data[offset + i * 2 + 0] = s->x * s->width;
+ data[offset + i * 2 + 1] = s->y * s->height;
+ }
+
+ if (!desktopHintEqual (s, data, size, offset, hintSize))
+ XChangeProperty (d->display, s->root, d->desktopViewportAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data[offset], hintSize);
+
+ offset += hintSize;
+
+ for (i = 0; i < s->nDesktop; i++)
+ {
+ data[offset + i * 2 + 0] = s->width * s->hsize;
+ data[offset + i * 2 + 1] = s->height * s->vsize;
+ }
+
+ if (!desktopHintEqual (s, data, size, offset, hintSize))
+ XChangeProperty (d->display, s->root, d->desktopGeometryAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data[offset], hintSize);
+
+ offset += hintSize;
+ hintSize = s->nDesktop * 4;
+
+ for (i = 0; i < s->nDesktop; i++)
+ {
+ data[offset + i * 4 + 0] = s->workArea.x;
+ data[offset + i * 4 + 1] = s->workArea.y;
+ data[offset + i * 4 + 2] = s->workArea.width;
+ data[offset + i * 4 + 3] = s->workArea.height;
+ }
+
+ if (!desktopHintEqual (s, data, size, offset, hintSize))
+ XChangeProperty (d->display, s->root, d->workareaAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data[offset], hintSize);
+
+ offset += hintSize;
+
+ data[offset] = s->nDesktop;
+ hintSize = 1;
+
+ if (!desktopHintEqual (s, data, size, offset, hintSize))
+ XChangeProperty (d->display, s->root, d->numberOfDesktopsAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data[offset], hintSize);
+
+ if (s->desktopHintData)
+ free (s->desktopHintData);
+
+ s->desktopHintData = data;
+ s->desktopHintSize = size;
+}
+
+static void
+setVirtualScreenSize (CompScreen *screen,
+ int hsize,
+ int vsize)
+{
+ screen->hsize = hsize;
+ screen->vsize = vsize;
+
+ setDesktopHints (screen);
+}
+
+static void
+updateOutputDevices (CompScreen *s)
+{
+ CompOutput *o, *output = NULL;
+ CompListValue *list = &s->opt[COMP_SCREEN_OPTION_OUTPUTS].value.list;
+ int nOutput = 0;
+ int x, y, i, j, bits;
+ unsigned int width, height;
+ int x1, y1, x2, y2;
+ Region region;
+ CompWindow *w;
+
+ for (i = 0; i < list->nValue; i++)
+ {
+ if (!list->value[i].s)
+ continue;
+
+ x = 0;
+ y = 0;
+ width = s->width;
+ height = s->height;
+
+ bits = XParseGeometry (list->value[i].s, &x, &y, &width, &height);
+
+ if (bits & XNegative)
+ x = s->width + x - width;
+
+ if (bits & YNegative)
+ y = s->height + y - height;
+
+ x1 = x;
+ y1 = y;
+ x2 = x + width;
+ y2 = y + height;
+
+ if (x1 < 0)
+ x1 = 0;
+ if (y1 < 0)
+ y1 = 0;
+ if (x2 > s->width)
+ x2 = s->width;
+ if (y2 > s->height)
+ y2 = s->height;
+
+ if (x1 < x2 && y1 < y2)
+ {
+ o = realloc (output, sizeof (CompOutput) * (nOutput + 1));
+ if (o)
+ {
+ o[nOutput].region.extents.x1 = x1;
+ o[nOutput].region.extents.y1 = y1;
+ o[nOutput].region.extents.x2 = x2;
+ o[nOutput].region.extents.y2 = y2;
+
+ output = o;
+ nOutput++;
+ }
+ }
+ }
+
+ /* make sure we have at least one output */
+ if (!nOutput)
+ {
+ output = malloc (sizeof (CompOutput));
+ if (!output)
+ return;
+
+ output->region.extents.x1 = 0;
+ output->region.extents.y1 = 0;
+ output->region.extents.x2 = s->width;
+ output->region.extents.y2 = s->height;
+
+ nOutput = 1;
+ }
+
+ /* set name, width, height and update rect pointers in all regions */
+ for (i = 0; i < nOutput; i++)
+ {
+ output[i].name = malloc (sizeof (char) * 10);
+ if (output[i].name)
+ snprintf (output[i].name, 10, "Output %d", nOutput);
+
+ output[i].region.rects = &output[i].region.extents;
+ output[i].region.numRects = 1;
+
+ output[i].width = output[i].region.extents.x2 -
+ output[i].region.extents.x1;
+ output[i].height = output[i].region.extents.y2 -
+ output[i].region.extents.y1;
+
+ output[i].workArea.x = output[i].region.extents.x1;
+ output[i].workArea.y = output[i].region.extents.x1;
+ output[i].workArea.width = output[i].width;
+ output[i].workArea.height = output[i].height;
+
+ output[i].id = i;
+ }
+
+ if (s->outputDev)
+ {
+ for (i = 0; i < s->nOutputDev; i++)
+ if (s->outputDev[i].name)
+ free (s->outputDev[i].name);
+
+ free (s->outputDev);
+ }
+
+ s->outputDev = output;
+ s->nOutputDev = nOutput;
+ s->hasOverlappingOutputs = FALSE;
+
+ setCurrentOutput (s, s->currentOutputDev);
+
+ /* clear out fullscreen monitor hints of all windows as
+ suggested on monitor layout changes in EWMH */
+ for (w = s->windows; w; w = w->next)
+ if (w->fullscreenMonitorsSet)
+ setWindowFullscreenMonitors (w, NULL);
+
+ updateWorkareaForScreen (s);
+
+ setDefaultViewport (s);
+ damageScreen (s);
+
+ region = XCreateRegion ();
+ if (region)
+ {
+ REGION r;
+
+ r.rects = &r.extents;
+ r.numRects = 1;
+
+ for (i = 0; i < nOutput - 1; i++)
+ for (j = i + 1; j < nOutput; j++)
+ {
+ XIntersectRegion (&output[i].region,
+ &output[j].region,
+ region);
+ if (REGION_NOT_EMPTY (region))
+ s->hasOverlappingOutputs = TRUE;
+ }
+ XSubtractRegion (&emptyRegion, &emptyRegion, region);
+
+ if (s->display->nScreenInfo)
+ {
+ for (i = 0; i < s->display->nScreenInfo; i++)
+ {
+ r.extents.x1 = s->display->screenInfo[i].x_org;
+ r.extents.y1 = s->display->screenInfo[i].y_org;
+ r.extents.x2 = r.extents.x1 + s->display->screenInfo[i].width;
+ r.extents.y2 = r.extents.y1 + s->display->screenInfo[i].height;
+
+ XUnionRegion (region, &r, region);
+ }
+ }
+ else
+ {
+ r.extents.x1 = 0;
+ r.extents.y1 = 0;
+ r.extents.x2 = s->width;
+ r.extents.y2 = s->height;
+
+ XUnionRegion (region, &r, region);
+ }
+
+ /* remove all output regions from visible screen region */
+ for (i = 0; i < s->nOutputDev; i++)
+ XSubtractRegion (region, &s->outputDev[i].region, region);
+
+ /* we should clear color buffers before swapping if we have visible
+ regions without output */
+ s->clearBuffers = REGION_NOT_EMPTY (region);
+
+ XDestroyRegion (region);
+ }
+
+ (*s->outputChangeNotify) (s);
+}
+
+static void
+detectOutputDevices (CompScreen *s)
+{
+ if (!noDetection && s->opt[COMP_SCREEN_OPTION_DETECT_OUTPUTS].value.b)
+ {
+ char *name;
+ CompOptionValue value;
+ char output[1024];
+ int i, size = sizeof (output);
+
+ if (s->display->nScreenInfo)
+ {
+ int n = s->display->nScreenInfo;
+
+ value.list.nValue = n;
+ value.list.value = malloc (sizeof (CompOptionValue) * n);
+ if (!value.list.value)
+ return;
+
+ for (i = 0; i < n; i++)
+ {
+ snprintf (output, size, "%dx%d+%d+%d",
+ s->display->screenInfo[i].width,
+ s->display->screenInfo[i].height,
+ s->display->screenInfo[i].x_org,
+ s->display->screenInfo[i].y_org);
+
+ value.list.value[i].s = strdup (output);
+ }
+ }
+ else
+ {
+ value.list.nValue = 1;
+ value.list.value = malloc (sizeof (CompOptionValue));
+ if (!value.list.value)
+ return;
+
+ snprintf (output, size, "%dx%d+%d+%d", s->width, s->height, 0, 0);
+
+ value.list.value->s = strdup (output);
+ }
+
+ name = s->opt[COMP_SCREEN_OPTION_OUTPUTS].name;
+
+ s->opt[COMP_SCREEN_OPTION_DETECT_OUTPUTS].value.b = FALSE;
+ (*core.setOptionForPlugin) (&s->base, "core", name, &value);
+ s->opt[COMP_SCREEN_OPTION_DETECT_OUTPUTS].value.b = TRUE;
+
+ for (i = 0; i < value.list.nValue; i++)
+ if (value.list.value[i].s)
+ free (value.list.value[i].s);
+
+ free (value.list.value);
+ }
+ else
+ {
+ updateOutputDevices (s);
+ }
+}
+
+CompOption *
+getScreenOptions (CompPlugin *plugin,
+ CompScreen *screen,
+ int *count)
+{
+ *count = NUM_OPTIONS (screen);
+ return screen->opt;
+}
+
+Bool
+setScreenOption (CompPlugin *plugin,
+ CompScreen *screen,
+ const char *name,
+ CompOptionValue *value)
+{
+ CompOption *o;
+ int index;
+
+ o = compFindOption (screen->opt, NUM_OPTIONS (screen), name, &index);
+ if (!o)
+ return FALSE;
+
+ switch (index) {
+ case COMP_SCREEN_OPTION_DETECT_REFRESH_RATE:
+ if (compSetBoolOption (o, value))
+ {
+ if (value->b)
+ detectRefreshRateOfScreen (screen);
+
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_DETECT_OUTPUTS:
+ if (compSetBoolOption (o, value))
+ {
+ if (value->b)
+ detectOutputDevices (screen);
+
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_REFRESH_RATE:
+ if (screen->opt[COMP_SCREEN_OPTION_DETECT_REFRESH_RATE].value.b)
+ return FALSE;
+
+ if (compSetIntOption (o, value))
+ {
+ screen->redrawTime = 1000 / o->value.i;
+ screen->optimalRedrawTime = screen->redrawTime;
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_HSIZE:
+ if (compSetIntOption (o, value))
+ {
+ CompOption *vsize;
+
+ vsize = compFindOption (screen->opt, NUM_OPTIONS (screen),
+ "vsize", NULL);
+
+ if (!vsize)
+ return FALSE;
+
+ if (o->value.i * screen->width > MAXSHORT)
+ return FALSE;
+
+ setVirtualScreenSize (screen, o->value.i, vsize->value.i);
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_VSIZE:
+ if (compSetIntOption (o, value))
+ {
+ CompOption *hsize;
+
+ hsize = compFindOption (screen->opt, NUM_OPTIONS (screen),
+ "hsize", NULL);
+
+ if (!hsize)
+ return FALSE;
+
+ if (o->value.i * screen->height > MAXSHORT)
+ return FALSE;
+
+ setVirtualScreenSize (screen, hsize->value.i, o->value.i);
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_NUMBER_OF_DESKTOPS:
+ if (compSetIntOption (o, value))
+ {
+ setNumberOfDesktops (screen, o->value.i);
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_DEFAULT_ICON:
+ if (compSetStringOption (o, value))
+ return updateDefaultIcon (screen);
+ break;
+ case COMP_SCREEN_OPTION_OUTPUTS:
+ if (!noDetection &&
+ screen->opt[COMP_SCREEN_OPTION_DETECT_OUTPUTS].value.b)
+ return FALSE;
+
+ if (compSetOptionList (o, value))
+ {
+ updateOutputDevices (screen);
+ return TRUE;
+ }
+ break;
+ case COMP_SCREEN_OPTION_FORCE_INDEPENDENT:
+ if (compSetBoolOption (o, value))
+ {
+ updateOutputDevices (screen);
+ return TRUE;
+ }
+ break;
+ default:
+ if (compSetScreenOption (screen, o, value))
+ return TRUE;
+ break;
+ }
+
+ return FALSE;
+}
+
+const CompMetadataOptionInfo coreScreenOptionInfo[COMP_SCREEN_OPTION_NUM] = {
+ { "detect_refresh_rate", "bool", 0, 0, 0 },
+ { "lighting", "bool", 0, 0, 0 },
+ { "refresh_rate", "int", "<min>1</min>", 0, 0 },
+ { "hsize", "int", "<min>1</min><max>32</max>", 0, 0 },
+ { "vsize", "int", "<min>1</min><max>32</max>", 0, 0 },
+ { "unredirect_fullscreen_windows", "bool", 0, 0, 0 },
+ { "default_icon", "string", 0, 0, 0 },
+ { "sync_to_vblank", "bool", 0, 0, 0 },
+ { "number_of_desktops", "int", "<min>1</min>", 0, 0 },
+ { "detect_outputs", "bool", 0, 0, 0 },
+ { "outputs", "list", "<type>string</type>", 0, 0 },
+ { "overlapping_outputs", "int",
+ RESTOSTRING (0, OUTPUT_OVERLAP_MODE_LAST), 0, 0 },
+ { "focus_prevention_level", "int",
+ RESTOSTRING (0, FOCUS_PREVENTION_LEVEL_LAST), 0, 0 },
+ { "focus_prevention_match", "match", 0, 0, 0 },
+ { "texture_compression", "bool", 0, 0, 0 },
+ { "force_independent_output_painting", "bool", 0, 0, 0 }
+};
+
+static void
+updateStartupFeedback (CompScreen *s)
+{
+ if (s->startupSequences)
+ XDefineCursor (s->display->display, s->root, s->busyCursor);
+ else
+ XDefineCursor (s->display->display, s->root, s->normalCursor);
+}
+
+#define STARTUP_TIMEOUT_DELAY 15000
+
+static Bool
+startupSequenceTimeout (void *data)
+{
+ CompScreen *screen = data;
+ CompStartupSequence *s;
+ struct timeval now, active;
+ double elapsed;
+
+ gettimeofday (&now, NULL);
+
+ for (s = screen->startupSequences; s; s = s->next)
+ {
+ sn_startup_sequence_get_last_active_time (s->sequence,
+ &active.tv_sec,
+ &active.tv_usec);
+
+ elapsed = ((((double) now.tv_sec - active.tv_sec) * 1000000.0 +
+ (now.tv_usec - active.tv_usec))) / 1000.0;
+
+ if (elapsed > STARTUP_TIMEOUT_DELAY)
+ sn_startup_sequence_complete (s->sequence);
+ }
+
+ return TRUE;
+}
+
+static void
+addSequence (CompScreen *screen,
+ SnStartupSequence *sequence)
+{
+ CompStartupSequence *s;
+
+ s = malloc (sizeof (CompStartupSequence));
+ if (!s)
+ return;
+
+ sn_startup_sequence_ref (sequence);
+
+ s->next = screen->startupSequences;
+ s->sequence = sequence;
+ s->viewportX = screen->x;
+ s->viewportY = screen->y;
+
+ screen->startupSequences = s;
+
+ if (!screen->startupSequenceTimeoutHandle)
+ compAddTimeout (1000, 1500,
+ startupSequenceTimeout,
+ screen);
+
+ updateStartupFeedback (screen);
+}
+
+static void
+removeSequence (CompScreen *screen,
+ SnStartupSequence *sequence)
+{
+ CompStartupSequence *s, *p = NULL;
+
+ for (s = screen->startupSequences; s; s = s->next)
+ {
+ if (s->sequence == sequence)
+ break;
+
+ p = s;
+ }
+
+ if (!s)
+ return;
+
+ sn_startup_sequence_unref (sequence);
+
+ if (p)
+ p->next = s->next;
+ else
+ screen->startupSequences = NULL;
+
+ free (s);
+
+ if (!screen->startupSequences && screen->startupSequenceTimeoutHandle)
+ {
+ compRemoveTimeout (screen->startupSequenceTimeoutHandle);
+ screen->startupSequenceTimeoutHandle = 0;
+ }
+
+ updateStartupFeedback (screen);
+}
+
+static void
+compScreenSnEvent (SnMonitorEvent *event,
+ void *userData)
+{
+ CompScreen *screen = userData;
+ SnStartupSequence *sequence;
+
+ sequence = sn_monitor_event_get_startup_sequence (event);
+
+ switch (sn_monitor_event_get_type (event)) {
+ case SN_MONITOR_EVENT_INITIATED:
+ addSequence (screen, sequence);
+ break;
+ case SN_MONITOR_EVENT_COMPLETED:
+ removeSequence (screen, sn_monitor_event_get_startup_sequence (event));
+ break;
+ case SN_MONITOR_EVENT_CHANGED:
+ case SN_MONITOR_EVENT_CANCELED:
+ break;
+ }
+}
+
+static void
+updateScreenEdges (CompScreen *s)
+{
+ struct screenEdgeGeometry {
+ int xw, x0;
+ int yh, y0;
+ int ww, w0;
+ int hh, h0;
+ } geometry[SCREEN_EDGE_NUM] = {
+ { 0, 0, 0, 2, 0, 2, 1, -4 }, /* left */
+ { 1, -2, 0, 2, 0, 2, 1, -4 }, /* right */
+ { 0, 2, 0, 0, 1, -4, 0, 2 }, /* top */
+ { 0, 2, 1, -2, 1, -4, 0, 2 }, /* bottom */
+ { 0, 0, 0, 0, 0, 2, 0, 2 }, /* top-left */
+ { 1, -2, 0, 0, 0, 2, 0, 2 }, /* top-right */
+ { 0, 0, 1, -2, 0, 2, 0, 2 }, /* bottom-left */
+ { 1, -2, 1, -2, 0, 2, 0, 2 } /* bottom-right */
+ };
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ if (s->screenEdge[i].id)
+ XMoveResizeWindow (s->display->display, s->screenEdge[i].id,
+ geometry[i].xw * s->width + geometry[i].x0,
+ geometry[i].yh * s->height + geometry[i].y0,
+ geometry[i].ww * s->width + geometry[i].w0,
+ geometry[i].hh * s->height + geometry[i].h0);
+ }
+}
+
+static void
+frustum (GLfloat *m,
+ GLfloat left,
+ GLfloat right,
+ GLfloat bottom,
+ GLfloat top,
+ GLfloat nearval,
+ GLfloat farval)
+{
+ GLfloat x, y, a, b, c, d;
+
+ x = (2.0 * nearval) / (right - left);
+ y = (2.0 * nearval) / (top - bottom);
+ a = (right + left) / (right - left);
+ b = (top + bottom) / (top - bottom);
+ c = -(farval + nearval) / ( farval - nearval);
+ d = -(2.0 * farval * nearval) / (farval - nearval);
+
+#define M(row,col) m[col*4+row]
+ M(0,0) = x; M(0,1) = 0.0f; M(0,2) = a; M(0,3) = 0.0f;
+ M(1,0) = 0.0f; M(1,1) = y; M(1,2) = b; M(1,3) = 0.0f;
+ M(2,0) = 0.0f; M(2,1) = 0.0f; M(2,2) = c; M(2,3) = d;
+ M(3,0) = 0.0f; M(3,1) = 0.0f; M(3,2) = -1.0f; M(3,3) = 0.0f;
+#undef M
+
+}
+
+static void
+perspective (GLfloat *m,
+ GLfloat fovy,
+ GLfloat aspect,
+ GLfloat zNear,
+ GLfloat zFar)
+{
+ GLfloat xmin, xmax, ymin, ymax;
+
+ ymax = zNear * tan (fovy * M_PI / 360.0);
+ ymin = -ymax;
+ xmin = ymin * aspect;
+ xmax = ymax * aspect;
+
+ frustum (m, xmin, xmax, ymin, ymax, zNear, zFar);
+}
+
+void
+setCurrentOutput (CompScreen *s,
+ int outputNum)
+{
+ if (outputNum >= s->nOutputDev)
+ outputNum = 0;
+
+ s->currentOutputDev = outputNum;
+}
+
+static void
+reshape (CompScreen *s,
+ int w,
+ int h)
+{
+
+#ifdef USE_COW
+ if (useCow)
+ XMoveResizeWindow (s->display->display, s->overlay, 0, 0, w, h);
+#endif
+
+ if (s->display->xineramaExtension)
+ {
+ CompDisplay *d = s->display;
+
+ if (d->screenInfo)
+ XFree (d->screenInfo);
+
+ d->nScreenInfo = 0;
+ d->screenInfo = XineramaQueryScreens (d->display, &d->nScreenInfo);
+ }
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ glDepthRange (0, 1);
+ glViewport (-1, -1, 2, 2);
+ glRasterPos2f (0, 0);
+
+ s->rasterX = s->rasterY = 0;
+
+ perspective (s->projection, 60.0f, 1.0f, 0.1f, 100.0f);
+
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glMultMatrixf (s->projection);
+ glMatrixMode (GL_MODELVIEW);
+
+ s->region.rects = &s->region.extents;
+ s->region.numRects = 1;
+ s->region.extents.x1 = 0;
+ s->region.extents.y1 = 0;
+ s->region.extents.x2 = w;
+ s->region.extents.y2 = h;
+ s->region.size = 1;
+
+ s->width = w;
+ s->height = h;
+
+ s->fullscreenOutput.name = "fullscreen";
+ s->fullscreenOutput.id = ~0;
+ s->fullscreenOutput.width = w;
+ s->fullscreenOutput.height = h;
+ s->fullscreenOutput.region = s->region;
+ s->fullscreenOutput.workArea.x = 0;
+ s->fullscreenOutput.workArea.y = 0;
+ s->fullscreenOutput.workArea.width = w;
+ s->fullscreenOutput.workArea.height = h;
+
+ updateScreenEdges (s);
+}
+
+void
+configureScreen (CompScreen *s,
+ XConfigureEvent *ce)
+{
+ if (s->attrib.width != ce->width ||
+ s->attrib.height != ce->height)
+ {
+ s->attrib.width = ce->width;
+ s->attrib.height = ce->height;
+
+ reshape (s, ce->width, ce->height);
+
+ detectOutputDevices (s);
+
+ damageScreen (s);
+ }
+}
+
+static FuncPtr
+getProcAddress (CompScreen *s,
+ const char *name)
+{
+ static void *dlhand = NULL;
+ FuncPtr funcPtr = NULL;
+
+ if (s->getProcAddress)
+ funcPtr = s->getProcAddress ((GLubyte *) name);
+
+ if (!funcPtr)
+ {
+ if (!dlhand)
+ dlhand = dlopen (NULL, RTLD_LAZY);
+
+ if (dlhand)
+ {
+ dlerror ();
+ funcPtr = (FuncPtr) dlsym (dlhand, name);
+ if (dlerror () != NULL)
+ funcPtr = NULL;
+ }
+ }
+
+ return funcPtr;
+}
+
+void
+updateScreenBackground (CompScreen *screen,
+ CompTexture *texture)
+{
+ Display *dpy = screen->display->display;
+ Atom pixmapAtom, actualType;
+ int actualFormat, i, status;
+ unsigned int width = 1, height = 1, depth = 0;
+ unsigned long nItems;
+ unsigned long bytesAfter;
+ unsigned char *prop;
+ Pixmap pixmap = 0;
+
+ pixmapAtom = XInternAtom (dpy, "PIXMAP", FALSE);
+
+ for (i = 0; pixmap == 0 && i < 2; i++)
+ {
+ status = XGetWindowProperty (dpy, screen->root,
+ screen->display->xBackgroundAtom[i],
+ 0, 4, FALSE, AnyPropertyType,
+ &actualType, &actualFormat, &nItems,
+ &bytesAfter, &prop);
+
+ if (status == Success && prop)
+ {
+ if (actualType == pixmapAtom &&
+ actualFormat == 32 &&
+ nItems == 1)
+ {
+ Pixmap p;
+
+ memcpy (&p, prop, 4);
+
+ if (p)
+ {
+ unsigned int ui;
+ int i;
+ Window w;
+
+ if (XGetGeometry (dpy, p, &w, &i, &i,
+ &width, &height, &ui, &depth))
+ {
+ if (depth == screen->attrib.depth)
+ pixmap = p;
+ }
+ }
+ }
+
+ XFree (prop);
+ }
+ }
+
+ if (pixmap)
+ {
+ if (pixmap == texture->pixmap)
+ return;
+
+ finiTexture (screen, texture);
+ initTexture (screen, texture);
+
+ if (!bindPixmapToTexture (screen, texture, pixmap,
+ width, height, depth))
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Couldn't bind background pixmap 0x%x to "
+ "texture", (int) pixmap);
+ }
+ }
+ else
+ {
+ finiTexture (screen, texture);
+ initTexture (screen, texture);
+ }
+
+ if (!texture->name && backgroundImage)
+ readImageToTexture (screen, texture, backgroundImage, &width, &height);
+
+ if (texture->target == GL_TEXTURE_2D)
+ {
+ glBindTexture (texture->target, texture->name);
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glBindTexture (texture->target, 0);
+ }
+}
+
+void
+detectRefreshRateOfScreen (CompScreen *s)
+{
+ if (!noDetection && s->opt[COMP_SCREEN_OPTION_DETECT_REFRESH_RATE].value.b)
+ {
+ char *name;
+ CompOptionValue value;
+
+ value.i = 0;
+
+ if (s->display->randrExtension)
+ {
+ XRRScreenConfiguration *config;
+
+ config = XRRGetScreenInfo (s->display->display, s->root);
+ value.i = (int) XRRConfigCurrentRate (config);
+
+ XRRFreeScreenConfigInfo (config);
+ }
+
+ if (value.i == 0)
+ value.i = defaultRefreshRate;
+
+ name = s->opt[COMP_SCREEN_OPTION_REFRESH_RATE].name;
+
+ s->opt[COMP_SCREEN_OPTION_DETECT_REFRESH_RATE].value.b = FALSE;
+ (*core.setOptionForPlugin) (&s->base, "core", name, &value);
+ s->opt[COMP_SCREEN_OPTION_DETECT_REFRESH_RATE].value.b = TRUE;
+ }
+ else
+ {
+ s->redrawTime = 1000 / s->opt[COMP_SCREEN_OPTION_REFRESH_RATE].value.i;
+ s->optimalRedrawTime = s->redrawTime;
+ }
+}
+
+static void
+setSupportingWmCheck (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+
+ XChangeProperty (d->display, s->grabWindow, d->supportingWmCheckAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &s->grabWindow, 1);
+
+ XChangeProperty (d->display, s->grabWindow, d->wmNameAtom,
+ d->utf8StringAtom, 8, PropModeReplace,
+ (unsigned char *) PACKAGE, strlen (PACKAGE));
+ XChangeProperty (d->display, s->grabWindow, d->winStateAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) &d->winStateSkipTaskbarAtom, 1);
+ XChangeProperty (d->display, s->grabWindow, d->winStateAtom,
+ XA_ATOM, 32, PropModeAppend,
+ (unsigned char *) &d->winStateSkipPagerAtom, 1);
+ XChangeProperty (d->display, s->grabWindow, d->winStateAtom,
+ XA_ATOM, 32, PropModeAppend,
+ (unsigned char *) &d->winStateHiddenAtom, 1);
+
+ XChangeProperty (d->display, s->root, d->supportingWmCheckAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &s->grabWindow, 1);
+}
+
+static void
+setSupported (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ Atom data[256];
+ int i = 0;
+
+ data[i++] = d->supportedAtom;
+ data[i++] = d->supportingWmCheckAtom;
+
+ data[i++] = d->utf8StringAtom;
+
+ data[i++] = d->clientListAtom;
+ data[i++] = d->clientListStackingAtom;
+
+ data[i++] = d->winActiveAtom;
+
+ data[i++] = d->desktopViewportAtom;
+ data[i++] = d->desktopGeometryAtom;
+ data[i++] = d->currentDesktopAtom;
+ data[i++] = d->numberOfDesktopsAtom;
+ data[i++] = d->showingDesktopAtom;
+
+ data[i++] = d->workareaAtom;
+
+ data[i++] = d->wmNameAtom;
+/*
+ data[i++] = d->wmVisibleNameAtom;
+*/
+
+ data[i++] = d->wmStrutAtom;
+ data[i++] = d->wmStrutPartialAtom;
+
+/*
+ data[i++] = d->wmPidAtom;
+*/
+
+ data[i++] = d->wmUserTimeAtom;
+ data[i++] = d->frameExtentsAtom;
+ data[i++] = d->frameWindowAtom;
+
+ data[i++] = d->winStateAtom;
+ data[i++] = d->winStateModalAtom;
+ data[i++] = d->winStateStickyAtom;
+ data[i++] = d->winStateMaximizedVertAtom;
+ data[i++] = d->winStateMaximizedHorzAtom;
+ data[i++] = d->winStateShadedAtom;
+ data[i++] = d->winStateSkipTaskbarAtom;
+ data[i++] = d->winStateSkipPagerAtom;
+ data[i++] = d->winStateHiddenAtom;
+ data[i++] = d->winStateFullscreenAtom;
+ data[i++] = d->winStateAboveAtom;
+ data[i++] = d->winStateBelowAtom;
+ data[i++] = d->winStateDemandsAttentionAtom;
+
+ data[i++] = d->winOpacityAtom;
+ data[i++] = d->winBrightnessAtom;
+
+ if (s->canDoSaturated)
+ {
+ data[i++] = d->winSaturationAtom;
+ data[i++] = d->winStateDisplayModalAtom;
+ }
+
+ data[i++] = d->wmAllowedActionsAtom;
+
+ data[i++] = d->winActionMoveAtom;
+ data[i++] = d->winActionResizeAtom;
+ data[i++] = d->winActionStickAtom;
+ data[i++] = d->winActionMinimizeAtom;
+ data[i++] = d->winActionMaximizeHorzAtom;
+ data[i++] = d->winActionMaximizeVertAtom;
+ data[i++] = d->winActionFullscreenAtom;
+ data[i++] = d->winActionCloseAtom;
+ data[i++] = d->winActionShadeAtom;
+ data[i++] = d->winActionChangeDesktopAtom;
+ data[i++] = d->winActionAboveAtom;
+ data[i++] = d->winActionBelowAtom;
+
+ data[i++] = d->winTypeAtom;
+ data[i++] = d->winTypeDesktopAtom;
+ data[i++] = d->winTypeDockAtom;
+ data[i++] = d->winTypeToolbarAtom;
+ data[i++] = d->winTypeMenuAtom;
+ data[i++] = d->winTypeSplashAtom;
+ data[i++] = d->winTypeDialogAtom;
+ data[i++] = d->winTypeUtilAtom;
+ data[i++] = d->winTypeNormalAtom;
+
+ data[i++] = d->wmDeleteWindowAtom;
+ data[i++] = d->wmPingAtom;
+
+ data[i++] = d->wmMoveResizeAtom;
+ data[i++] = d->moveResizeWindowAtom;
+ data[i++] = d->restackWindowAtom;
+
+ data[i++] = d->wmFullscreenMonitorsAtom;
+
+ XChangeProperty (d->display, s->root, d->supportedAtom, XA_ATOM, 32,
+ PropModeReplace, (unsigned char *) data, i);
+}
+
+static void
+getDesktopHints (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ unsigned long data[2];
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *propData;
+
+ if (useDesktopHints)
+ {
+ result = XGetWindowProperty (s->display->display, s->root,
+ d->numberOfDesktopsAtom, 0L, 1L, FALSE,
+ XA_CARDINAL, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n)
+ {
+ memcpy (data, propData, sizeof (unsigned long));
+
+ if (data[0] > 0 && data[0] < 0xffffffff)
+ s->nDesktop = data[0];
+ }
+ XFree (propData);
+ }
+
+ result = XGetWindowProperty (s->display->display, s->root,
+ d->currentDesktopAtom, 0L, 1L, FALSE,
+ XA_CARDINAL, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n)
+ {
+ memcpy (data, propData, sizeof (unsigned long));
+
+ if (data[0] < s->nDesktop)
+ s->currentDesktop = data[0];
+ }
+
+ XFree (propData);
+ }
+ }
+
+ result = XGetWindowProperty (s->display->display, s->root,
+ d->desktopViewportAtom, 0L, 2L,
+ FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n == 2)
+ {
+ memcpy (data, propData, sizeof (unsigned long) * 2);
+
+ if (data[0] / s->width < s->hsize - 1)
+ s->x = data[0] / s->width;
+
+ if (data[1] / s->height < s->vsize - 1)
+ s->y = data[1] / s->height;
+ }
+
+ XFree (propData);
+ }
+
+ result = XGetWindowProperty (s->display->display, s->root,
+ d->showingDesktopAtom, 0L, 1L, FALSE,
+ XA_CARDINAL, &actual, &format,
+ &n, &left, &propData);
+
+ if (result == Success && propData)
+ {
+ if (n)
+ {
+ memcpy (data, propData, sizeof (unsigned long));
+
+ if (data[0])
+ (*s->enterShowDesktopMode) (s);
+ }
+ XFree (propData);
+ }
+
+ data[0] = s->currentDesktop;
+
+ XChangeProperty (d->display, s->root, d->currentDesktopAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) data, 1);
+
+ data[0] = s->showingDesktopMask ? TRUE : FALSE;
+
+ XChangeProperty (d->display, s->root, d->showingDesktopAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) data, 1);
+}
+
+void
+showOutputWindow (CompScreen *s)
+{
+
+#ifdef USE_COW
+ if (useCow)
+ {
+ Display *dpy = s->display->display;
+ XserverRegion region;
+
+ region = XFixesCreateRegion (dpy, NULL, 0);
+
+ XFixesSetWindowShapeRegion (dpy,
+ s->output,
+ ShapeBounding,
+ 0, 0, 0);
+ XFixesSetWindowShapeRegion (dpy,
+ s->output,
+ ShapeInput,
+ 0, 0, region);
+
+ XFixesDestroyRegion (dpy, region);
+
+ damageScreen (s);
+ }
+#endif
+
+}
+
+void
+hideOutputWindow (CompScreen *s)
+{
+
+#ifdef USE_COW
+ if (useCow)
+ {
+ Display *dpy = s->display->display;
+ XserverRegion region;
+
+ region = XFixesCreateRegion (dpy, NULL, 0);
+
+ XFixesSetWindowShapeRegion (dpy,
+ s->output,
+ ShapeBounding,
+ 0, 0, region);
+
+ XFixesDestroyRegion (dpy, region);
+ }
+#endif
+
+}
+
+void
+updateOutputWindow (CompScreen *s)
+{
+
+#ifdef USE_COW
+ if (useCow)
+ {
+ Display *dpy = s->display->display;
+ XserverRegion region;
+ static Region tmpRegion = NULL;
+ CompWindow *w;
+
+ if (!tmpRegion)
+ {
+ tmpRegion = XCreateRegion ();
+ if (!tmpRegion)
+ return;
+ }
+
+ XSubtractRegion (&s->region, &emptyRegion, tmpRegion);
+
+ for (w = s->reverseWindows; w; w = w->prev)
+ if (w->overlayWindow)
+ {
+ XSubtractRegion (tmpRegion, w->region, tmpRegion);
+ }
+
+ XShapeCombineRegion (dpy, s->output, ShapeBounding,
+ 0, 0, tmpRegion, ShapeSet);
+
+
+ region = XFixesCreateRegion (dpy, NULL, 0);
+
+ XFixesSetWindowShapeRegion (dpy,
+ s->output,
+ ShapeInput,
+ 0, 0, region);
+
+ XFixesDestroyRegion (dpy, region);
+ }
+#endif
+
+}
+
+static void
+makeOutputWindow (CompScreen *s)
+{
+
+#ifdef USE_COW
+ if (useCow)
+ {
+ s->overlay = XCompositeGetOverlayWindow (s->display->display, s->root);
+ s->output = s->overlay;
+
+ XSelectInput (s->display->display, s->output, ExposureMask);
+ }
+ else
+#endif
+
+ s->output = s->overlay = s->root;
+
+ showOutputWindow (s);
+}
+
+static void
+enterShowDesktopMode (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ CompWindow *w;
+ unsigned long data = 1;
+ int count = 0;
+ CompOption *st = &d->opt[COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS];
+
+ s->showingDesktopMask = ~(CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if ((s->showingDesktopMask & w->wmType) &&
+ (!(w->state & CompWindowStateSkipTaskbarMask) || st->value.b))
+ {
+ if (!w->inShowDesktopMode && !w->grabbed &&
+ w->managed && (*s->focusWindow) (w))
+ {
+ w->inShowDesktopMode = TRUE;
+ hideWindow (w);
+ }
+ }
+
+ if (w->inShowDesktopMode)
+ count++;
+ }
+
+ if (!count)
+ {
+ s->showingDesktopMask = 0;
+ data = 0;
+ }
+
+ XChangeProperty (s->display->display, s->root,
+ s->display->showingDesktopAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data, 1);
+}
+
+static void
+leaveShowDesktopMode (CompScreen *s,
+ CompWindow *window)
+{
+ CompWindow *w;
+ unsigned long data = 0;
+
+ if (window)
+ {
+ if (!window->inShowDesktopMode)
+ return;
+
+ window->inShowDesktopMode = FALSE;
+ showWindow (window);
+
+ /* return if some other window is still in show desktop mode */
+ for (w = s->windows; w; w = w->next)
+ if (w->inShowDesktopMode)
+ return;
+
+ s->showingDesktopMask = 0;
+ }
+ else
+ {
+ s->showingDesktopMask = 0;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!w->inShowDesktopMode)
+ continue;
+
+ w->inShowDesktopMode = FALSE;
+ showWindow (w);
+ }
+
+ /* focus default window - most likely this will be the window
+ which had focus before entering showdesktop mode */
+ focusDefaultWindow (s);
+ }
+
+ XChangeProperty (s->display->display, s->root,
+ s->display->showingDesktopAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data, 1);
+}
+
+static CompWindow *
+walkFirst (CompScreen *s)
+{
+ return s->windows;
+}
+
+static CompWindow *
+walkLast (CompScreen *s)
+{
+ return s->reverseWindows;
+}
+
+static CompWindow *
+walkNext (CompWindow *w)
+{
+ return w->next;
+}
+
+static CompWindow *
+walkPrev (CompWindow *w)
+{
+ return w->prev;
+}
+
+static void
+initWindowWalker (CompScreen *screen,
+ CompWalker *walker)
+{
+ walker->fini = NULL;
+ walker->first = walkFirst;
+ walker->last = walkLast;
+ walker->next = walkNext;
+ walker->prev = walkPrev;
+}
+
+static void
+freeScreen (CompScreen *s)
+{
+ int i, j;
+
+ if (s->outputDev)
+ {
+ for (i = 0; i < s->nOutputDev; i++)
+ if (s->outputDev[i].name)
+ free (s->outputDev[i].name);
+
+ free (s->outputDev);
+ }
+
+ if (s->clientList)
+ free (s->clientList);
+
+ if (s->desktopHintData)
+ free (s->desktopHintData);
+
+ if (s->buttonGrab)
+ free (s->buttonGrab);
+
+ if (s->keyGrab)
+ free (s->keyGrab);
+
+ if (s->snContext)
+ sn_monitor_context_unref (s->snContext);
+
+ if (s->damage)
+ XDestroyRegion (s->damage);
+
+ if (s->grabs)
+ free (s->grabs);
+
+ if (s->exposeRects)
+ free (s->exposeRects);
+
+ /* XXX: Maybe we should free all fragment functions here? But
+ the definition of CompFunction is private to fragment.c ... */
+ for (i = 0; i < 2; i++)
+ for (j = 0; j < 64; j++)
+ if (s->saturateFunction[i][j])
+ destroyFragmentFunction (s, s->saturateFunction[i][j]);
+
+ compFiniScreenOptions (s, s->opt, COMP_SCREEN_OPTION_NUM);
+
+ if (s->windowPrivateIndices)
+ free (s->windowPrivateIndices);
+
+ if (s->base.privates)
+ free (s->base.privates);
+
+ free (s);
+}
+
+Bool
+addScreen (CompDisplay *display,
+ int screenNum,
+ Window wmSnSelectionWindow,
+ Atom wmSnAtom,
+ Time wmSnTimestamp)
+{
+ CompScreen *s;
+ CompPrivate *privates;
+ Display *dpy = display->display;
+ static char data = 0;
+ XColor black;
+ Pixmap bitmap;
+ XVisualInfo templ;
+ XVisualInfo *visinfo;
+ GLXFBConfig *fbConfigs;
+ Window rootReturn, parentReturn;
+ Window *children;
+ unsigned int nchildren;
+ int defaultDepth, nvisinfo, nElements, value, i;
+ const char *glxExtensions, *glExtensions;
+ XSetWindowAttributes attrib;
+ GLfloat globalAmbient[] = { 0.1f, 0.1f, 0.1f, 0.1f };
+ GLfloat ambientLight[] = { 0.0f, 0.0f, 0.0f, 0.0f };
+ GLfloat diffuseLight[] = { 0.9f, 0.9f, 0.9f, 0.9f };
+ GLfloat light0Position[] = { -0.5f, 0.5f, -9.0f, 1.0f };
+ CompWindow *w;
+
+ s = malloc (sizeof (CompScreen));
+ if (!s)
+ return FALSE;
+
+ s->windowPrivateIndices = 0;
+ s->windowPrivateLen = 0;
+
+ if (display->screenPrivateLen)
+ {
+ privates = malloc (display->screenPrivateLen * sizeof (CompPrivate));
+ if (!privates)
+ {
+ free (s);
+ return FALSE;
+ }
+ }
+ else
+ privates = 0;
+
+ compObjectInit (&s->base, privates, COMP_OBJECT_TYPE_SCREEN);
+
+ s->display = display;
+
+ if (!compInitScreenOptionsFromMetadata (s,
+ &coreMetadata,
+ coreScreenOptionInfo,
+ s->opt,
+ COMP_SCREEN_OPTION_NUM))
+ return FALSE;
+
+ s->snContext = NULL;
+
+ s->damage = XCreateRegion ();
+ if (!s->damage)
+ return FALSE;
+
+ s->x = 0;
+ s->y = 0;
+ s->hsize = s->opt[COMP_SCREEN_OPTION_HSIZE].value.i;
+ s->vsize = s->opt[COMP_SCREEN_OPTION_VSIZE].value.i;
+
+ s->windowOffsetX = 0;
+ s->windowOffsetY = 0;
+
+ s->nDesktop = 1;
+ s->currentDesktop = 0;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ s->screenEdge[i].id = None;
+ s->screenEdge[i].count = 0;
+ }
+
+ s->buttonGrab = 0;
+ s->nButtonGrab = 0;
+ s->keyGrab = 0;
+ s->nKeyGrab = 0;
+
+ s->grabs = 0;
+ s->grabSize = 0;
+ s->maxGrab = 0;
+
+ s->pendingDestroys = 0;
+
+ s->clientList = 0;
+ s->nClientList = 0;
+
+ s->screenNum = screenNum;
+ s->colormap = DefaultColormap (dpy, screenNum);
+ s->root = XRootWindow (dpy, screenNum);
+
+ s->mapNum = 1;
+ s->activeNum = 1;
+
+ s->groups = NULL;
+
+ s->snContext = sn_monitor_context_new (display->snDisplay,
+ screenNum,
+ compScreenSnEvent, s,
+ NULL);
+
+ s->startupSequences = NULL;
+ s->startupSequenceTimeoutHandle = 0;
+
+ s->wmSnSelectionWindow = wmSnSelectionWindow;
+ s->wmSnAtom = wmSnAtom;
+ s->wmSnTimestamp = wmSnTimestamp;
+
+ s->damageMask = COMP_SCREEN_DAMAGE_ALL_MASK;
+ s->next = 0;
+ s->exposeRects = 0;
+ s->sizeExpose = 0;
+ s->nExpose = 0;
+
+ s->rasterX = 0;
+ s->rasterY = 0;
+
+ s->outputDev = NULL;
+ s->nOutputDev = 0;
+ s->currentOutputDev = 0;
+
+ s->windows = 0;
+ s->reverseWindows = 0;
+
+ s->nextRedraw = 0;
+ s->frameStatus = 0;
+ s->timeMult = 1;
+ s->idle = TRUE;
+ s->timeLeft = 0;
+
+ s->pendingCommands = TRUE;
+
+ s->lastFunctionId = 0;
+
+ s->fragmentFunctions = NULL;
+ s->fragmentPrograms = NULL;
+
+ memset (s->saturateFunction, 0, sizeof (s->saturateFunction));
+
+ s->showingDesktopMask = 0;
+
+ memset (s->history, 0, sizeof (s->history));
+ s->currentHistory = 0;
+
+ s->overlayWindowCount = 0;
+
+ s->desktopHintData = NULL;
+ s->desktopHintSize = 0;
+
+ s->cursors = NULL;
+
+ s->clearBuffers = TRUE;
+
+ gettimeofday (&s->lastRedraw, 0);
+
+ s->preparePaintScreen = preparePaintScreen;
+ s->donePaintScreen = donePaintScreen;
+ s->paintScreen = paintScreen;
+ s->paintOutput = paintOutput;
+ s->paintTransformedOutput = paintTransformedOutput;
+ s->enableOutputClipping = enableOutputClipping;
+ s->disableOutputClipping = disableOutputClipping;
+ s->applyScreenTransform = applyScreenTransform;
+ s->paintWindow = paintWindow;
+ s->drawWindow = drawWindow;
+ s->addWindowGeometry = addWindowGeometry;
+ s->drawWindowTexture = drawWindowTexture;
+ s->damageWindowRect = damageWindowRect;
+ s->getOutputExtentsForWindow = getOutputExtentsForWindow;
+ s->getAllowedActionsForWindow = getAllowedActionsForWindow;
+ s->focusWindow = focusWindow;
+ s->activateWindow = activateWindow;
+ s->placeWindow = placeWindow;
+ s->validateWindowResizeRequest = validateWindowResizeRequest;
+
+ s->paintCursor = paintCursor;
+ s->damageCursorRect = damageCursorRect;
+
+ s->windowResizeNotify = windowResizeNotify;
+ s->windowMoveNotify = windowMoveNotify;
+ s->windowGrabNotify = windowGrabNotify;
+ s->windowUngrabNotify = windowUngrabNotify;
+
+ s->enterShowDesktopMode = enterShowDesktopMode;
+ s->leaveShowDesktopMode = leaveShowDesktopMode;
+
+ s->windowStateChangeNotify = windowStateChangeNotify;
+
+ s->outputChangeNotify = outputChangeNotify;
+
+ s->initWindowWalker = initWindowWalker;
+
+ s->getProcAddress = 0;
+
+ if (!XGetWindowAttributes (dpy, s->root, &s->attrib))
+ return FALSE;
+
+ s->workArea.x = 0;
+ s->workArea.y = 0;
+ s->workArea.width = s->attrib.width;
+ s->workArea.height = s->attrib.height;
+
+ s->grabWindow = None;
+
+ makeOutputWindow (s);
+
+ templ.visualid = XVisualIDFromVisual (s->attrib.visual);
+
+ visinfo = XGetVisualInfo (dpy, VisualIDMask, &templ, &nvisinfo);
+ if (!nvisinfo)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't get visual info for default visual");
+ return FALSE;
+ }
+
+ defaultDepth = visinfo->depth;
+
+ black.red = black.green = black.blue = 0;
+
+ if (!XAllocColor (dpy, s->colormap, &black))
+ {
+ compLogMessage ("core", CompLogLevelFatal, "Couldn't allocate color");
+ XFree (visinfo);
+ return FALSE;
+ }
+
+ bitmap = XCreateBitmapFromData (dpy, s->root, &data, 1, 1);
+ if (!bitmap)
+ {
+ compLogMessage ("core", CompLogLevelFatal, "Couldn't create bitmap");
+ XFree (visinfo);
+ return FALSE;
+ }
+
+ s->invisibleCursor = XCreatePixmapCursor (dpy, bitmap, bitmap,
+ &black, &black, 0, 0);
+ if (!s->invisibleCursor)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Couldn't create invisible cursor");
+ XFree (visinfo);
+ return FALSE;
+ }
+
+ XFreePixmap (dpy, bitmap);
+ XFreeColors (dpy, s->colormap, &black.pixel, 1, 0);
+
+ glXGetConfig (dpy, visinfo, GLX_USE_GL, &value);
+ if (!value)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Root visual is not a GL visual");
+ XFree (visinfo);
+ return FALSE;
+ }
+
+ glXGetConfig (dpy, visinfo, GLX_DOUBLEBUFFER, &value);
+ if (!value)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Root visual is not a double buffered GL visual");
+ XFree (visinfo);
+ return FALSE;
+ }
+
+ s->ctx = glXCreateContext (dpy, visinfo, NULL, !indirectRendering);
+ if (!s->ctx)
+ {
+ compLogMessage ("core", CompLogLevelFatal, "glXCreateContext failed");
+ XFree (visinfo);
+
+ return FALSE;
+ }
+
+ glxExtensions = glXQueryExtensionsString (dpy, screenNum);
+ if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "GLX_EXT_texture_from_pixmap is missing");
+ XFree (visinfo);
+
+ return FALSE;
+ }
+
+ XFree (visinfo);
+
+ if (!strstr (glxExtensions, "GLX_SGIX_fbconfig"))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "GLX_SGIX_fbconfig is missing");
+ return FALSE;
+ }
+
+ s->getProcAddress = (GLXGetProcAddressProc)
+ getProcAddress (s, "glXGetProcAddressARB");
+ s->bindTexImage = (GLXBindTexImageProc)
+ getProcAddress (s, "glXBindTexImageEXT");
+ s->releaseTexImage = (GLXReleaseTexImageProc)
+ getProcAddress (s, "glXReleaseTexImageEXT");
+ s->queryDrawable = (GLXQueryDrawableProc)
+ getProcAddress (s, "glXQueryDrawable");
+ s->getFBConfigs = (GLXGetFBConfigsProc)
+ getProcAddress (s, "glXGetFBConfigs");
+ s->getFBConfigAttrib = (GLXGetFBConfigAttribProc)
+ getProcAddress (s, "glXGetFBConfigAttrib");
+ s->createPixmap = (GLXCreatePixmapProc)
+ getProcAddress (s, "glXCreatePixmap");
+
+ if (!s->bindTexImage)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "glXBindTexImageEXT is missing");
+ return FALSE;
+ }
+
+ if (!s->releaseTexImage)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "glXReleaseTexImageEXT is missing");
+ return FALSE;
+ }
+
+ if (!s->queryDrawable ||
+ !s->getFBConfigs ||
+ !s->getFBConfigAttrib ||
+ !s->createPixmap)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "fbconfig functions missing");
+ return FALSE;
+ }
+
+ s->copySubBuffer = NULL;
+ if (strstr (glxExtensions, "GLX_MESA_copy_sub_buffer"))
+ s->copySubBuffer = (GLXCopySubBufferProc)
+ getProcAddress (s, "glXCopySubBufferMESA");
+
+ s->getVideoSync = NULL;
+ s->waitVideoSync = NULL;
+ if (strstr (glxExtensions, "GLX_SGI_video_sync"))
+ {
+ s->getVideoSync = (GLXGetVideoSyncProc)
+ getProcAddress (s, "glXGetVideoSyncSGI");
+
+ s->waitVideoSync = (GLXWaitVideoSyncProc)
+ getProcAddress (s, "glXWaitVideoSyncSGI");
+ }
+
+ glXMakeCurrent (dpy, s->output, s->ctx);
+ currentRoot = s->root;
+
+ glExtensions = (const char *) glGetString (GL_EXTENSIONS);
+ if (!glExtensions)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No valid GL extensions string found.");
+ return FALSE;
+ }
+
+ s->textureNonPowerOfTwo = 0;
+ if (strstr (glExtensions, "GL_ARB_texture_non_power_of_two"))
+ s->textureNonPowerOfTwo = 1;
+
+ glGetIntegerv (GL_MAX_TEXTURE_SIZE, &s->maxTextureSize);
+
+ s->textureRectangle = 0;
+ if (strstr (glExtensions, "GL_NV_texture_rectangle") ||
+ strstr (glExtensions, "GL_EXT_texture_rectangle") ||
+ strstr (glExtensions, "GL_ARB_texture_rectangle"))
+ {
+ s->textureRectangle = 1;
+
+ if (!s->textureNonPowerOfTwo)
+ {
+ GLint maxTextureSize;
+
+ glGetIntegerv (GL_MAX_RECTANGLE_TEXTURE_SIZE_NV, &maxTextureSize);
+ if (maxTextureSize > s->maxTextureSize)
+ s->maxTextureSize = maxTextureSize;
+ }
+ }
+
+ if (!(s->textureRectangle || s->textureNonPowerOfTwo))
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "Support for non power of two textures missing");
+ return FALSE;
+ }
+
+ s->textureEnvCombine = s->textureEnvCrossbar = 0;
+ if (strstr (glExtensions, "GL_ARB_texture_env_combine"))
+ {
+ s->textureEnvCombine = 1;
+
+ /* XXX: GL_NV_texture_env_combine4 need special code but it seams to
+ be working anyway for now... */
+ if (strstr (glExtensions, "GL_ARB_texture_env_crossbar") ||
+ strstr (glExtensions, "GL_NV_texture_env_combine4"))
+ s->textureEnvCrossbar = 1;
+ }
+
+ s->textureBorderClamp = 0;
+ if (strstr (glExtensions, "GL_ARB_texture_border_clamp") ||
+ strstr (glExtensions, "GL_SGIS_texture_border_clamp"))
+ s->textureBorderClamp = 1;
+
+ s->maxTextureUnits = 1;
+ if (strstr (glExtensions, "GL_ARB_multitexture"))
+ {
+ s->activeTexture = (GLActiveTextureProc)
+ getProcAddress (s, "glActiveTexture");
+ s->clientActiveTexture = (GLClientActiveTextureProc)
+ getProcAddress (s, "glClientActiveTexture");
+ s->multiTexCoord2f = (GLMultiTexCoord2fProc)
+ getProcAddress (s, "glMultiTexCoord2f");
+
+ if (s->activeTexture && s->clientActiveTexture && s->multiTexCoord2f)
+ glGetIntegerv (GL_MAX_TEXTURE_UNITS_ARB, &s->maxTextureUnits);
+ }
+
+ s->fragmentProgram = 0;
+ if (strstr (glExtensions, "GL_ARB_fragment_program"))
+ {
+ s->genPrograms = (GLGenProgramsProc)
+ getProcAddress (s, "glGenProgramsARB");
+ s->deletePrograms = (GLDeleteProgramsProc)
+ getProcAddress (s, "glDeleteProgramsARB");
+ s->bindProgram = (GLBindProgramProc)
+ getProcAddress (s, "glBindProgramARB");
+ s->programString = (GLProgramStringProc)
+ getProcAddress (s, "glProgramStringARB");
+ s->programEnvParameter4f = (GLProgramParameter4fProc)
+ getProcAddress (s, "glProgramEnvParameter4fARB");
+ s->programLocalParameter4f = (GLProgramParameter4fProc)
+ getProcAddress (s, "glProgramLocalParameter4fARB");
+ s->getProgramiv = (GLGetProgramivProc)
+ getProcAddress (s, "glGetProgramivARB");
+
+ if (s->genPrograms &&
+ s->deletePrograms &&
+ s->bindProgram &&
+ s->programString &&
+ s->programEnvParameter4f &&
+ s->programLocalParameter4f &&
+ s->getProgramiv)
+ s->fragmentProgram = 1;
+ }
+
+ s->fbo = 0;
+ if (strstr (glExtensions, "GL_EXT_framebuffer_object"))
+ {
+ s->genFramebuffers = (GLGenFramebuffersProc)
+ getProcAddress (s, "glGenFramebuffersEXT");
+ s->deleteFramebuffers = (GLDeleteFramebuffersProc)
+ getProcAddress (s, "glDeleteFramebuffersEXT");
+ s->bindFramebuffer = (GLBindFramebufferProc)
+ getProcAddress (s, "glBindFramebufferEXT");
+ s->checkFramebufferStatus = (GLCheckFramebufferStatusProc)
+ getProcAddress (s, "glCheckFramebufferStatusEXT");
+ s->framebufferTexture2D = (GLFramebufferTexture2DProc)
+ getProcAddress (s, "glFramebufferTexture2DEXT");
+ s->generateMipmap = (GLGenerateMipmapProc)
+ getProcAddress (s, "glGenerateMipmapEXT");
+
+ if (s->genFramebuffers &&
+ s->deleteFramebuffers &&
+ s->bindFramebuffer &&
+ s->checkFramebufferStatus &&
+ s->framebufferTexture2D &&
+ s->generateMipmap)
+ s->fbo = 1;
+ }
+
+ s->textureCompression = 0;
+ if (strstr (glExtensions, "GL_ARB_texture_compression"))
+ s->textureCompression = 1;
+
+ fbConfigs = (*s->getFBConfigs) (dpy,
+ screenNum,
+ &nElements);
+
+ for (i = 0; i <= MAX_DEPTH; i++)
+ {
+ int j, db, stencil, depth, alpha, mipmap, rgba;
+
+ s->glxPixmapFBConfigs[i].fbConfig = NULL;
+ s->glxPixmapFBConfigs[i].mipmap = 0;
+ s->glxPixmapFBConfigs[i].yInverted = 0;
+ s->glxPixmapFBConfigs[i].textureFormat = 0;
+ s->glxPixmapFBConfigs[i].textureTargets = 0;
+
+ db = MAXSHORT;
+ stencil = MAXSHORT;
+ depth = MAXSHORT;
+ mipmap = 0;
+ rgba = 0;
+
+ for (j = 0; j < nElements; j++)
+ {
+ XVisualInfo *vi;
+ int visualDepth;
+
+ vi = glXGetVisualFromFBConfig (dpy, fbConfigs[j]);
+ if (vi == NULL)
+ continue;
+
+ visualDepth = vi->depth;
+
+ XFree (vi);
+
+ if (visualDepth != i)
+ continue;
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_ALPHA_SIZE,
+ &alpha);
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_BUFFER_SIZE,
+ &value);
+ if (value != i && (value - alpha) != i)
+ continue;
+
+ value = 0;
+ if (i == 32)
+ {
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_BIND_TO_TEXTURE_RGBA_EXT,
+ &value);
+
+ if (value)
+ {
+ rgba = 1;
+
+ s->glxPixmapFBConfigs[i].textureFormat =
+ GLX_TEXTURE_FORMAT_RGBA_EXT;
+ }
+ }
+
+ if (!value)
+ {
+ if (rgba)
+ continue;
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_BIND_TO_TEXTURE_RGB_EXT,
+ &value);
+ if (!value)
+ continue;
+
+ s->glxPixmapFBConfigs[i].textureFormat =
+ GLX_TEXTURE_FORMAT_RGB_EXT;
+ }
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_DOUBLEBUFFER,
+ &value);
+ if (value > db)
+ continue;
+
+ db = value;
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_STENCIL_SIZE,
+ &value);
+ if (value > stencil)
+ continue;
+
+ stencil = value;
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_DEPTH_SIZE,
+ &value);
+ if (value > depth)
+ continue;
+
+ depth = value;
+
+ if (s->fbo)
+ {
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_BIND_TO_MIPMAP_TEXTURE_EXT,
+ &value);
+ if (value < mipmap)
+ continue;
+
+ mipmap = value;
+ }
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_Y_INVERTED_EXT,
+ &value);
+
+ s->glxPixmapFBConfigs[i].yInverted = value;
+
+ (*s->getFBConfigAttrib) (dpy,
+ fbConfigs[j],
+ GLX_BIND_TO_TEXTURE_TARGETS_EXT,
+ &value);
+
+ s->glxPixmapFBConfigs[i].textureTargets = value;
+
+ s->glxPixmapFBConfigs[i].fbConfig = fbConfigs[j];
+ s->glxPixmapFBConfigs[i].mipmap = mipmap;
+ }
+ }
+
+ if (nElements)
+ XFree (fbConfigs);
+
+ if (!s->glxPixmapFBConfigs[defaultDepth].fbConfig)
+ {
+ compLogMessage ("core", CompLogLevelFatal,
+ "No GLXFBConfig for default depth, "
+ "this isn't going to work.");
+ return FALSE;
+ }
+
+ initTexture (s, &s->backgroundTexture);
+ s->backgroundLoaded = FALSE;
+
+ s->defaultIcon = NULL;
+
+ s->desktopWindowCount = 0;
+
+ glClearColor (0.0, 0.0, 0.0, 1.0);
+ glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable (GL_CULL_FACE);
+ glDisable (GL_BLEND);
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ glColor4usv (defaultColor);
+ glEnableClientState (GL_VERTEX_ARRAY);
+ glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+
+ s->canDoSaturated = s->canDoSlightlySaturated = FALSE;
+ if (s->textureEnvCombine && s->maxTextureUnits >= 2)
+ {
+ s->canDoSaturated = TRUE;
+ if (s->textureEnvCrossbar && s->maxTextureUnits >= 4)
+ s->canDoSlightlySaturated = TRUE;
+ }
+
+ s->redrawTime = 1000 / defaultRefreshRate;
+ s->optimalRedrawTime = s->redrawTime;
+
+ reshape (s, s->attrib.width, s->attrib.height);
+
+ detectRefreshRateOfScreen (s);
+ detectOutputDevices (s);
+ updateOutputDevices (s);
+
+ glLightModelfv (GL_LIGHT_MODEL_AMBIENT, globalAmbient);
+
+ glEnable (GL_LIGHT0);
+ glLightfv (GL_LIGHT0, GL_AMBIENT, ambientLight);
+ glLightfv (GL_LIGHT0, GL_DIFFUSE, diffuseLight);
+ glLightfv (GL_LIGHT0, GL_POSITION, light0Position);
+
+ glColorMaterial (GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+
+ glNormal3f (0.0f, 0.0f, -1.0f);
+
+ s->lighting = FALSE;
+ s->slowAnimations = FALSE;
+
+ addScreenToDisplay (display, s);
+
+ getDesktopHints (s);
+
+ /* TODO: bailout properly when objectInitPlugins fails */
+ assert (objectInitPlugins (&s->base));
+
+ (*core.objectAdd) (&display->base, &s->base);
+
+ XQueryTree (dpy, s->root,
+ &rootReturn, &parentReturn,
+ &children, &nchildren);
+
+ for (i = 0; i < nchildren; i++)
+ addWindow (s, children[i], i ? children[i - 1] : 0);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->attrib.map_state == IsViewable)
+ {
+ w->activeNum = s->activeNum++;
+ w->damaged = TRUE;
+ w->invisible = WINDOW_INVISIBLE (w);
+ }
+ }
+
+ /* enforce restack on all windows */
+ for (i = 0, w = s->reverseWindows; w && i < nchildren; i++, w = w->prev)
+ children[i] = w->id;
+ XRestackWindows (dpy, children, i);
+
+ XFree (children);
+
+ attrib.override_redirect = 1;
+ attrib.event_mask = PropertyChangeMask;
+
+ s->grabWindow = XCreateWindow (dpy, s->root, -100, -100, 1, 1, 0,
+ CopyFromParent, InputOnly, CopyFromParent,
+ CWOverrideRedirect | CWEventMask,
+ &attrib);
+ XMapWindow (dpy, s->grabWindow);
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ {
+ long xdndVersion = 3;
+
+ s->screenEdge[i].id = XCreateWindow (dpy, s->root, -100, -100, 1, 1, 0,
+ CopyFromParent, InputOnly,
+ CopyFromParent, CWOverrideRedirect,
+ &attrib);
+
+ XChangeProperty (dpy, s->screenEdge[i].id, display->xdndAwareAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) &xdndVersion, 1);
+
+ XSelectInput (dpy, s->screenEdge[i].id,
+ EnterWindowMask |
+ LeaveWindowMask |
+ ButtonPressMask |
+ ButtonReleaseMask |
+ PointerMotionMask);
+ }
+
+ updateScreenEdges (s);
+
+ setDesktopHints (s);
+ setSupportingWmCheck (s);
+ setSupported (s);
+
+ s->normalCursor = XCreateFontCursor (dpy, XC_left_ptr);
+ s->busyCursor = XCreateFontCursor (dpy, XC_watch);
+
+ XDefineCursor (dpy, s->root, s->normalCursor);
+
+ s->filter[NOTHING_TRANS_FILTER] = COMP_TEXTURE_FILTER_FAST;
+ s->filter[SCREEN_TRANS_FILTER] = COMP_TEXTURE_FILTER_GOOD;
+ s->filter[WINDOW_TRANS_FILTER] = COMP_TEXTURE_FILTER_GOOD;
+
+ return TRUE;
+}
+
+void
+removeScreen (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ CompScreen *p;
+ int i;
+
+ for (p = d->screens; p; p = p->next)
+ if (p->next == s)
+ break;
+
+ if (p)
+ p->next = s->next;
+ else
+ d->screens = NULL;
+
+ while (s->windows)
+ removeWindow (s->windows);
+
+ (*core.objectRemove) (&d->base, &s->base);
+
+ objectFiniPlugins (&s->base);
+
+ XUngrabKey (d->display, AnyKey, AnyModifier, s->root);
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ XDestroyWindow (d->display, s->screenEdge[i].id);
+
+ XDestroyWindow (d->display, s->grabWindow);
+
+ finiTexture (s, &s->backgroundTexture);
+
+ if (s->defaultIcon)
+ {
+ finiTexture (s, &s->defaultIcon->texture);
+ free (s->defaultIcon);
+ }
+
+ glXDestroyContext (d->display, s->ctx);
+
+ XFreeCursor (d->display, s->invisibleCursor);
+
+#ifdef USE_COW
+ if (useCow)
+ XCompositeReleaseOverlayWindow (s->display->display, s->root);
+#endif
+
+ freeScreen (s);
+}
+
+void
+damageScreenRegion (CompScreen *screen,
+ Region region)
+{
+ if (screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ XUnionRegion (screen->damage, region, screen->damage);
+
+ screen->damageMask |= COMP_SCREEN_DAMAGE_REGION_MASK;
+
+ /* if the number of damage rectangles grows two much between repaints,
+ we have a lot of overhead just for doing the damage tracking -
+ in order to make sure we're not having too much overhead, damage
+ the whole screen if we have a lot of damage rects */
+ if (screen->damage->numRects > 100)
+ damageScreen (screen);
+}
+
+void
+damageScreen (CompScreen *s)
+{
+ s->damageMask |= COMP_SCREEN_DAMAGE_ALL_MASK;
+ s->damageMask &= ~COMP_SCREEN_DAMAGE_REGION_MASK;
+}
+
+void
+damagePendingOnScreen (CompScreen *s)
+{
+ s->damageMask |= COMP_SCREEN_DAMAGE_PENDING_MASK;
+}
+
+void
+forEachWindowOnScreen (CompScreen *screen,
+ ForEachWindowProc proc,
+ void *closure)
+{
+ CompWindow *w;
+
+ for (w = screen->windows; w; w = w->next)
+ (*proc) (w, closure);
+}
+
+void
+focusDefaultWindow (CompScreen *s)
+{
+ CompDisplay *d = s->display;
+ CompWindow *w;
+ CompWindow *focus = NULL;
+
+ if (!d->opt[COMP_DISPLAY_OPTION_CLICK_TO_FOCUS].value.b)
+ {
+ w = findTopLevelWindowAtDisplay (d, d->below);
+
+ if (w && (*w->screen->focusWindow) (w))
+ {
+ if (!(w->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask)))
+ focus = w;
+ }
+ else
+ {
+ Bool status;
+ Window rootReturn, childReturn;
+ int dummyInt;
+ unsigned int dummyUInt;
+
+ /* huh, we didn't find d->below ... perhaps it's out of date;
+ try grabbing it through the server */
+
+ status = XQueryPointer (d->display, s->root, &rootReturn,
+ &childReturn, &dummyInt, &dummyInt,
+ &dummyInt, &dummyInt, &dummyUInt);
+
+ if (status && rootReturn == s->root)
+ {
+ w = findTopLevelWindowAtDisplay (d, childReturn);
+
+ if (w && (*w->screen->focusWindow) (w))
+ {
+ if (!(w->type & (CompWindowTypeDesktopMask |
+ CompWindowTypeDockMask)))
+ focus = w;
+ }
+ }
+ }
+ }
+
+ if (!focus)
+ {
+ for (w = s->reverseWindows; w; w = w->prev)
+ {
+ if (w->type & CompWindowTypeDockMask)
+ continue;
+
+ if ((*s->focusWindow) (w))
+ {
+ if (focus)
+ {
+ if (w->type & (CompWindowTypeNormalMask |
+ CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask))
+ {
+ if (compareWindowActiveness (focus, w) < 0)
+ focus = w;
+ }
+ }
+ else
+ focus = w;
+ }
+ }
+ }
+
+ if (focus)
+ {
+ if (focus->id != d->activeWindow)
+ moveInputFocusToWindow (focus);
+ }
+ else
+ {
+ XSetInputFocus (d->display, s->root, RevertToPointerRoot,
+ CurrentTime);
+ }
+}
+
+CompWindow *
+findWindowAtScreen (CompScreen *s,
+ Window id)
+{
+ if (lastFoundWindow && lastFoundWindow->id == id)
+ {
+ return lastFoundWindow;
+ }
+ else
+ {
+ CompWindow *w;
+
+ for (w = s->windows; w; w = w->next)
+ if (w->id == id)
+ return (lastFoundWindow = w);
+ }
+
+ return 0;
+}
+
+CompWindow *
+findTopLevelWindowAtScreen (CompScreen *s,
+ Window id)
+{
+ CompWindow *w;
+
+ w = findWindowAtScreen (s, id);
+ if (!w)
+ return NULL;
+
+ if (w->attrib.override_redirect)
+ {
+ /* likely a frame window */
+ if (w->attrib.class == InputOnly)
+ {
+ for (w = s->windows; w; w = w->next)
+ if (w->frame == id)
+ return w;
+ }
+
+ return NULL;
+ }
+
+ return w;
+}
+
+void
+insertWindowIntoScreen (CompScreen *s,
+ CompWindow *w,
+ Window aboveId)
+{
+ CompWindow *p;
+
+ if (s->windows)
+ {
+ if (!aboveId)
+ {
+ w->next = s->windows;
+ w->prev = NULL;
+ s->windows->prev = w;
+ s->windows = w;
+ }
+ else
+ {
+ for (p = s->windows; p; p = p->next)
+ {
+ if (p->id == aboveId)
+ {
+ if (p->next)
+ {
+ w->next = p->next;
+ w->prev = p;
+ p->next->prev = w;
+ p->next = w;
+ }
+ else
+ {
+ p->next = w;
+ w->next = NULL;
+ w->prev = p;
+ s->reverseWindows = w;
+ }
+ break;
+ }
+ }
+
+#ifdef DEBUG
+ if (!p)
+ abort ();
+#endif
+
+ }
+ }
+ else
+ {
+ s->reverseWindows = s->windows = w;
+ w->prev = w->next = NULL;
+ }
+}
+
+void
+unhookWindowFromScreen (CompScreen *s,
+ CompWindow *w)
+{
+ CompWindow *next, *prev;
+
+ next = w->next;
+ prev = w->prev;
+
+ if (next || prev)
+ {
+ if (next)
+ {
+ if (prev)
+ {
+ next->prev = prev;
+ }
+ else
+ {
+ s->windows = next;
+ next->prev = NULL;
+ }
+ }
+
+ if (prev)
+ {
+ if (next)
+ {
+ prev->next = next;
+ }
+ else
+ {
+ s->reverseWindows = prev;
+ prev->next = NULL;
+ }
+ }
+ }
+ else
+ {
+ s->windows = s->reverseWindows = NULL;
+ }
+
+ if (w == lastFoundWindow)
+ lastFoundWindow = NULL;
+ if (w == lastDamagedWindow)
+ lastDamagedWindow = NULL;
+}
+
+#define POINTER_GRAB_MASK (ButtonReleaseMask | \
+ ButtonPressMask | \
+ PointerMotionMask)
+int
+pushScreenGrab (CompScreen *s,
+ Cursor cursor,
+ const char *name)
+{
+ if (s->maxGrab == 0)
+ {
+ int status;
+
+ status = XGrabPointer (s->display->display, s->grabWindow, TRUE,
+ POINTER_GRAB_MASK,
+ GrabModeAsync, GrabModeAsync,
+ s->root, cursor,
+ CurrentTime);
+
+ if (status == GrabSuccess)
+ {
+ status = XGrabKeyboard (s->display->display,
+ s->grabWindow, TRUE,
+ GrabModeAsync, GrabModeAsync,
+ CurrentTime);
+ if (status != GrabSuccess)
+ {
+ XUngrabPointer (s->display->display, CurrentTime);
+ return 0;
+ }
+ }
+ else
+ return 0;
+ }
+ else
+ {
+ XChangeActivePointerGrab (s->display->display, POINTER_GRAB_MASK,
+ cursor, CurrentTime);
+ }
+
+ if (s->grabSize <= s->maxGrab)
+ {
+ s->grabs = realloc (s->grabs, sizeof (CompGrab) * (s->maxGrab + 1));
+ if (!s->grabs)
+ return 0;
+
+ s->grabSize = s->maxGrab + 1;
+ }
+
+ s->grabs[s->maxGrab].cursor = cursor;
+ s->grabs[s->maxGrab].active = TRUE;
+ s->grabs[s->maxGrab].name = name;
+
+ s->maxGrab++;
+
+ return s->maxGrab;
+}
+
+void
+updateScreenGrab (CompScreen *s,
+ int index,
+ Cursor cursor)
+{
+ index--;
+
+#ifdef DEBUG
+ if (index < 0 || index >= s->maxGrab)
+ abort ();
+#endif
+
+ XChangeActivePointerGrab (s->display->display, POINTER_GRAB_MASK,
+ cursor, CurrentTime);
+
+ s->grabs[index].cursor = cursor;
+}
+
+void
+removeScreenGrab (CompScreen *s,
+ int index,
+ XPoint *restorePointer)
+{
+ int maxGrab;
+
+ index--;
+
+#ifdef DEBUG
+ if (index < 0 || index >= s->maxGrab)
+ abort ();
+#endif
+
+ s->grabs[index].cursor = None;
+ s->grabs[index].active = FALSE;
+
+ for (maxGrab = s->maxGrab; maxGrab; maxGrab--)
+ if (s->grabs[maxGrab - 1].active)
+ break;
+
+ if (maxGrab != s->maxGrab)
+ {
+ if (maxGrab)
+ {
+ XChangeActivePointerGrab (s->display->display,
+ POINTER_GRAB_MASK,
+ s->grabs[maxGrab - 1].cursor,
+ CurrentTime);
+ }
+ else
+ {
+ if (restorePointer)
+ warpPointer (s,
+ restorePointer->x - pointerX,
+ restorePointer->y - pointerY);
+
+ XUngrabPointer (s->display->display, CurrentTime);
+ XUngrabKeyboard (s->display->display, CurrentTime);
+ }
+
+ s->maxGrab = maxGrab;
+ }
+}
+
+/* otherScreenGrabExist takes a series of strings terminated by a NULL.
+ It returns TRUE if a grab exists but it is NOT held by one of the
+ plugins listed, returns FALSE otherwise. */
+
+Bool
+otherScreenGrabExist (CompScreen *s, ...)
+{
+ va_list ap;
+ char *name;
+ int i;
+
+ for (i = 0; i < s->maxGrab; i++)
+ {
+ if (s->grabs[i].active)
+ {
+ va_start (ap, s);
+
+ name = va_arg (ap, char *);
+ while (name)
+ {
+ if (strcmp (name, s->grabs[i].name) == 0)
+ break;
+
+ name = va_arg (ap, char *);
+ }
+
+ va_end (ap);
+
+ if (!name)
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static void
+grabUngrabOneKey (CompScreen *s,
+ unsigned int modifiers,
+ int keycode,
+ Bool grab)
+{
+ if (grab)
+ {
+ XGrabKey (s->display->display,
+ keycode,
+ modifiers,
+ s->root,
+ TRUE,
+ GrabModeAsync,
+ GrabModeAsync);
+ }
+ else
+ {
+ XUngrabKey (s->display->display,
+ keycode,
+ modifiers,
+ s->root);
+ }
+}
+
+static Bool
+grabUngrabKeys (CompScreen *s,
+ unsigned int modifiers,
+ int keycode,
+ Bool grab)
+{
+ XModifierKeymap *modMap = s->display->modMap;
+ int ignore, mod, k;
+
+ compCheckForError (s->display->display);
+
+ for (ignore = 0; ignore <= s->display->ignoredModMask; ignore++)
+ {
+ if (ignore & ~s->display->ignoredModMask)
+ continue;
+
+ if (keycode != 0)
+ {
+ grabUngrabOneKey (s, modifiers | ignore, keycode, grab);
+ }
+ else
+ {
+ for (mod = 0; mod < 8; mod++)
+ {
+ if (modifiers & (1 << mod))
+ {
+ for (k = mod * modMap->max_keypermod;
+ k < (mod + 1) * modMap->max_keypermod;
+ k++)
+ {
+ if (modMap->modifiermap[k])
+ {
+ grabUngrabOneKey (
+ s,
+ (modifiers & ~(1 << mod)) | ignore,
+ modMap->modifiermap[k],
+ grab);
+ }
+ }
+ }
+ }
+ }
+
+ if (compCheckForError (s->display->display))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static Bool
+addPassiveKeyGrab (CompScreen *s,
+ CompKeyBinding *key)
+{
+ CompKeyGrab *keyGrab;
+ unsigned int mask;
+ int i;
+
+ mask = virtualToRealModMask (s->display, key->modifiers);
+
+ for (i = 0; i < s->nKeyGrab; i++)
+ {
+ if (key->keycode == s->keyGrab[i].keycode &&
+ mask == s->keyGrab[i].modifiers)
+ {
+ s->keyGrab[i].count++;
+ return TRUE;
+ }
+ }
+
+ keyGrab = realloc (s->keyGrab, sizeof (CompKeyGrab) * (s->nKeyGrab + 1));
+ if (!keyGrab)
+ return FALSE;
+
+ s->keyGrab = keyGrab;
+
+ if (!(mask & CompNoMask))
+ {
+ if (!grabUngrabKeys (s, mask, key->keycode, TRUE))
+ return FALSE;
+ }
+
+ s->keyGrab[s->nKeyGrab].keycode = key->keycode;
+ s->keyGrab[s->nKeyGrab].modifiers = mask;
+ s->keyGrab[s->nKeyGrab].count = 1;
+
+ s->nKeyGrab++;
+
+ return TRUE;
+}
+
+static void
+removePassiveKeyGrab (CompScreen *s,
+ CompKeyBinding *key)
+{
+ unsigned int mask;
+ int i;
+
+ for (i = 0; i < s->nKeyGrab; i++)
+ {
+ mask = virtualToRealModMask (s->display, key->modifiers);
+ if (key->keycode == s->keyGrab[i].keycode &&
+ mask == s->keyGrab[i].modifiers)
+ {
+ s->keyGrab[i].count--;
+ if (s->keyGrab[i].count)
+ return;
+
+ memmove (s->keyGrab + i, s->keyGrab + i + 1,
+ (s->nKeyGrab - (i + 1)) * sizeof (CompKeyGrab));
+
+ s->nKeyGrab--;
+ s->keyGrab = realloc (s->keyGrab,
+ sizeof (CompKeyGrab) * s->nKeyGrab);
+
+ if (!(mask & CompNoMask))
+ grabUngrabKeys (s, mask, key->keycode, FALSE);
+ }
+ }
+}
+
+static void
+updatePassiveKeyGrabs (CompScreen *s)
+{
+ int i;
+
+ XUngrabKey (s->display->display, AnyKey, AnyModifier, s->root);
+
+ for (i = 0; i < s->nKeyGrab; i++)
+ {
+ if (!(s->keyGrab[i].modifiers & CompNoMask))
+ {
+ grabUngrabKeys (s, s->keyGrab[i].modifiers,
+ s->keyGrab[i].keycode, TRUE);
+ }
+ }
+}
+
+static Bool
+addPassiveButtonGrab (CompScreen *s,
+ CompButtonBinding *button)
+{
+ CompButtonGrab *buttonGrab;
+ int i;
+
+ for (i = 0; i < s->nButtonGrab; i++)
+ {
+ if (button->button == s->buttonGrab[i].button &&
+ button->modifiers == s->buttonGrab[i].modifiers)
+ {
+ s->buttonGrab[i].count++;
+ return TRUE;
+ }
+ }
+
+ buttonGrab = realloc (s->buttonGrab,
+ sizeof (CompButtonGrab) * (s->nButtonGrab + 1));
+ if (!buttonGrab)
+ return FALSE;
+
+ s->buttonGrab = buttonGrab;
+
+ s->buttonGrab[s->nButtonGrab].button = button->button;
+ s->buttonGrab[s->nButtonGrab].modifiers = button->modifiers;
+ s->buttonGrab[s->nButtonGrab].count = 1;
+
+ s->nButtonGrab++;
+
+ return TRUE;
+}
+
+static void
+removePassiveButtonGrab (CompScreen *s,
+ CompButtonBinding *button)
+{
+ int i;
+
+ for (i = 0; i < s->nButtonGrab; i++)
+ {
+ if (button->button == s->buttonGrab[i].button &&
+ button->modifiers == s->buttonGrab[i].modifiers)
+ {
+ s->buttonGrab[i].count--;
+ if (s->buttonGrab[i].count)
+ return;
+
+ memmove (s->buttonGrab + i, s->buttonGrab + i + 1,
+ (s->nButtonGrab - (i + 1)) * sizeof (CompButtonGrab));
+
+ s->nButtonGrab--;
+ s->buttonGrab = realloc (s->buttonGrab,
+ sizeof (CompButtonGrab) * s->nButtonGrab);
+ }
+ }
+}
+
+Bool
+addScreenAction (CompScreen *s,
+ CompAction *action)
+{
+ if (action->type & CompBindingTypeKey)
+ {
+ if (!addPassiveKeyGrab (s, &action->key))
+ return FALSE;
+ }
+
+ if (action->type & CompBindingTypeButton)
+ {
+ if (!addPassiveButtonGrab (s, &action->button))
+ {
+ if (action->type & CompBindingTypeKey)
+ removePassiveKeyGrab (s, &action->key);
+
+ return FALSE;
+ }
+ }
+
+ if (action->edgeMask)
+ {
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ if (action->edgeMask & (1 << i))
+ enableScreenEdge (s, i);
+ }
+
+ return TRUE;
+}
+
+void
+removeScreenAction (CompScreen *s,
+ CompAction *action)
+{
+ if (action->type & CompBindingTypeKey)
+ removePassiveKeyGrab (s, &action->key);
+
+ if (action->type & CompBindingTypeButton)
+ removePassiveButtonGrab (s, &action->button);
+
+ if (action->edgeMask)
+ {
+ int i;
+
+ for (i = 0; i < SCREEN_EDGE_NUM; i++)
+ if (action->edgeMask & (1 << i))
+ disableScreenEdge (s, i);
+ }
+}
+
+void
+updatePassiveGrabs (CompScreen *s)
+{
+ updatePassiveKeyGrabs (s);
+}
+
+static void
+computeWorkareaForBox (CompScreen *s,
+ BoxPtr pBox,
+ XRectangle *area)
+{
+ CompWindow *w;
+ Region region;
+ REGION r;
+ int x1, y1, x2, y2;
+
+ region = XCreateRegion ();
+ if (!region)
+ {
+ area->x = pBox->x1;
+ area->y = pBox->y1;
+ area->width = pBox->x1 - pBox->x1;
+ area->height = pBox->y2 - pBox->y1;
+
+ return;
+ }
+
+ r.rects = &r.extents;
+ r.numRects = r.size = 1;
+ r.extents = *pBox;
+
+ XUnionRegion (&r, region, region);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!w->mapNum)
+ continue;
+
+ if (!w->struts)
+ continue;
+
+ r.extents.y1 = pBox->y1;
+ r.extents.y2 = pBox->y2;
+
+ x1 = w->struts->left.x;
+ y1 = w->struts->left.y;
+ x2 = x1 + w->struts->left.width;
+ y2 = y1 + w->struts->left.height;
+
+ if (y1 < pBox->y2 && y2 > pBox->y1)
+ {
+ r.extents.x1 = x1;
+ r.extents.x2 = x2;
+
+ XSubtractRegion (region, &r, region);
+ }
+
+ x1 = w->struts->right.x;
+ y1 = w->struts->right.y;
+ x2 = x1 + w->struts->right.width;
+ y2 = y1 + w->struts->right.height;
+
+ if (y1 < pBox->y2 && y2 > pBox->y1)
+ {
+ r.extents.x1 = x1;
+ r.extents.x2 = x2;
+
+ XSubtractRegion (region, &r, region);
+ }
+
+ r.extents.x1 = pBox->x1;
+ r.extents.x2 = pBox->x2;
+
+ x1 = w->struts->top.x;
+ y1 = w->struts->top.y;
+ x2 = x1 + w->struts->top.width;
+ y2 = y1 + w->struts->top.height;
+
+ if (x1 < pBox->x2 && x2 > pBox->x1)
+ {
+ r.extents.y1 = y1;
+ r.extents.y2 = y2;
+
+ XSubtractRegion (region, &r, region);
+ }
+
+ x1 = w->struts->bottom.x;
+ y1 = w->struts->bottom.y;
+ x2 = x1 + w->struts->bottom.width;
+ y2 = y1 + w->struts->bottom.height;
+
+ if (x1 < pBox->x2 && x2 > pBox->x1)
+ {
+ r.extents.y1 = y1;
+ r.extents.y2 = y2;
+
+ XSubtractRegion (region, &r, region);
+ }
+ }
+
+ if (XEmptyRegion (region))
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "Empty box after applying struts, ignoring struts");
+ region->extents = *pBox;
+ }
+
+ area->x = region->extents.x1;
+ area->y = region->extents.y1;
+ area->width = region->extents.x2 - region->extents.x1;
+ area->height = region->extents.y2 - region->extents.y1;
+
+ XDestroyRegion (region);
+}
+
+void
+updateWorkareaForScreen (CompScreen *s)
+{
+ XRectangle workArea;
+ BoxRec box;
+ int i;
+ Bool workAreaChanged = FALSE;
+
+ for (i = 0; i < s->nOutputDev; i++)
+ {
+ computeWorkareaForBox (s, &s->outputDev[i].region.extents, &workArea);
+ if (memcmp (&workArea, &s->outputDev[i].workArea, sizeof (XRectangle)))
+ {
+ workAreaChanged = TRUE;
+ s->outputDev[i].workArea = workArea;
+ }
+ }
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = s->width;
+ box.y2 = s->height;
+
+ computeWorkareaForBox (s, &box, &workArea);
+
+ if (memcmp (&workArea, &s->workArea, sizeof (XRectangle)))
+ {
+ workAreaChanged = TRUE;
+ s->workArea = workArea;
+
+ setDesktopHints (s);
+ }
+
+ if (workAreaChanged)
+ {
+ CompWindow *w;
+
+ /* as work area changed, update all maximized windows on this
+ screen to snap to the new work area */
+ for (w = s->windows; w; w = w->next)
+ updateWindowSize (w);
+ }
+}
+
+static Bool
+isClientListWindow (CompWindow *w)
+{
+ /* windows with client id less than 2 have been destroyed and only exists
+ because some plugin keeps a reference to them. they should not be in
+ client lists */
+ if (w->id < 2)
+ return FALSE;
+
+ if (w->attrib.override_redirect)
+ return FALSE;
+
+ if (w->attrib.map_state != IsViewable)
+ {
+ if (!(w->state & CompWindowStateHiddenMask))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+countClientListWindow (CompWindow *w,
+ void *closure)
+{
+ if (isClientListWindow (w))
+ {
+ int *num = (int *) closure;
+
+ *num = *num + 1;
+ }
+}
+
+static void
+addClientListWindow (CompWindow *w,
+ void *closure)
+{
+ if (isClientListWindow (w))
+ {
+ int *num = (int *) closure;
+
+ w->screen->clientList[*num] = w;
+ *num = *num + 1;
+ }
+}
+
+static int
+compareMappingOrder (const void *w1,
+ const void *w2)
+{
+ return (*((CompWindow **) w1))->mapNum - (*((CompWindow **) w2))->mapNum;
+}
+
+void
+updateClientListForScreen (CompScreen *s)
+{
+ Window *clientList;
+ Window *clientListStacking;
+ Bool updateClientList = FALSE;
+ Bool updateClientListStacking = FALSE;
+ int i, n = 0;
+
+ forEachWindowOnScreen (s, countClientListWindow, (void *) &n);
+
+ if (n == 0)
+ {
+ if (n != s->nClientList)
+ {
+ free (s->clientList);
+
+ s->clientList = NULL;
+ s->nClientList = 0;
+
+ XChangeProperty (s->display->display, s->root,
+ s->display->clientListAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &s->grabWindow, 1);
+ XChangeProperty (s->display->display, s->root,
+ s->display->clientListStackingAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &s->grabWindow, 1);
+ }
+
+ return;
+ }
+
+ if (n != s->nClientList)
+ {
+ CompWindow **list;
+
+ list = realloc (s->clientList,
+ (sizeof (CompWindow *) + sizeof (Window) * 2) * n);
+ if (!list)
+ return;
+
+ s->clientList = list;
+ s->nClientList = n;
+
+ updateClientList = updateClientListStacking = TRUE;
+ }
+
+ clientList = (Window *) (s->clientList + n);
+ clientListStacking = clientList + n;
+
+ i = 0;
+ forEachWindowOnScreen (s, addClientListWindow, (void *) &i);
+
+ for (i = 0; i < n; i++)
+ {
+ if (!updateClientListStacking)
+ {
+ if (clientListStacking[i] != s->clientList[i]->id)
+ updateClientListStacking = TRUE;
+ }
+
+ clientListStacking[i] = s->clientList[i]->id;
+ }
+
+ /* sort window list in mapping order */
+ qsort (s->clientList, n, sizeof (CompWindow *), compareMappingOrder);
+
+ for (i = 0; i < n; i++)
+ {
+ if (!updateClientList)
+ {
+ if (clientList[i] != s->clientList[i]->id)
+ updateClientList = TRUE;
+ }
+
+ clientList[i] = s->clientList[i]->id;
+ }
+
+ if (updateClientList)
+ XChangeProperty (s->display->display, s->root,
+ s->display->clientListAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) clientList, s->nClientList);
+
+ if (updateClientListStacking)
+ XChangeProperty (s->display->display, s->root,
+ s->display->clientListStackingAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) clientListStacking, s->nClientList);
+}
+
+Window
+getActiveWindow (CompDisplay *display,
+ Window root)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ Window w = None;
+
+ result = XGetWindowProperty (display->display, root,
+ display->winActiveAtom, 0L, 1L, FALSE,
+ XA_WINDOW, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ memcpy (&w, data, sizeof (Window));
+ XFree (data);
+ }
+
+ return w;
+}
+
+void
+toolkitAction (CompScreen *s,
+ Atom toolkitAction,
+ Time eventTime,
+ Window window,
+ long data0,
+ long data1,
+ long data2)
+{
+ XEvent ev;
+
+ ev.type = ClientMessage;
+ ev.xclient.window = window;
+ ev.xclient.message_type = s->display->toolkitActionAtom;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = toolkitAction;
+ ev.xclient.data.l[1] = eventTime;
+ ev.xclient.data.l[2] = data0;
+ ev.xclient.data.l[3] = data1;
+ ev.xclient.data.l[4] = data2;
+
+ XUngrabPointer (s->display->display, CurrentTime);
+ XUngrabKeyboard (s->display->display, CurrentTime);
+
+ XSendEvent (s->display->display, s->root, FALSE, StructureNotifyMask, &ev);
+}
+
+void
+runCommand (CompScreen *s,
+ const char *command)
+{
+ if (*command == '\0')
+ return;
+
+ if (fork () == 0)
+ {
+ /* build a display string that uses the right screen number */
+ /* 5 extra chars should be enough for pretty much every situation */
+ int stringLen = strlen (s->display->displayString) + 5;
+ char screenString[stringLen];
+ char *pos, *delimiter, *colon;
+
+ setsid ();
+
+ strcpy (screenString, s->display->displayString);
+ delimiter = strrchr (screenString, ':');
+ if (delimiter)
+ {
+ colon = "";
+ delimiter = strchr (delimiter, '.');
+ if (delimiter)
+ *delimiter = '\0';
+ }
+ else
+ {
+ /* insert :0 to keep the syntax correct */
+ colon = ":0";
+ }
+ pos = screenString + strlen (screenString);
+
+ snprintf (pos, stringLen - (pos - screenString),
+ "%s.%d", colon, s->screenNum);
+
+ putenv (screenString);
+
+ exit (execl ("/bin/sh", "/bin/sh", "-c", command, NULL));
+ }
+}
+
+void
+moveScreenViewport (CompScreen *s,
+ int tx,
+ int ty,
+ Bool sync)
+{
+ CompWindow *w;
+ int wx, wy;
+
+ tx = s->x - tx;
+ tx = MOD (tx, s->hsize);
+ tx -= s->x;
+
+ ty = s->y - ty;
+ ty = MOD (ty, s->vsize);
+ ty -= s->y;
+
+ if (!tx && !ty)
+ return;
+
+ s->x += tx;
+ s->y += ty;
+
+ tx *= -s->width;
+ ty *= -s->height;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (windowOnAllViewports (w))
+ continue;
+
+ getWindowMovementForOffset (w, tx, ty, &wx, &wy);
+
+ if (w->saveMask & CWX)
+ w->saveWc.x += wx;
+
+ if (w->saveMask & CWY)
+ w->saveWc.y += wy;
+
+ /* move */
+ moveWindow (w, wx, wy, sync, TRUE);
+
+ if (sync)
+ syncWindowPosition (w);
+ }
+
+ if (sync)
+ {
+ setDesktopHints (s);
+
+ setCurrentActiveWindowHistory (s, s->x, s->y);
+
+ w = findWindowAtDisplay (s->display, s->display->activeWindow);
+ if (w)
+ {
+ int x, y;
+
+ defaultViewportForWindow (w, &x, &y);
+
+ /* add window to current history if it's default viewport is
+ still the current one. */
+ if (s->x == x && s->y == y)
+ addToCurrentActiveWindowHistory (s, w->id);
+ }
+ }
+}
+
+void
+moveWindowToViewportPosition (CompWindow *w,
+ int x,
+ int y,
+ Bool sync)
+{
+ int tx, vWidth = w->screen->width * w->screen->hsize;
+ int ty, vHeight = w->screen->height * w->screen->vsize;
+
+ if (w->screen->hsize != 1)
+ {
+ x += w->screen->x * w->screen->width;
+ x = MOD (x, vWidth);
+ x -= w->screen->x * w->screen->width;
+ }
+
+ if (w->screen->vsize != 1)
+ {
+ y += w->screen->y * w->screen->height;
+ y = MOD (y, vHeight);
+ y -= w->screen->y * w->screen->height;
+ }
+
+ tx = x - w->attrib.x;
+ ty = y - w->attrib.y;
+
+ if (tx || ty)
+ {
+ int m, wx, wy;
+
+ if (!w->managed)
+ return;
+
+ if (w->type & (CompWindowTypeDesktopMask | CompWindowTypeDockMask))
+ return;
+
+ if (w->state & CompWindowStateStickyMask)
+ return;
+
+ wx = tx;
+ wy = ty;
+
+ if (w->screen->hsize != 1)
+ {
+ m = w->attrib.x + tx;
+
+ if (m - w->output.left < w->screen->width - vWidth)
+ wx = tx + vWidth;
+ else if (m + w->width + w->output.right > vWidth)
+ wx = tx - vWidth;
+ }
+
+ if (w->screen->vsize != 1)
+ {
+ m = w->attrib.y + ty;
+
+ if (m - w->output.top < w->screen->height - vHeight)
+ wy = ty + vHeight;
+ else if (m + w->height + w->output.bottom > vHeight)
+ wy = ty - vHeight;
+ }
+
+ if (w->saveMask & CWX)
+ w->saveWc.x += wx;
+
+ if (w->saveMask & CWY)
+ w->saveWc.y += wy;
+
+ moveWindow (w, wx, wy, sync, TRUE);
+
+ if (sync)
+ syncWindowPosition (w);
+ }
+}
+
+CompGroup *
+addGroupToScreen (CompScreen *s,
+ Window id)
+{
+ CompGroup *group;
+
+ group = malloc (sizeof (CompGroup));
+ if (!group)
+ return NULL;
+
+ group->next = s->groups;
+ group->refCnt = 1;
+ group->id = id;
+
+ s->groups = group;
+
+ return group;
+}
+
+void
+removeGroupFromScreen (CompScreen *s,
+ CompGroup *group)
+{
+ group->refCnt--;
+ if (group->refCnt)
+ return;
+
+ if (group == s->groups)
+ {
+ s->groups = group->next;
+ }
+ else
+ {
+ CompGroup *g;
+
+ for (g = s->groups; g; g = g->next)
+ {
+ if (g->next == group)
+ {
+ g->next = group->next;
+ break;
+ }
+ }
+ }
+
+ free (group);
+}
+
+CompGroup *
+findGroupAtScreen (CompScreen *s,
+ Window id)
+{
+ CompGroup *g;
+
+ for (g = s->groups; g; g = g->next)
+ if (g->id == id)
+ return g;
+
+ return NULL;
+}
+
+void
+applyStartupProperties (CompScreen *screen,
+ CompWindow *window)
+{
+ CompStartupSequence *s;
+ const char *startupId = window->startupId;
+
+ if (!startupId)
+ {
+ CompWindow *leader;
+
+ leader = findWindowAtScreen (screen, window->clientLeader);
+ if (leader)
+ startupId = leader->startupId;
+
+ if (!startupId)
+ return;
+ }
+
+ for (s = screen->startupSequences; s; s = s->next)
+ {
+ const char *id;
+
+ id = sn_startup_sequence_get_id (s->sequence);
+ if (strcmp (id, startupId) == 0)
+ break;
+ }
+
+ if (s)
+ {
+ int workspace;
+
+ window->initialViewportX = s->viewportX;
+ window->initialViewportY = s->viewportY;
+
+ workspace = sn_startup_sequence_get_workspace (s->sequence);
+ if (workspace >= 0)
+ setDesktopForWindow (window, workspace);
+
+ window->initialTimestamp =
+ sn_startup_sequence_get_timestamp (s->sequence);
+ window->initialTimestampSet = TRUE;
+ }
+}
+
+void
+sendWindowActivationRequest (CompScreen *s,
+ Window id)
+{
+ XEvent xev;
+
+ xev.xclient.type = ClientMessage;
+ xev.xclient.display = s->display->display;
+ xev.xclient.format = 32;
+
+ xev.xclient.message_type = s->display->winActiveAtom;
+ xev.xclient.window = id;
+
+ xev.xclient.data.l[0] = ClientTypePager;
+ xev.xclient.data.l[1] = 0;
+ xev.xclient.data.l[2] = 0;
+ xev.xclient.data.l[3] = 0;
+ xev.xclient.data.l[4] = 0;
+
+ XSendEvent (s->display->display,
+ s->root,
+ FALSE,
+ SubstructureRedirectMask | SubstructureNotifyMask,
+ &xev);
+}
+
+void
+screenTexEnvMode (CompScreen *s,
+ GLenum mode)
+{
+ if (s->lighting)
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ else
+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
+}
+
+void
+screenLighting (CompScreen *s,
+ Bool lighting)
+{
+ if (s->lighting != lighting)
+ {
+ if (!s->opt[COMP_SCREEN_OPTION_LIGHTING].value.b)
+ lighting = FALSE;
+
+ if (lighting)
+ {
+ glEnable (GL_COLOR_MATERIAL);
+ glEnable (GL_LIGHTING);
+ }
+ else
+ {
+ glDisable (GL_COLOR_MATERIAL);
+ glDisable (GL_LIGHTING);
+ }
+
+ s->lighting = lighting;
+
+ screenTexEnvMode (s, GL_REPLACE);
+ }
+}
+
+void
+enableScreenEdge (CompScreen *s,
+ int edge)
+{
+ s->screenEdge[edge].count++;
+ if (s->screenEdge[edge].count == 1)
+ XMapRaised (s->display->display, s->screenEdge[edge].id);
+}
+
+void
+disableScreenEdge (CompScreen *s,
+ int edge)
+{
+ s->screenEdge[edge].count--;
+ if (s->screenEdge[edge].count == 0)
+ XUnmapWindow (s->display->display, s->screenEdge[edge].id);
+}
+
+Window
+getTopWindow (CompScreen *s)
+{
+ CompWindow *w;
+
+ /* return first window that has not been destroyed */
+ for (w = s->reverseWindows; w; w = w->prev)
+ {
+ if (w->id > 1)
+ return w->id;
+ }
+
+ return None;
+}
+
+void
+makeScreenCurrent (CompScreen *s)
+{
+ if (currentRoot != s->root)
+ {
+ glXMakeCurrent (s->display->display, s->output, s->ctx);
+ currentRoot = s->root;
+ }
+
+ s->pendingCommands = TRUE;
+}
+
+void
+finishScreenDrawing (CompScreen *s)
+{
+ if (s->pendingCommands)
+ {
+ makeScreenCurrent (s);
+ glFinish ();
+
+ s->pendingCommands = FALSE;
+ }
+}
+
+int
+outputDeviceForPoint (CompScreen *s,
+ int x,
+ int y)
+{
+ return outputDeviceForGeometry (s, x, y, 1, 1, 0);
+}
+
+void
+getCurrentOutputExtents (CompScreen *s,
+ int *x1,
+ int *y1,
+ int *x2,
+ int *y2)
+{
+ if (x1)
+ *x1 = s->outputDev[s->currentOutputDev].region.extents.x1;
+
+ if (y1)
+ *y1 = s->outputDev[s->currentOutputDev].region.extents.y1;
+
+ if (x2)
+ *x2 = s->outputDev[s->currentOutputDev].region.extents.x2;
+
+ if (y2)
+ *y2 = s->outputDev[s->currentOutputDev].region.extents.y2;
+}
+
+void
+setNumberOfDesktops (CompScreen *s,
+ unsigned int nDesktop)
+{
+ CompWindow *w;
+
+ if (nDesktop < 1 || nDesktop >= 0xffffffff)
+ return;
+
+ if (nDesktop == s->nDesktop)
+ return;
+
+ if (s->currentDesktop >= nDesktop)
+ s->currentDesktop = nDesktop - 1;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->desktop == 0xffffffff)
+ continue;
+
+ if (w->desktop >= nDesktop)
+ setDesktopForWindow (w, nDesktop - 1);
+ }
+
+ s->nDesktop = nDesktop;
+
+ setDesktopHints (s);
+}
+
+void
+setCurrentDesktop (CompScreen *s,
+ unsigned int desktop)
+{
+ unsigned long data;
+ CompWindow *w;
+
+ if (desktop >= s->nDesktop)
+ return;
+
+ if (desktop == s->currentDesktop)
+ return;
+
+ s->currentDesktop = desktop;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (w->desktop == 0xffffffff)
+ continue;
+
+ if (w->desktop == desktop)
+ showWindow (w);
+ else
+ hideWindow (w);
+ }
+
+ data = desktop;
+
+ XChangeProperty (s->display->display, s->root,
+ s->display->currentDesktopAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data, 1);
+}
+
+void
+getWorkareaForOutput (CompScreen *s,
+ int output,
+ XRectangle *area)
+{
+ *area = s->outputDev[output].workArea;
+}
+
+void
+setDefaultViewport (CompScreen *s)
+{
+ s->lastViewport.x = s->outputDev->region.extents.x1;
+ s->lastViewport.y = s->height - s->outputDev->region.extents.y2;
+ s->lastViewport.width = s->outputDev->width;
+ s->lastViewport.height = s->outputDev->height;
+
+ glViewport (s->lastViewport.x,
+ s->lastViewport.y,
+ s->lastViewport.width,
+ s->lastViewport.height);
+}
+
+void
+outputChangeNotify (CompScreen *s)
+{
+}
+
+void
+clearScreenOutput (CompScreen *s,
+ CompOutput *output,
+ unsigned int mask)
+{
+ BoxPtr pBox = &output->region.extents;
+
+ if (pBox->x1 != 0 ||
+ pBox->y1 != 0 ||
+ pBox->x2 != s->width ||
+ pBox->y2 != s->height)
+ {
+ glPushAttrib (GL_SCISSOR_BIT);
+
+ glEnable (GL_SCISSOR_TEST);
+ glScissor (pBox->x1,
+ s->height - pBox->y2,
+ pBox->x2 - pBox->x1,
+ pBox->y2 - pBox->y1);
+ glClear (mask);
+
+ glPopAttrib ();
+ }
+ else
+ {
+ glClear (mask);
+ }
+}
+
+/* Returns default viewport for some window geometry. If the window spans
+ more than one viewport the most appropriate viewport is returned. How the
+ most appropriate viewport is computed can be made optional if necessary. It
+ is currently computed as the viewport where the center of the window is
+ located. */
+void
+viewportForGeometry (CompScreen *s,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth,
+ int *viewportX,
+ int *viewportY)
+{
+ int centerX;
+ int centerY;
+
+ width += borderWidth * 2;
+ height += borderWidth * 2;
+
+ if (viewportX)
+ {
+ centerX = x + (width >> 1);
+ if (centerX < 0)
+ *viewportX = s->x + ((centerX / s->width) - 1) % s->hsize;
+ else
+ *viewportX = s->x + (centerX / s->width) % s->hsize;
+ }
+
+ if (viewportY)
+ {
+ centerY = y + (height >> 1);
+ if (centerY < 0)
+ *viewportY = s->y + ((centerY / s->height) - 1) % s->vsize;
+ else
+ *viewportY = s->y + (centerY / s->height) % s->vsize;
+ }
+}
+
+static int
+rectangleOverlapArea (BOX *rect1,
+ BOX *rect2)
+{
+ int left, right, top, bottom;
+
+ /* extents of overlapping rectangle */
+ left = MAX (rect1->x1, rect2->x1);
+ right = MIN (rect1->x2, rect2->x2);
+ top = MAX (rect1->y1, rect2->y1);
+ bottom = MIN (rect1->y2, rect2->y2);
+
+ if (left > right || top > bottom)
+ {
+ /* no overlap */
+ return 0;
+ }
+
+ return (right - left) * (bottom - top);
+}
+
+int
+outputDeviceForGeometry (CompScreen *s,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth)
+{
+ int overlapAreas[s->nOutputDev];
+ int i, highest, seen, highestScore;
+ int strategy;
+ BOX geomRect;
+
+ if (s->nOutputDev == 1)
+ return 0;
+
+ strategy = s->opt[COMP_SCREEN_OPTION_OVERLAPPING_OUTPUTS].value.i;
+
+ if (strategy == OUTPUT_OVERLAP_MODE_SMART)
+ {
+ int centerX, centerY;
+
+ /* for smart mode, calculate the overlap of the whole rectangle
+ with the output device rectangle */
+ geomRect.x2 = width + 2 * borderWidth;
+ geomRect.y2 = height + 2 * borderWidth;
+
+ geomRect.x1 = x % s->width;
+ centerX = geomRect.x1 + (geomRect.x2 / 2);
+ if (centerX < 0)
+ geomRect.x1 += s->width;
+ else if (centerX > s->width)
+ geomRect.x1 -= s->width;
+
+ geomRect.y1 = y % s->height;
+ centerY = geomRect.y1 + (geomRect.y2 / 2);
+ if (centerY < 0)
+ geomRect.y1 += s->height;
+ else if (centerY > s->height)
+ geomRect.y1 -= s->height;
+
+ geomRect.x2 += geomRect.x1;
+ geomRect.y2 += geomRect.y1;
+ }
+ else
+ {
+ /* for biggest/smallest modes, only use the window center to determine
+ the correct output device */
+ geomRect.x1 = (x + (width / 2) + borderWidth) % s->width;
+ if (geomRect.x1 < 0)
+ geomRect.x1 += s->width;
+ geomRect.y1 = (y + (height / 2) + borderWidth) % s->height;
+ if (geomRect.y1 < 0)
+ geomRect.y1 += s->height;
+
+ geomRect.x2 = geomRect.x1 + 1;
+ geomRect.y2 = geomRect.y1 + 1;
+ }
+
+ /* get amount of overlap on all output devices */
+ for (i = 0; i < s->nOutputDev; i++)
+ overlapAreas[i] = rectangleOverlapArea (&s->outputDev[i].region.extents,
+ &geomRect);
+
+ /* find output with largest overlap */
+ for (i = 0, highest = 0, highestScore = 0; i < s->nOutputDev; i++)
+ if (overlapAreas[i] > highestScore)
+ {
+ highest = i;
+ highestScore = overlapAreas[i];
+ }
+
+ /* look if the highest score is unique */
+ for (i = 0, seen = 0; i < s->nOutputDev; i++)
+ if (overlapAreas[i] == highestScore)
+ seen++;
+
+ if (seen > 1)
+ {
+ /* it's not unique, select one output of the matching ones and use the
+ user preferred strategy for that */
+ unsigned int currentSize, bestOutputSize;
+ Bool searchLargest;
+
+ searchLargest = (strategy != OUTPUT_OVERLAP_MODE_PREFER_SMALLER);
+ if (searchLargest)
+ bestOutputSize = 0;
+ else
+ bestOutputSize = UINT_MAX;
+
+ for (i = 0, highest = 0; i < s->nOutputDev; i++)
+ if (overlapAreas[i] == highestScore)
+ {
+ BOX *box = &s->outputDev[i].region.extents;
+ Bool bestFit;
+
+ currentSize = (box->x2 - box->x1) * (box->y2 - box->y1);
+
+ if (searchLargest)
+ bestFit = (currentSize > bestOutputSize);
+ else
+ bestFit = (currentSize < bestOutputSize);
+
+ if (bestFit)
+ {
+ highest = i;
+ bestOutputSize = currentSize;
+ }
+ }
+ }
+
+ return highest;
+}
+
+Bool
+updateDefaultIcon (CompScreen *screen)
+{
+ CompIcon *icon;
+ char *file = screen->opt[COMP_SCREEN_OPTION_DEFAULT_ICON].value.s;
+ void *data;
+ int width, height;
+
+ if (screen->defaultIcon)
+ {
+ finiTexture (screen, &screen->defaultIcon->texture);
+ free (screen->defaultIcon);
+ screen->defaultIcon = NULL;
+ }
+
+ if (!readImageFromFile (screen->display, file, &width, &height, &data))
+ return FALSE;
+
+ icon = malloc (sizeof (CompIcon) + width * height * sizeof (CARD32));
+ if (!icon)
+ {
+ free (data);
+ return FALSE;
+ }
+
+ initTexture (screen, &icon->texture);
+
+ icon->width = width;
+ icon->height = height;
+
+ memcpy (icon + 1, data, + width * height * sizeof (CARD32));
+
+ screen->defaultIcon = icon;
+
+ free (data);
+
+ return TRUE;
+}
+
+CompCursor *
+findCursorAtScreen (CompScreen *screen)
+{
+ return screen->cursors;
+}
+
+CompCursorImage *
+findCursorImageAtScreen (CompScreen *screen,
+ unsigned long serial)
+{
+ CompCursorImage *image;
+
+ for (image = screen->cursorImages; image; image = image->next)
+ if (image->serial == serial)
+ return image;
+
+ return NULL;
+}
+
+void
+setCurrentActiveWindowHistory (CompScreen *s,
+ int x,
+ int y)
+{
+ int i, min = 0;
+
+ for (i = 0; i < ACTIVE_WINDOW_HISTORY_NUM; i++)
+ {
+ if (s->history[i].x == x && s->history[i].y == y)
+ {
+ s->currentHistory = i;
+ return;
+ }
+ }
+
+ for (i = 1; i < ACTIVE_WINDOW_HISTORY_NUM; i++)
+ if (s->history[i].activeNum < s->history[min].activeNum)
+ min = i;
+
+ s->currentHistory = min;
+
+ s->history[min].activeNum = s->activeNum;
+ s->history[min].x = x;
+ s->history[min].y = y;
+
+ memset (s->history[min].id, 0, sizeof (s->history[min].id));
+}
+
+void
+addToCurrentActiveWindowHistory (CompScreen *s,
+ Window id)
+{
+ CompActiveWindowHistory *history = &s->history[s->currentHistory];
+ Window tmp, next = id;
+ int i;
+
+ /* walk and move history */
+ for (i = 0; i < ACTIVE_WINDOW_HISTORY_SIZE; i++)
+ {
+ tmp = history->id[i];
+ history->id[i] = next;
+ next = tmp;
+
+ /* we're done when we find an old instance or an empty slot */
+ if (tmp == id || tmp == None)
+ break;
+ }
+
+ history->activeNum = s->activeNum;
+}
+
+void
+setWindowPaintOffset (CompScreen *s,
+ int x,
+ int y)
+{
+ s->windowOffsetX = x;
+ s->windowOffsetY = y;
+}
diff --git a/src/session.c b/src/session.c
new file mode 100644
index 0000000..a57c698
--- /dev/null
+++ b/src/session.c
@@ -0,0 +1,439 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Radek Doulik <rodo@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <poll.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <pwd.h>
+#include <X11/SM/SMlib.h>
+#include <X11/ICE/ICElib.h>
+
+#include <compiz-core.h>
+
+#define SM_DEBUG(x)
+
+static SmcConn smcConnection;
+static CompWatchFdHandle iceWatchFdHandle;
+static Bool connected = 0;
+static Bool iceConnected = 0;
+static char *smClientId, *smPrevClientId;
+
+static void iceInit (void);
+
+static void
+setStringListProperty (SmcConn connection,
+ const char *name,
+ const char **values,
+ int nValues)
+{
+ SmProp prop, *pProp;
+ int i;
+
+ prop.name = (char *) name;
+ prop.type = SmLISTofARRAY8;
+
+ prop.vals = malloc (nValues * sizeof (SmPropValue));
+ if (!prop.vals)
+ return;
+
+ for (i = 0; i < nValues; i++)
+ {
+ prop.vals[i].value = (char *) values[i];
+ prop.vals[i].length = strlen (values[i]);
+ }
+
+ prop.num_vals = nValues;
+
+ pProp = &prop;
+
+ SmcSetProperties (connection, 1, &pProp);
+
+ free (prop.vals);
+}
+
+static void
+setCloneRestartCommands (SmcConn connection)
+{
+ const char **args;
+ int i, count = 0;
+
+ /* at maximum, we pass our old arguments + our new client id
+ to the SM, so allocate for that case */
+ args = malloc ((programArgc + 2) * sizeof (char *));
+ if (!args)
+ return;
+
+ for (i = 0; i < programArgc; i++)
+ {
+ if (strcmp (programArgv[i], "--sm-client-id") == 0)
+ i++; /* skip old client id, we'll add the new one later */
+ else if (strcmp (programArgv[i], "--replace") == 0)
+ continue; /* there's nothing to replace when starting session */
+ else
+ args[count++] = programArgv[i];
+ }
+
+ setStringListProperty (connection, SmCloneCommand, args, count);
+
+ /* insert new client id at position 1 and 2;
+ position 0 is the executable name */
+ for (i = count - 1; i >= 1; i--)
+ args[i + 2] = args[i];
+ args[1] = "--sm-client-id";
+ args[2] = smClientId;
+ count += 2;
+
+ setStringListProperty (connection, SmRestartCommand, args, count);
+
+ free (args);
+}
+
+static void
+setRestartStyle (SmcConn connection,
+ char hint)
+{
+ SmProp prop, *pProp;
+ SmPropValue propVal;
+
+ prop.name = SmRestartStyleHint;
+ prop.type = SmCARD8;
+ prop.num_vals = 1;
+ prop.vals = &propVal;
+ propVal.value = &hint;
+ propVal.length = 1;
+
+ pProp = &prop;
+
+ SmcSetProperties (connection, 1, &pProp);
+}
+
+static void
+setProgramInfo (SmcConn connection,
+ pid_t pid,
+ uid_t uid)
+{
+ SmProp progProp, pidProp, userProp;
+ SmPropValue progVal, pidVal, userVal;
+ SmProp *props[3];
+ char pidBuffer[32];
+ unsigned int count = 0;
+ struct passwd *pw;
+
+ progProp.name = SmProgram;
+ progProp.type = SmARRAY8;
+ progProp.num_vals = 1;
+ progProp.vals = &progVal;
+ progVal.value = (SmPointer) "compiz";
+ progVal.length = strlen (progVal.value);
+
+ props[count++] = &progProp;
+
+ snprintf (pidBuffer, sizeof (pidBuffer), "%d", pid);
+
+ pidProp.name = SmProcessID;
+ pidProp.type = SmARRAY8;
+ pidProp.num_vals = 1;
+ pidProp.vals = &pidVal;
+ pidVal.value = (SmPointer) pidBuffer;
+ pidVal.length = strlen (pidBuffer);
+
+ props[count++] = &pidProp;
+
+ pw = getpwuid (uid);
+ if (pw)
+ {
+ userProp.name = SmUserID;
+ userProp.type = SmARRAY8;
+ userProp.num_vals = 1;
+ userProp.vals = &userVal;
+ userVal.value = (SmPointer) pw->pw_name;
+ userVal.length = strlen (pw->pw_name);
+
+ props[count++] = &userProp;
+ }
+
+ SmcSetProperties (connection, count, props);
+}
+
+static void
+saveYourselfCallback (SmcConn connection,
+ SmPointer client_data,
+ int saveType,
+ Bool shutdown,
+ int interact_Style,
+ Bool fast)
+{
+ CompOption args[4];
+
+ args[0].type = CompOptionTypeInt;
+ args[0].name = "save_type";
+ args[0].value.i = saveType;
+
+ args[1].type = CompOptionTypeBool;
+ args[1].name = "shutdown";
+ args[1].value.b = shutdown;
+
+ args[2].type = CompOptionTypeInt;
+ args[2].name = "interact_style";
+ args[2].value.i = interact_Style;
+
+ args[3].type = CompOptionTypeBool;
+ args[3].name = "fast";
+ args[3].value.b = fast;
+
+ (*core.sessionEvent) (&core, CompSessionEventSaveYourself, args, 4);
+
+ setCloneRestartCommands (connection);
+ setRestartStyle (connection, SmRestartImmediately);
+ setProgramInfo (connection, getpid (), getuid ());
+ SmcSaveYourselfDone (connection, 1);
+}
+
+static void
+dieCallback (SmcConn connection,
+ SmPointer clientData)
+{
+ (*core.sessionEvent) (&core, CompSessionEventDie, NULL, 0);
+
+ closeSession ();
+ exit (0);
+}
+
+static void
+saveCompleteCallback (SmcConn connection,
+ SmPointer clientData)
+{
+ (*core.sessionEvent) (&core, CompSessionEventSaveComplete, NULL, 0);
+}
+
+static void
+shutdownCancelledCallback (SmcConn connection,
+ SmPointer clientData)
+{
+ (*core.sessionEvent) (&core, CompSessionEventShutdownCancelled, NULL, 0);
+}
+
+void
+initSession (char *prevClientId)
+{
+ static SmcCallbacks callbacks;
+
+ if (getenv ("SESSION_MANAGER"))
+ {
+ char errorBuffer[1024];
+
+ iceInit ();
+
+ callbacks.save_yourself.callback = saveYourselfCallback;
+ callbacks.save_yourself.client_data = NULL;
+
+ callbacks.die.callback = dieCallback;
+ callbacks.die.client_data = NULL;
+
+ callbacks.save_complete.callback = saveCompleteCallback;
+ callbacks.save_complete.client_data = NULL;
+
+ callbacks.shutdown_cancelled.callback = shutdownCancelledCallback;
+ callbacks.shutdown_cancelled.client_data = NULL;
+
+ smcConnection = SmcOpenConnection (NULL,
+ NULL,
+ SmProtoMajor,
+ SmProtoMinor,
+ SmcSaveYourselfProcMask |
+ SmcDieProcMask |
+ SmcSaveCompleteProcMask |
+ SmcShutdownCancelledProcMask,
+ &callbacks,
+ prevClientId,
+ &smClientId,
+ sizeof (errorBuffer),
+ errorBuffer);
+ if (!smcConnection)
+ compLogMessage ("core", CompLogLevelWarn,
+ "SmcOpenConnection failed: %s",
+ errorBuffer);
+ else
+ {
+ connected = TRUE;
+ if (prevClientId)
+ smPrevClientId = strdup (prevClientId);
+ }
+ }
+}
+
+void
+closeSession (void)
+{
+ if (connected)
+ {
+ setRestartStyle (smcConnection, SmRestartIfRunning);
+
+ if (SmcCloseConnection (smcConnection, 0, NULL) != SmcConnectionInUse)
+ connected = FALSE;
+ if (smClientId)
+ {
+ free (smClientId);
+ smClientId = NULL;
+ }
+ if (smPrevClientId)
+ {
+ free (smPrevClientId);
+ smPrevClientId = NULL;
+ }
+ }
+}
+
+void
+sessionEvent (CompCore *c,
+ CompSessionEvent event,
+ CompOption *arguments,
+ unsigned int nArguments)
+{
+}
+
+char *
+getSessionClientId (CompSessionClientIdType type)
+{
+ if (!connected)
+ return NULL;
+
+ switch (type) {
+ case CompSessionClientId:
+ if (smClientId)
+ return strdup (smClientId);
+ break;
+
+ case CompSessionPrevClientId:
+ if (smPrevClientId)
+ return strdup (smPrevClientId);
+ break;
+ }
+
+ return NULL;
+}
+/* ice connection handling taken and updated from gnome-ice.c
+ * original gnome-ice.c code written by Tom Tromey <tromey@cygnus.com>
+ */
+
+/* This is called when data is available on an ICE connection. */
+static Bool
+iceProcessMessages (void *data)
+{
+ IceConn connection = (IceConn) data;
+ IceProcessMessagesStatus status;
+
+ SM_DEBUG (printf ("ICE connection process messages\n"));
+
+ status = IceProcessMessages (connection, NULL, NULL);
+
+ if (status == IceProcessMessagesIOError)
+ {
+ SM_DEBUG (printf ("ICE connection process messages"
+ " - error => shutting down the connection\n"));
+
+ IceSetShutdownNegotiation (connection, False);
+ IceCloseConnection (connection);
+ }
+
+ return 1;
+}
+
+/* This is called when a new ICE connection is made. It arranges for
+ the ICE connection to be handled via the event loop. */
+static void
+iceNewConnection (IceConn connection,
+ IcePointer clientData,
+ Bool opening,
+ IcePointer *watchData)
+{
+ if (opening)
+ {
+ SM_DEBUG (printf ("ICE connection opening\n"));
+
+ /* Make sure we don't pass on these file descriptors to any
+ exec'ed children */
+ fcntl (IceConnectionNumber (connection), F_SETFD,
+ fcntl (IceConnectionNumber (connection),
+ F_GETFD,0) | FD_CLOEXEC);
+
+ iceWatchFdHandle = compAddWatchFd (IceConnectionNumber (connection),
+ POLLIN | POLLPRI | POLLHUP | POLLERR,
+ iceProcessMessages, connection);
+
+ iceConnected = 1;
+ }
+ else
+ {
+ SM_DEBUG (printf ("ICE connection closing\n"));
+
+ if (iceConnected)
+ {
+ compRemoveWatchFd (iceWatchFdHandle);
+
+ iceWatchFdHandle = 0;
+ iceConnected = 0;
+ }
+ }
+}
+
+static IceIOErrorHandler oldIceHandler;
+
+static void
+iceErrorHandler (IceConn connection)
+{
+ if (oldIceHandler)
+ (*oldIceHandler) (connection);
+}
+
+/* We call any handler installed before (or after) iceInit but
+ avoid calling the default libICE handler which does an exit() */
+static void
+iceInit (void)
+{
+ static Bool iceInitialized = 0;
+
+ if (!iceInitialized)
+ {
+ IceIOErrorHandler defaultIceHandler;
+
+ oldIceHandler = IceSetIOErrorHandler (NULL);
+ defaultIceHandler = IceSetIOErrorHandler (iceErrorHandler);
+
+ if (oldIceHandler == defaultIceHandler)
+ oldIceHandler = NULL;
+
+ IceAddConnectionWatch (iceNewConnection, NULL);
+
+ iceInitialized = 1;
+ }
+}
diff --git a/src/texture.c b/src/texture.c
new file mode 100644
index 0000000..fb2edcf
--- /dev/null
+++ b/src/texture.c
@@ -0,0 +1,504 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compiz-core.h>
+
+static CompMatrix _identity_matrix = {
+ 1.0f, 0.0f,
+ 0.0f, 1.0f,
+ 0.0f, 0.0f
+};
+
+void
+initTexture (CompScreen *screen,
+ CompTexture *texture)
+{
+ texture->refCount = 1;
+ texture->name = 0;
+ texture->target = GL_TEXTURE_2D;
+ texture->pixmap = None;
+ texture->filter = GL_NEAREST;
+ texture->wrap = GL_CLAMP_TO_EDGE;
+ texture->matrix = _identity_matrix;
+ texture->oldMipmaps = TRUE;
+ texture->mipmap = FALSE;
+}
+
+void
+finiTexture (CompScreen *screen,
+ CompTexture *texture)
+{
+ if (texture->name)
+ {
+ makeScreenCurrent (screen);
+ releasePixmapFromTexture (screen, texture);
+ glDeleteTextures (1, &texture->name);
+ }
+}
+
+CompTexture *
+createTexture (CompScreen *screen)
+{
+ CompTexture *texture;
+
+ texture = (CompTexture *) malloc (sizeof (CompTexture));
+ if (!texture)
+ return NULL;
+
+ initTexture (screen, texture);
+
+ return texture;
+}
+
+void
+destroyTexture (CompScreen *screen,
+ CompTexture *texture)
+{
+ texture->refCount--;
+ if (texture->refCount)
+ return;
+
+ finiTexture (screen, texture);
+
+ free (texture);
+}
+
+static Bool
+imageToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *image,
+ unsigned int width,
+ unsigned int height,
+ GLenum format,
+ GLenum type)
+{
+ char *data;
+ int i;
+ GLint internalFormat;
+
+ data = malloc (4 * width * height);
+ if (!data)
+ return FALSE;
+
+ for (i = 0; i < height; i++)
+ memcpy (&data[i * width * 4],
+ &image[(height - i - 1) * width * 4],
+ width * 4);
+
+ makeScreenCurrent (screen);
+ releasePixmapFromTexture (screen, texture);
+
+ if (screen->textureNonPowerOfTwo ||
+ (POWER_OF_TWO (width) && POWER_OF_TWO (height)))
+ {
+ texture->target = GL_TEXTURE_2D;
+ texture->matrix.xx = 1.0f / width;
+ texture->matrix.yy = -1.0f / height;
+ texture->matrix.y0 = 1.0f;
+ texture->mipmap = TRUE;
+ }
+ else
+ {
+ texture->target = GL_TEXTURE_RECTANGLE_NV;
+ texture->matrix.xx = 1.0f;
+ texture->matrix.yy = -1.0f;
+ texture->matrix.y0 = height;
+ texture->mipmap = FALSE;
+ }
+
+ if (!texture->name)
+ glGenTextures (1, &texture->name);
+
+ glBindTexture (texture->target, texture->name);
+
+ internalFormat =
+ (screen->opt[COMP_SCREEN_OPTION_TEXTURE_COMPRESSION].value.b &&
+ screen->textureCompression ?
+ GL_COMPRESSED_RGBA_ARB : GL_RGBA);
+
+ glTexImage2D (texture->target, 0, internalFormat, width, height, 0,
+ format, type, data);
+
+ texture->filter = GL_NEAREST;
+
+ glTexParameteri (texture->target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (texture->target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ texture->wrap = GL_CLAMP_TO_EDGE;
+
+ glBindTexture (texture->target, 0);
+
+ free (data);
+
+ return TRUE;
+}
+
+Bool
+imageBufferToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *image,
+ unsigned int width,
+ unsigned int height)
+{
+#if IMAGE_BYTE_ORDER == MSBFirst
+ return imageToTexture (screen, texture, image, width, height,
+ GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
+#else
+ return imageToTexture (screen, texture, image, width, height,
+ GL_BGRA, GL_UNSIGNED_BYTE);
+#endif
+}
+
+Bool
+imageDataToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *image,
+ unsigned int width,
+ unsigned int height,
+ GLenum format,
+ GLenum type)
+{
+ return imageToTexture (screen, texture, image, width, height, format, type);
+}
+
+
+Bool
+readImageToTexture (CompScreen *screen,
+ CompTexture *texture,
+ const char *imageFileName,
+ unsigned int *returnWidth,
+ unsigned int *returnHeight)
+{
+ void *image;
+ int width, height;
+ Bool status;
+
+ if (!readImageFromFile (screen->display, imageFileName,
+ &width, &height, &image))
+ return FALSE;
+
+ status = imageBufferToTexture (screen, texture, image, width, height);
+
+ free (image);
+
+ if (returnWidth)
+ *returnWidth = width;
+ if (returnHeight)
+ *returnHeight = height;
+
+ return status;
+}
+
+Bool
+iconToTexture (CompScreen *screen,
+ CompIcon *icon)
+{
+ return imageBufferToTexture (screen, &icon->texture,
+ (char *) (icon + 1),
+ icon->width,
+ icon->height);
+}
+
+Bool
+bindPixmapToTexture (CompScreen *screen,
+ CompTexture *texture,
+ Pixmap pixmap,
+ int width,
+ int height,
+ int depth)
+{
+ unsigned int target = 0;
+ CompFBConfig *config = &screen->glxPixmapFBConfigs[depth];
+ int attribs[7], i = 0;
+
+ if (!config->fbConfig)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "No GLXFBConfig for depth %d",
+ depth);
+
+ return FALSE;
+ }
+
+ attribs[i++] = GLX_TEXTURE_FORMAT_EXT;
+ attribs[i++] = config->textureFormat;
+ attribs[i++] = GLX_MIPMAP_TEXTURE_EXT;
+ attribs[i++] = config->mipmap;
+
+ /* If no texture target is specified in the fbconfig, or only the
+ TEXTURE_2D target is specified and GL_texture_non_power_of_two
+ is not supported, then allow the server to choose the texture target. */
+ if (config->textureTargets & GLX_TEXTURE_2D_BIT_EXT &&
+ (screen->textureNonPowerOfTwo ||
+ (POWER_OF_TWO (width) && POWER_OF_TWO (height))))
+ target = GLX_TEXTURE_2D_EXT;
+ else if (config->textureTargets & GLX_TEXTURE_RECTANGLE_BIT_EXT)
+ target = GLX_TEXTURE_RECTANGLE_EXT;
+
+ /* Workaround for broken texture from pixmap implementations,
+ that don't advertise any texture target in the fbconfig. */
+ if (!target)
+ {
+ if (!(config->textureTargets & GLX_TEXTURE_2D_BIT_EXT))
+ target = GLX_TEXTURE_RECTANGLE_EXT;
+ else if (!(config->textureTargets & GLX_TEXTURE_RECTANGLE_BIT_EXT))
+ target = GLX_TEXTURE_2D_EXT;
+ }
+
+ if (target)
+ {
+ attribs[i++] = GLX_TEXTURE_TARGET_EXT;
+ attribs[i++] = target;
+ }
+
+ attribs[i++] = None;
+
+ makeScreenCurrent (screen);
+ texture->pixmap = (*screen->createPixmap) (screen->display->display,
+ config->fbConfig, pixmap,
+ attribs);
+ if (!texture->pixmap)
+ {
+ compLogMessage ("core", CompLogLevelWarn,
+ "glXCreatePixmap failed");
+
+ return FALSE;
+ }
+
+ if (!target)
+ (*screen->queryDrawable) (screen->display->display,
+ texture->pixmap,
+ GLX_TEXTURE_TARGET_EXT,
+ &target);
+
+ switch (target) {
+ case GLX_TEXTURE_2D_EXT:
+ texture->target = GL_TEXTURE_2D;
+
+ texture->matrix.xx = 1.0f / width;
+ if (config->yInverted)
+ {
+ texture->matrix.yy = 1.0f / height;
+ texture->matrix.y0 = 0.0f;
+ }
+ else
+ {
+ texture->matrix.yy = -1.0f / height;
+ texture->matrix.y0 = 1.0f;
+ }
+ texture->mipmap = config->mipmap;
+ break;
+ case GLX_TEXTURE_RECTANGLE_EXT:
+ texture->target = GL_TEXTURE_RECTANGLE_ARB;
+
+ texture->matrix.xx = 1.0f;
+ if (config->yInverted)
+ {
+ texture->matrix.yy = 1.0f;
+ texture->matrix.y0 = 0;
+ }
+ else
+ {
+ texture->matrix.yy = -1.0f;
+ texture->matrix.y0 = height;
+ }
+ texture->mipmap = FALSE;
+ break;
+ default:
+ compLogMessage ("core", CompLogLevelWarn,
+ "pixmap 0x%x can't be bound to texture",
+ (int) pixmap);
+
+ glXDestroyGLXPixmap (screen->display->display, texture->pixmap);
+ texture->pixmap = None;
+
+ return FALSE;
+ }
+
+ if (!texture->name)
+ glGenTextures (1, &texture->name);
+
+ glBindTexture (texture->target, texture->name);
+
+ if (!strictBinding)
+ {
+ (*screen->bindTexImage) (screen->display->display,
+ texture->pixmap,
+ GLX_FRONT_LEFT_EXT,
+ NULL);
+ }
+
+ texture->filter = GL_NEAREST;
+
+ glTexParameteri (texture->target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri (texture->target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri (texture->target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ texture->wrap = GL_CLAMP_TO_EDGE;
+
+ glBindTexture (texture->target, 0);
+
+ return TRUE;
+}
+
+void
+releasePixmapFromTexture (CompScreen *screen,
+ CompTexture *texture)
+{
+ if (texture->pixmap)
+ {
+ makeScreenCurrent (screen);
+ glEnable (texture->target);
+ if (!strictBinding)
+ {
+ glBindTexture (texture->target, texture->name);
+
+ (*screen->releaseTexImage) (screen->display->display,
+ texture->pixmap,
+ GLX_FRONT_LEFT_EXT);
+ }
+
+ glBindTexture (texture->target, 0);
+ glDisable (texture->target);
+
+ glXDestroyGLXPixmap (screen->display->display, texture->pixmap);
+
+ texture->pixmap = None;
+ }
+}
+
+void
+enableTexture (CompScreen *screen,
+ CompTexture *texture,
+ CompTextureFilter filter)
+{
+ makeScreenCurrent (screen);
+ glEnable (texture->target);
+ glBindTexture (texture->target, texture->name);
+
+ if (strictBinding && texture->pixmap)
+ {
+ (*screen->bindTexImage) (screen->display->display,
+ texture->pixmap,
+ GLX_FRONT_LEFT_EXT,
+ NULL);
+ }
+
+ if (filter == COMP_TEXTURE_FILTER_FAST)
+ {
+ if (texture->filter != GL_NEAREST)
+ {
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MIN_FILTER,
+ GL_NEAREST);
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MAG_FILTER,
+ GL_NEAREST);
+
+ texture->filter = GL_NEAREST;
+ }
+ }
+ else if (texture->filter != screen->display->textureFilter)
+ {
+ if (screen->display->textureFilter == GL_LINEAR_MIPMAP_LINEAR)
+ {
+ if (screen->textureNonPowerOfTwo && screen->fbo && texture->mipmap)
+ {
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR_MIPMAP_LINEAR);
+
+ if (texture->filter != GL_LINEAR)
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+
+ texture->filter = GL_LINEAR_MIPMAP_LINEAR;
+ }
+ else if (texture->filter != GL_LINEAR)
+ {
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR);
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+
+ texture->filter = GL_LINEAR;
+ }
+ }
+ else
+ {
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MIN_FILTER,
+ screen->display->textureFilter);
+ glTexParameteri (texture->target,
+ GL_TEXTURE_MAG_FILTER,
+ screen->display->textureFilter);
+
+ texture->filter = screen->display->textureFilter;
+ }
+ }
+
+ if (texture->filter == GL_LINEAR_MIPMAP_LINEAR)
+ {
+ if (texture->oldMipmaps)
+ {
+ (*screen->generateMipmap) (texture->target);
+ texture->oldMipmaps = FALSE;
+ }
+ }
+}
+
+void
+disableTexture (CompScreen *screen,
+ CompTexture *texture)
+{
+ makeScreenCurrent (screen);
+ if (strictBinding && texture->pixmap)
+ {
+ glBindTexture (texture->target, texture->name);
+
+ (*screen->releaseTexImage) (screen->display->display,
+ texture->pixmap,
+ GLX_FRONT_LEFT_EXT);
+ }
+
+ glBindTexture (texture->target, 0);
+ glDisable (texture->target);
+}
diff --git a/src/window.c b/src/window.c
new file mode 100644
index 0000000..b7ba7e0
--- /dev/null
+++ b/src/window.c
@@ -0,0 +1,5445 @@
+/*
+ * Copyright © 2005 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: David Reveman <davidr@novell.com>
+ */
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+#include <X11/extensions/shape.h>
+#include <X11/extensions/Xcomposite.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <assert.h>
+
+#include <compiz-core.h>
+
+#define MwmHintsFunctions (1L << 0)
+#define MwmHintsDecorations (1L << 1)
+
+#define PropMotifWmHintElements 3
+
+typedef struct {
+ unsigned long flags;
+ unsigned long functions;
+ unsigned long decorations;
+} MwmHints;
+
+static int
+reallocWindowPrivates (int size,
+ void *closure)
+{
+ CompScreen *s = (CompScreen *) closure;
+ CompWindow *w;
+ void *privates;
+
+ for (w = s->windows; w; w = w->next)
+ {
+ privates = realloc (w->base.privates, size * sizeof (CompPrivate));
+ if (!privates)
+ return FALSE;
+
+ w->base.privates = (CompPrivate *) privates;
+ }
+
+ return TRUE;
+}
+
+int
+allocWindowObjectPrivateIndex (CompObject *parent)
+{
+ CompScreen *screen = (CompScreen *) parent;
+
+ return allocatePrivateIndex (&screen->windowPrivateLen,
+ &screen->windowPrivateIndices,
+ reallocWindowPrivates,
+ (void *) screen);
+}
+
+void
+freeWindowObjectPrivateIndex (CompObject *parent,
+ int index)
+{
+ CompScreen *screen = (CompScreen *) parent;
+
+ freePrivateIndex (screen->windowPrivateLen,
+ screen->windowPrivateIndices,
+ index);
+}
+
+CompBool
+forEachWindowObject (CompObject *parent,
+ ObjectCallBackProc proc,
+ void *closure)
+{
+ if (parent->type == COMP_OBJECT_TYPE_SCREEN)
+ {
+ CompWindow *w;
+
+ CORE_SCREEN (parent);
+
+ for (w = s->windows; w; w = w->next)
+ {
+ if (!(*proc) (&w->base, closure))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+char *
+nameWindowObject (CompObject *object)
+{
+ char tmp[256];
+
+ CORE_WINDOW (object);
+
+ snprintf (tmp, 256, "0x%lu", w->id);
+
+ return strdup (tmp);
+}
+
+CompObject *
+findWindowObject (CompObject *parent,
+ const char *name)
+{
+ if (parent->type == COMP_OBJECT_TYPE_SCREEN)
+ {
+ CompWindow *w;
+ Window id = atoi (name);
+
+ CORE_SCREEN (parent);
+
+ for (w = s->windows; w; w = w->next)
+ if (w->id == id)
+ return &w->base;
+ }
+
+ return NULL;
+}
+
+int
+allocateWindowPrivateIndex (CompScreen *screen)
+{
+ return compObjectAllocatePrivateIndex (&screen->base,
+ COMP_OBJECT_TYPE_WINDOW);
+}
+
+void
+freeWindowPrivateIndex (CompScreen *screen,
+ int index)
+{
+ compObjectFreePrivateIndex (&screen->base,
+ COMP_OBJECT_TYPE_WINDOW,
+ index);
+}
+
+static Bool
+isAncestorTo (CompWindow *transient,
+ CompWindow *ancestor)
+{
+ if (transient->transientFor)
+ {
+ if (transient->transientFor == ancestor->id)
+ return TRUE;
+
+ transient = findWindowAtScreen (transient->screen,
+ transient->transientFor);
+ if (transient)
+ return isAncestorTo (transient, ancestor);
+ }
+
+ return FALSE;
+}
+
+static void
+recalcNormalHints (CompWindow *window)
+{
+ int maxSize;
+
+ maxSize = window->screen->maxTextureSize;
+ maxSize -= window->serverBorderWidth * 2;
+
+ window->sizeHints.x = window->serverX;
+ window->sizeHints.y = window->serverY;
+ window->sizeHints.width = window->serverWidth;
+ window->sizeHints.height = window->serverHeight;
+
+ if (!(window->sizeHints.flags & PBaseSize))
+ {
+ if (window->sizeHints.flags & PMinSize)
+ {
+ window->sizeHints.base_width = window->sizeHints.min_width;
+ window->sizeHints.base_height = window->sizeHints.min_height;
+ }
+ else
+ {
+ window->sizeHints.base_width = 0;
+ window->sizeHints.base_height = 0;
+ }
+
+ window->sizeHints.flags |= PBaseSize;
+ }
+
+ if (!(window->sizeHints.flags & PMinSize))
+ {
+ window->sizeHints.min_width = window->sizeHints.base_width;
+ window->sizeHints.min_height = window->sizeHints.base_height;
+ window->sizeHints.flags |= PMinSize;
+ }
+
+ if (!(window->sizeHints.flags & PMaxSize))
+ {
+ window->sizeHints.max_width = 65535;
+ window->sizeHints.max_height = 65535;
+ window->sizeHints.flags |= PMaxSize;
+ }
+
+ if (window->sizeHints.max_width < window->sizeHints.min_width)
+ window->sizeHints.max_width = window->sizeHints.min_width;
+
+ if (window->sizeHints.max_height < window->sizeHints.min_height)
+ window->sizeHints.max_height = window->sizeHints.min_height;
+
+ if (window->sizeHints.min_width < 1)
+ window->sizeHints.min_width = 1;
+
+ if (window->sizeHints.max_width < 1)
+ window->sizeHints.max_width = 1;
+
+ if (window->sizeHints.min_height < 1)
+ window->sizeHints.min_height = 1;
+
+ if (window->sizeHints.max_height < 1)
+ window->sizeHints.max_height = 1;
+
+ if (window->sizeHints.max_width > maxSize)
+ window->sizeHints.max_width = maxSize;
+
+ if (window->sizeHints.max_height > maxSize)
+ window->sizeHints.max_height = maxSize;
+
+ if (window->sizeHints.min_width > maxSize)
+ window->sizeHints.min_width = maxSize;
+
+ if (window->sizeHints.min_height > maxSize)
+ window->sizeHints.min_height = maxSize;
+
+ if (window->sizeHints.base_width > maxSize)
+ window->sizeHints.base_width = maxSize;
+
+ if (window->sizeHints.base_height > maxSize)
+ window->sizeHints.base_height = maxSize;
+
+ if (window->sizeHints.flags & PResizeInc)
+ {
+ if (window->sizeHints.width_inc == 0)
+ window->sizeHints.width_inc = 1;
+
+ if (window->sizeHints.height_inc == 0)
+ window->sizeHints.height_inc = 1;
+ }
+ else
+ {
+ window->sizeHints.width_inc = 1;
+ window->sizeHints.height_inc = 1;
+ window->sizeHints.flags |= PResizeInc;
+ }
+
+ if (window->sizeHints.flags & PAspect)
+ {
+ /* don't divide by 0 */
+ if (window->sizeHints.min_aspect.y < 1)
+ window->sizeHints.min_aspect.y = 1;
+
+ if (window->sizeHints.max_aspect.y < 1)
+ window->sizeHints.max_aspect.y = 1;
+ }
+ else
+ {
+ window->sizeHints.min_aspect.x = 1;
+ window->sizeHints.min_aspect.y = 65535;
+ window->sizeHints.max_aspect.x = 65535;
+ window->sizeHints.max_aspect.y = 1;
+ window->sizeHints.flags |= PAspect;
+ }
+
+ if (!(window->sizeHints.flags & PWinGravity))
+ {
+ window->sizeHints.win_gravity = NorthWestGravity;
+ window->sizeHints.flags |= PWinGravity;
+ }
+}
+
+void
+updateNormalHints (CompWindow *w)
+{
+ Status status;
+ long supplied;
+
+ status = XGetWMNormalHints (w->screen->display->display, w->id,
+ &w->sizeHints, &supplied);
+
+ if (!status)
+ w->sizeHints.flags = 0;
+
+ recalcNormalHints (w);
+}
+
+void
+updateWmHints (CompWindow *w)
+{
+ XWMHints *hints;
+ long dFlags = 0;
+ Bool iconChanged = FALSE;
+
+ if (w->hints)
+ dFlags = w->hints->flags;
+
+ w->inputHint = TRUE;
+
+ hints = XGetWMHints (w->screen->display->display, w->id);
+ if (hints)
+ {
+ dFlags ^= hints->flags;
+
+ if (hints->flags & InputHint)
+ w->inputHint = hints->input;
+
+ if (w->hints)
+ {
+ if ((hints->flags & IconPixmapHint) &&
+ (w->hints->icon_pixmap != hints->icon_pixmap))
+ {
+ iconChanged = TRUE;
+ }
+ else if ((hints->flags & IconMaskHint) &&
+ (w->hints->icon_mask != hints->icon_mask))
+ {
+ iconChanged = TRUE;
+ }
+ }
+ }
+
+ iconChanged |= (dFlags & (IconPixmapHint | IconMaskHint));
+
+ if (iconChanged)
+ freeWindowIcons (w);
+
+ if (w->hints)
+ XFree (w->hints);
+
+ w->hints = hints;
+}
+
+void
+updateWindowClassHints (CompWindow *w)
+{
+ XClassHint classHint;
+ int status;
+
+ if (w->resName)
+ {
+ free (w->resName);
+ w->resName = NULL;
+ }
+
+ if (w->resClass)
+ {
+ free (w->resClass);
+ w->resClass = NULL;
+ }
+
+ status = XGetClassHint (w->screen->display->display, w->id, &classHint);
+ if (status)
+ {
+ if (classHint.res_name)
+ {
+ w->resName = strdup (classHint.res_name);
+ XFree (classHint.res_name);
+ }
+
+ if (classHint.res_class)
+ {
+ w->resClass = strdup (classHint.res_class);
+ XFree (classHint.res_class);
+ }
+ }
+}
+
+void
+updateTransientHint (CompWindow *w)
+{
+ Window transientFor;
+ Status status;
+
+ w->transientFor = None;
+
+ status = XGetTransientForHint (w->screen->display->display,
+ w->id, &transientFor);
+
+ if (status)
+ {
+ CompWindow *ancestor;
+
+ ancestor = findWindowAtScreen (w->screen, transientFor);
+ if (!ancestor)
+ return;
+
+ /* protect against circular transient dependencies */
+ if (transientFor == w->id || isAncestorTo (ancestor, w))
+ return;
+
+ w->transientFor = transientFor;
+ }
+}
+
+void
+updateIconGeometry (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmIconGeometryAtom,
+ 0L, 1024L, False, XA_CARDINAL,
+ &actual, &format, &n, &left, &data);
+
+ w->iconGeometrySet = FALSE;
+
+ if (result == Success && data)
+ {
+ if (n == 4)
+ {
+ unsigned long *geometry = (unsigned long *) data;
+
+ w->iconGeometry.x = geometry[0];
+ w->iconGeometry.y = geometry[1];
+ w->iconGeometry.width = geometry[2];
+ w->iconGeometry.height = geometry[3];
+
+ w->iconGeometrySet = TRUE;
+ }
+
+ XFree (data);
+ }
+}
+
+static Window
+getClientLeaderOfAncestor (CompWindow *w)
+{
+ if (w->transientFor)
+ {
+ w = findWindowAtScreen (w->screen, w->transientFor);
+ if (w)
+ {
+ if (w->clientLeader)
+ return w->clientLeader;
+
+ return getClientLeaderOfAncestor (w);
+ }
+ }
+
+ return None;
+}
+
+Window
+getClientLeader (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmClientLeaderAtom,
+ 0L, 1L, False, XA_WINDOW, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ Window win = None;
+
+ if (n)
+ memcpy (&win, data, sizeof (Window));
+ XFree ((void *) data);
+
+ if (win)
+ return win;
+ }
+
+ return getClientLeaderOfAncestor (w);
+}
+
+char *
+getStartupId (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->startupIdAtom,
+ 0L, 1024L, False,
+ w->screen->display->utf8StringAtom,
+ &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ char *id = NULL;
+
+ if (n)
+ id = strdup ((char *) data);
+ XFree ((void *) data);
+
+ return id;
+ }
+
+ return NULL;
+}
+
+int
+getWmState (CompDisplay *display,
+ Window id)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ unsigned long state = NormalState;
+
+ result = XGetWindowProperty (display->display, id,
+ display->wmStateAtom, 0L, 2L, FALSE,
+ display->wmStateAtom, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ memcpy (&state, data, sizeof (unsigned long));
+ XFree ((void *) data);
+ }
+
+ return state;
+}
+
+void
+setWmState (CompDisplay *display,
+ int state,
+ Window id)
+{
+ unsigned long data[2];
+
+ data[0] = state;
+ data[1] = None;
+
+ XChangeProperty (display->display, id,
+ display->wmStateAtom, display->wmStateAtom,
+ 32, PropModeReplace, (unsigned char *) data, 2);
+}
+
+unsigned int
+windowStateMask (CompDisplay *display,
+ Atom state)
+{
+ if (state == display->winStateModalAtom)
+ return CompWindowStateModalMask;
+ else if (state == display->winStateStickyAtom)
+ return CompWindowStateStickyMask;
+ else if (state == display->winStateMaximizedVertAtom)
+ return CompWindowStateMaximizedVertMask;
+ else if (state == display->winStateMaximizedHorzAtom)
+ return CompWindowStateMaximizedHorzMask;
+ else if (state == display->winStateShadedAtom)
+ return CompWindowStateShadedMask;
+ else if (state == display->winStateSkipTaskbarAtom)
+ return CompWindowStateSkipTaskbarMask;
+ else if (state == display->winStateSkipPagerAtom)
+ return CompWindowStateSkipPagerMask;
+ else if (state == display->winStateHiddenAtom)
+ return CompWindowStateHiddenMask;
+ else if (state == display->winStateFullscreenAtom)
+ return CompWindowStateFullscreenMask;
+ else if (state == display->winStateAboveAtom)
+ return CompWindowStateAboveMask;
+ else if (state == display->winStateBelowAtom)
+ return CompWindowStateBelowMask;
+ else if (state == display->winStateDemandsAttentionAtom)
+ return CompWindowStateDemandsAttentionMask;
+ else if (state == display->winStateDisplayModalAtom)
+ return CompWindowStateDisplayModalMask;
+
+ return 0;
+}
+
+unsigned int
+windowStateFromString (const char *str)
+{
+ if (strcasecmp (str, "modal") == 0)
+ return CompWindowStateModalMask;
+ else if (strcasecmp (str, "sticky") == 0)
+ return CompWindowStateStickyMask;
+ else if (strcasecmp (str, "maxvert") == 0)
+ return CompWindowStateMaximizedVertMask;
+ else if (strcasecmp (str, "maxhorz") == 0)
+ return CompWindowStateMaximizedHorzMask;
+ else if (strcasecmp (str, "shaded") == 0)
+ return CompWindowStateShadedMask;
+ else if (strcasecmp (str, "skiptaskbar") == 0)
+ return CompWindowStateSkipTaskbarMask;
+ else if (strcasecmp (str, "skippager") == 0)
+ return CompWindowStateSkipPagerMask;
+ else if (strcasecmp (str, "hidden") == 0)
+ return CompWindowStateHiddenMask;
+ else if (strcasecmp (str, "fullscreen") == 0)
+ return CompWindowStateFullscreenMask;
+ else if (strcasecmp (str, "above") == 0)
+ return CompWindowStateAboveMask;
+ else if (strcasecmp (str, "below") == 0)
+ return CompWindowStateBelowMask;
+ else if (strcasecmp (str, "demandsattention") == 0)
+ return CompWindowStateDemandsAttentionMask;
+
+ return 0;
+}
+
+unsigned int
+getWindowState (CompDisplay *display,
+ Window id)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ unsigned int state = 0;
+
+ result = XGetWindowProperty (display->display, id, display->winStateAtom,
+ 0L, 1024L, FALSE, XA_ATOM, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ Atom *a = (Atom *) data;
+
+ while (n--)
+ state |= windowStateMask (display, *a++);
+
+ XFree ((void *) data);
+ }
+
+ return state;
+}
+
+void
+setWindowState (CompDisplay *display,
+ unsigned int state,
+ Window id)
+{
+ Atom data[32];
+ int i = 0;
+
+ if (state & CompWindowStateModalMask)
+ data[i++] = display->winStateModalAtom;
+ if (state & CompWindowStateStickyMask)
+ data[i++] = display->winStateStickyAtom;
+ if (state & CompWindowStateMaximizedVertMask)
+ data[i++] = display->winStateMaximizedVertAtom;
+ if (state & CompWindowStateMaximizedHorzMask)
+ data[i++] = display->winStateMaximizedHorzAtom;
+ if (state & CompWindowStateShadedMask)
+ data[i++] = display->winStateShadedAtom;
+ if (state & CompWindowStateSkipTaskbarMask)
+ data[i++] = display->winStateSkipTaskbarAtom;
+ if (state & CompWindowStateSkipPagerMask)
+ data[i++] = display->winStateSkipPagerAtom;
+ if (state & CompWindowStateHiddenMask)
+ data[i++] = display->winStateHiddenAtom;
+ if (state & CompWindowStateFullscreenMask)
+ data[i++] = display->winStateFullscreenAtom;
+ if (state & CompWindowStateAboveMask)
+ data[i++] = display->winStateAboveAtom;
+ if (state & CompWindowStateBelowMask)
+ data[i++] = display->winStateBelowAtom;
+ if (state & CompWindowStateDemandsAttentionMask)
+ data[i++] = display->winStateDemandsAttentionAtom;
+ if (state & CompWindowStateDisplayModalMask)
+ data[i++] = display->winStateDisplayModalAtom;
+
+ XChangeProperty (display->display, id, display->winStateAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) data, i);
+}
+
+void
+changeWindowState (CompWindow *w,
+ unsigned int newState)
+{
+ CompDisplay *d = w->screen->display;
+ unsigned int oldState;
+
+ if (w->state == newState)
+ return;
+
+ oldState = w->state;
+ w->state = newState;
+
+ recalcWindowType (w);
+ recalcWindowActions (w);
+
+ if (w->managed)
+ setWindowState (d, w->state, w->id);
+
+ (*w->screen->windowStateChangeNotify) (w, oldState);
+ (*d->matchPropertyChanged) (d, w);
+}
+
+static void
+setWindowActions (CompDisplay *display,
+ unsigned int actions,
+ Window id)
+{
+ Atom data[32];
+ int i = 0;
+
+ if (actions & CompWindowActionMoveMask)
+ data[i++] = display->winActionMoveAtom;
+ if (actions & CompWindowActionResizeMask)
+ data[i++] = display->winActionResizeAtom;
+ if (actions & CompWindowActionStickMask)
+ data[i++] = display->winActionStickAtom;
+ if (actions & CompWindowActionMinimizeMask)
+ data[i++] = display->winActionMinimizeAtom;
+ if (actions & CompWindowActionMaximizeHorzMask)
+ data[i++] = display->winActionMaximizeHorzAtom;
+ if (actions & CompWindowActionMaximizeVertMask)
+ data[i++] = display->winActionMaximizeVertAtom;
+ if (actions & CompWindowActionFullscreenMask)
+ data[i++] = display->winActionFullscreenAtom;
+ if (actions & CompWindowActionCloseMask)
+ data[i++] = display->winActionCloseAtom;
+ if (actions & CompWindowActionShadeMask)
+ data[i++] = display->winActionShadeAtom;
+ if (actions & CompWindowActionChangeDesktopMask)
+ data[i++] = display->winActionChangeDesktopAtom;
+ if (actions & CompWindowActionAboveMask)
+ data[i++] = display->winActionAboveAtom;
+ if (actions & CompWindowActionBelowMask)
+ data[i++] = display->winActionBelowAtom;
+
+ XChangeProperty (display->display, id, display->wmAllowedActionsAtom,
+ XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) data, i);
+}
+
+void
+recalcWindowActions (CompWindow *w)
+{
+ unsigned int actions = 0;
+ unsigned int setActions, clearActions;
+
+ switch (w->type) {
+ case CompWindowTypeFullscreenMask:
+ case CompWindowTypeNormalMask:
+ actions =
+ CompWindowActionMaximizeHorzMask |
+ CompWindowActionMaximizeVertMask |
+ CompWindowActionFullscreenMask |
+ CompWindowActionMoveMask |
+ CompWindowActionResizeMask |
+ CompWindowActionStickMask |
+ CompWindowActionMinimizeMask |
+ CompWindowActionCloseMask |
+ CompWindowActionChangeDesktopMask;
+ break;
+ case CompWindowTypeUtilMask:
+ case CompWindowTypeMenuMask:
+ case CompWindowTypeToolbarMask:
+ actions =
+ CompWindowActionMoveMask |
+ CompWindowActionResizeMask |
+ CompWindowActionStickMask |
+ CompWindowActionCloseMask |
+ CompWindowActionChangeDesktopMask;
+ break;
+ case CompWindowTypeDialogMask:
+ case CompWindowTypeModalDialogMask:
+ actions =
+ CompWindowActionMaximizeHorzMask |
+ CompWindowActionMaximizeVertMask |
+ CompWindowActionMoveMask |
+ CompWindowActionResizeMask |
+ CompWindowActionStickMask |
+ CompWindowActionCloseMask |
+ CompWindowActionChangeDesktopMask;
+
+ /* allow minimization for dialog windows if they
+ a) are not a transient (transients can be minimized
+ with their parent)
+ b) don't have the skip taskbar hint set (as those
+ have no target to be minimized to)
+ */
+ if (!w->transientFor &&
+ !(w->state & CompWindowStateSkipTaskbarMask))
+ {
+ actions |= CompWindowActionMinimizeMask;
+ }
+ default:
+ break;
+ }
+
+ if (w->input.top)
+ actions |= CompWindowActionShadeMask;
+
+ actions |= (CompWindowActionAboveMask | CompWindowActionBelowMask);
+
+ switch (w->wmType) {
+ case CompWindowTypeNormalMask:
+ actions |= CompWindowActionFullscreenMask |
+ CompWindowActionMinimizeMask;
+ default:
+ break;
+ }
+
+ if (w->sizeHints.min_width == w->sizeHints.max_width &&
+ w->sizeHints.min_height == w->sizeHints.max_height)
+ actions &= ~(CompWindowActionResizeMask |
+ CompWindowActionMaximizeHorzMask |
+ CompWindowActionMaximizeVertMask |
+ CompWindowActionFullscreenMask);
+
+ if (!(w->mwmFunc & MwmFuncAll))
+ {
+ if (!(w->mwmFunc & MwmFuncResize))
+ actions &= ~(CompWindowActionResizeMask |
+ CompWindowActionMaximizeHorzMask |
+ CompWindowActionMaximizeVertMask |
+ CompWindowActionFullscreenMask);
+
+ if (!(w->mwmFunc & MwmFuncMove))
+ actions &= ~(CompWindowActionMoveMask |
+ CompWindowActionMaximizeHorzMask |
+ CompWindowActionMaximizeVertMask |
+ CompWindowActionFullscreenMask);
+
+ if (!(w->mwmFunc & MwmFuncIconify))
+ actions &= ~CompWindowActionMinimizeMask;
+
+ if (!(w->mwmFunc & MwmFuncClose))
+ actions &= ~CompWindowActionCloseMask;
+ }
+
+ (*w->screen->getAllowedActionsForWindow) (w, &setActions, &clearActions);
+ actions &= ~clearActions;
+ actions |= setActions;
+
+ if (actions != w->actions)
+ {
+ w->actions = actions;
+ setWindowActions (w->screen->display, actions, w->id);
+ }
+}
+
+void
+getAllowedActionsForWindow (CompWindow *w,
+ unsigned int *setActions,
+ unsigned int *clearActions)
+{
+ *setActions = 0;
+ *clearActions = 0;
+}
+
+unsigned int
+constrainWindowState (unsigned int state,
+ unsigned int actions)
+{
+ if (!(actions & CompWindowActionMaximizeHorzMask))
+ state &= ~CompWindowStateMaximizedHorzMask;
+
+ if (!(actions & CompWindowActionMaximizeVertMask))
+ state &= ~CompWindowStateMaximizedVertMask;
+
+ if (!(actions & CompWindowActionShadeMask))
+ state &= ~CompWindowStateShadedMask;
+
+ if (!(actions & CompWindowActionFullscreenMask))
+ state &= ~CompWindowStateFullscreenMask;
+
+ return state;
+}
+
+unsigned int
+windowTypeFromString (const char *str)
+{
+ if (strcasecmp (str, "desktop") == 0)
+ return CompWindowTypeDesktopMask;
+ else if (strcasecmp (str, "dock") == 0)
+ return CompWindowTypeDockMask;
+ else if (strcasecmp (str, "toolbar") == 0)
+ return CompWindowTypeToolbarMask;
+ else if (strcasecmp (str, "menu") == 0)
+ return CompWindowTypeMenuMask;
+ else if (strcasecmp (str, "utility") == 0)
+ return CompWindowTypeUtilMask;
+ else if (strcasecmp (str, "splash") == 0)
+ return CompWindowTypeSplashMask;
+ else if (strcasecmp (str, "dialog") == 0)
+ return CompWindowTypeDialogMask;
+ else if (strcasecmp (str, "normal") == 0)
+ return CompWindowTypeNormalMask;
+ else if (strcasecmp (str, "dropdownmenu") == 0)
+ return CompWindowTypeDropdownMenuMask;
+ else if (strcasecmp (str, "popupmenu") == 0)
+ return CompWindowTypePopupMenuMask;
+ else if (strcasecmp (str, "tooltip") == 0)
+ return CompWindowTypeTooltipMask;
+ else if (strcasecmp (str, "notification") == 0)
+ return CompWindowTypeNotificationMask;
+ else if (strcasecmp (str, "combo") == 0)
+ return CompWindowTypeComboMask;
+ else if (strcasecmp (str, "dnd") == 0)
+ return CompWindowTypeDndMask;
+ else if (strcasecmp (str, "modaldialog") == 0)
+ return CompWindowTypeModalDialogMask;
+ else if (strcasecmp (str, "fullscreen") == 0)
+ return CompWindowTypeFullscreenMask;
+ else if (strcasecmp (str, "unknown") == 0)
+ return CompWindowTypeUnknownMask;
+ else if (strcasecmp (str, "any") == 0)
+ return ~0;
+
+ return 0;
+}
+
+unsigned int
+getWindowType (CompDisplay *display,
+ Window id)
+{
+ Atom actual, a = None;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (display->display, id, display->winTypeAtom,
+ 0L, 1L, FALSE, XA_ATOM, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ memcpy (&a, data, sizeof (Atom));
+
+ XFree ((void *) data);
+ }
+
+ if (a)
+ {
+ if (a == display->winTypeNormalAtom)
+ return CompWindowTypeNormalMask;
+ else if (a == display->winTypeMenuAtom)
+ return CompWindowTypeMenuMask;
+ else if (a == display->winTypeDesktopAtom)
+ return CompWindowTypeDesktopMask;
+ else if (a == display->winTypeDockAtom)
+ return CompWindowTypeDockMask;
+ else if (a == display->winTypeToolbarAtom)
+ return CompWindowTypeToolbarMask;
+ else if (a == display->winTypeUtilAtom)
+ return CompWindowTypeUtilMask;
+ else if (a == display->winTypeSplashAtom)
+ return CompWindowTypeSplashMask;
+ else if (a == display->winTypeDialogAtom)
+ return CompWindowTypeDialogMask;
+ else if (a == display->winTypeDropdownMenuAtom)
+ return CompWindowTypeDropdownMenuMask;
+ else if (a == display->winTypePopupMenuAtom)
+ return CompWindowTypePopupMenuMask;
+ else if (a == display->winTypeTooltipAtom)
+ return CompWindowTypeTooltipMask;
+ else if (a == display->winTypeNotificationAtom)
+ return CompWindowTypeNotificationMask;
+ else if (a == display->winTypeComboAtom)
+ return CompWindowTypeComboMask;
+ else if (a == display->winTypeDndAtom)
+ return CompWindowTypeDndMask;
+ }
+
+ return CompWindowTypeUnknownMask;
+}
+
+void
+recalcWindowType (CompWindow *w)
+{
+ unsigned int type;
+
+ type = w->wmType;
+
+ if (!w->attrib.override_redirect && w->wmType == CompWindowTypeUnknownMask)
+ type = CompWindowTypeNormalMask;
+
+ if (w->state & CompWindowStateFullscreenMask)
+ type = CompWindowTypeFullscreenMask;
+
+ if (type == CompWindowTypeNormalMask)
+ {
+ if (w->transientFor)
+ type = CompWindowTypeDialogMask;
+ }
+
+ if (type == CompWindowTypeDockMask && (w->state & CompWindowStateBelowMask))
+ type = CompWindowTypeNormalMask;
+
+ if ((type & (CompWindowTypeNormalMask | CompWindowTypeDialogMask)) &&
+ (w->state & CompWindowStateModalMask))
+ type = CompWindowTypeModalDialogMask;
+
+ w->type = type;
+}
+
+void
+getMwmHints (CompDisplay *display,
+ Window id,
+ unsigned int *func,
+ unsigned int *decor)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ *func = MwmFuncAll;
+ *decor = MwmDecorAll;
+
+ result = XGetWindowProperty (display->display, id, display->mwmHintsAtom,
+ 0L, 20L, FALSE, display->mwmHintsAtom,
+ &actual, &format, &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ MwmHints *mwmHints = (MwmHints *) data;
+
+ if (n >= PropMotifWmHintElements)
+ {
+ if (mwmHints->flags & MwmHintsDecorations)
+ *decor = mwmHints->decorations;
+
+ if (mwmHints->flags & MwmHintsFunctions)
+ *func = mwmHints->functions;
+ }
+
+ XFree (data);
+ }
+}
+
+unsigned int
+getProtocols (CompDisplay *display,
+ Window id)
+{
+ Atom *protocol;
+ int count;
+ unsigned int protocols = 0;
+
+ if (XGetWMProtocols (display->display, id, &protocol, &count))
+ {
+ int i;
+
+ for (i = 0; i < count; i++)
+ {
+ if (protocol[i] == display->wmDeleteWindowAtom)
+ protocols |= CompWindowProtocolDeleteMask;
+ else if (protocol[i] == display->wmTakeFocusAtom)
+ protocols |= CompWindowProtocolTakeFocusMask;
+ else if (protocol[i] == display->wmPingAtom)
+ protocols |= CompWindowProtocolPingMask;
+ else if (protocol[i] == display->wmSyncRequestAtom)
+ protocols |= CompWindowProtocolSyncRequestMask;
+ }
+
+ XFree (protocol);
+ }
+
+ return protocols;
+}
+
+unsigned int
+getWindowProp (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned int defaultValue)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ unsigned int retval = defaultValue;
+
+ result = XGetWindowProperty (display->display, id, property,
+ 0L, 1L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ {
+ unsigned long value;
+
+ memcpy (&value, data, sizeof (unsigned long));
+ retval = (unsigned int) value;
+ }
+
+ XFree (data);
+ }
+
+ return retval;
+}
+
+void
+setWindowProp (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned int value)
+{
+ unsigned long data = value;
+
+ XChangeProperty (display->display, id, property,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &data, 1);
+}
+
+Bool
+readWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short *returnValue)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ Bool retval = FALSE;
+
+ result = XGetWindowProperty (display->display, id, property,
+ 0L, 1L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ {
+ CARD32 value;
+ memcpy (&value, data, sizeof (CARD32));
+
+ retval = TRUE;
+ *returnValue = value >> 16;
+ }
+
+ XFree (data);
+ }
+
+ return retval;
+}
+
+unsigned short
+getWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short defaultValue)
+{
+ unsigned short result;
+
+ if (readWindowProp32 (display, id, property, &result))
+ return result;
+
+ return defaultValue;
+}
+
+void
+setWindowProp32 (CompDisplay *display,
+ Window id,
+ Atom property,
+ unsigned short value)
+{
+ CARD32 value32;
+
+ value32 = value << 16 | value;
+
+ XChangeProperty (display->display, id, property,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &value32, 1);
+}
+
+static void
+updateFrameWindow (CompWindow *w)
+{
+ CompDisplay *d = w->screen->display;
+
+ if (w->input.left || w->input.right || w->input.top || w->input.bottom)
+ {
+ XRectangle rects[4];
+ int x, y, width, height;
+ int i = 0;
+ int bw = w->serverBorderWidth * 2;
+
+ x = w->serverX - w->input.left;
+ y = w->serverY - w->input.top;
+ width = w->serverWidth + w->input.left + w->input.right + bw;
+ height = w->serverHeight + w->input.top + w->input.bottom + bw;
+
+ if (w->shaded)
+ height = w->input.top + w->input.bottom;
+
+ if (!w->frame)
+ {
+ XSetWindowAttributes attr;
+ XWindowChanges xwc;
+
+ attr.event_mask = 0;
+ attr.override_redirect = TRUE;
+
+ w->frame = XCreateWindow (d->display, w->screen->root,
+ x, y, width, height, 0,
+ CopyFromParent,
+ InputOnly,
+ CopyFromParent,
+ CWOverrideRedirect | CWEventMask, &attr);
+
+ XGrabButton (d->display, AnyButton, AnyModifier, w->frame, TRUE,
+ ButtonPressMask | ButtonReleaseMask | ButtonMotionMask,
+ GrabModeSync, GrabModeSync, None, None);
+
+ xwc.stack_mode = Below;
+ xwc.sibling = w->id;
+
+ XConfigureWindow (d->display, w->frame,
+ CWSibling | CWStackMode, &xwc);
+
+ if (w->mapNum || w->shaded)
+ XMapWindow (d->display, w->frame);
+
+ XChangeProperty (d->display, w->id, d->frameWindowAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &w->frame, 1);
+ }
+
+ XMoveResizeWindow (d->display, w->frame, x, y, width, height);
+
+ rects[i].x = 0;
+ rects[i].y = 0;
+ rects[i].width = width;
+ rects[i].height = w->input.top;
+
+ if (rects[i].width && rects[i].height)
+ i++;
+
+ rects[i].x = 0;
+ rects[i].y = w->input.top;
+ rects[i].width = w->input.left;
+ rects[i].height = height - w->input.top - w->input.bottom;
+
+ if (rects[i].width && rects[i].height)
+ i++;
+
+ rects[i].x = width - w->input.right;
+ rects[i].y = w->input.top;
+ rects[i].width = w->input.right;
+ rects[i].height = height - w->input.top - w->input.bottom;
+
+ if (rects[i].width && rects[i].height)
+ i++;
+
+ rects[i].x = 0;
+ rects[i].y = height - w->input.bottom;
+ rects[i].width = width;
+ rects[i].height = w->input.bottom;
+
+ if (rects[i].width && rects[i].height)
+ i++;
+
+ XShapeCombineRectangles (d->display,
+ w->frame,
+ ShapeInput,
+ 0,
+ 0,
+ rects,
+ i,
+ ShapeSet,
+ YXBanded);
+ }
+ else
+ {
+ if (w->frame)
+ {
+ XDeleteProperty (d->display, w->id, d->frameWindowAtom);
+ XDestroyWindow (d->display, w->frame);
+ w->frame = None;
+ }
+ }
+
+ recalcWindowActions (w);
+}
+
+void
+setWindowFrameExtents (CompWindow *w,
+ CompWindowExtents *input)
+{
+ if (input->left != w->input.left ||
+ input->right != w->input.right ||
+ input->top != w->input.top ||
+ input->bottom != w->input.bottom)
+ {
+ unsigned long data[4];
+
+ w->input = *input;
+
+ data[0] = input->left;
+ data[1] = input->right;
+ data[2] = input->top;
+ data[3] = input->bottom;
+
+ updateWindowSize (w);
+ updateFrameWindow (w);
+ recalcWindowActions (w);
+
+ XChangeProperty (w->screen->display->display, w->id,
+ w->screen->display->frameExtentsAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) data, 4);
+ }
+}
+
+void
+updateWindowOutputExtents (CompWindow *w)
+{
+ CompWindowExtents output;
+
+ (*w->screen->getOutputExtentsForWindow) (w, &output);
+
+ if (output.left != w->output.left ||
+ output.right != w->output.right ||
+ output.top != w->output.top ||
+ output.bottom != w->output.bottom)
+ {
+ w->output = output;
+
+ (*w->screen->windowResizeNotify) (w, 0, 0, 0, 0);
+ }
+}
+
+void
+setWindowFullscreenMonitors (CompWindow *w,
+ CompFullscreenMonitorSet *monitors)
+{
+ CompScreen *s = w->screen;
+ CompDisplay *d = s->display;
+ Bool hadFsMonitors = w->fullscreenMonitorsSet;
+
+ w->fullscreenMonitorsSet = FALSE;
+
+ if (monitors &&
+ monitors->left < s->nOutputDev &&
+ monitors->right < s->nOutputDev &&
+ monitors->top < s->nOutputDev &&
+ monitors->bottom < s->nOutputDev)
+ {
+ BOX fsBox;
+
+ fsBox.x1 = s->outputDev[monitors->left].region.extents.x1;
+ fsBox.y1 = s->outputDev[monitors->top].region.extents.y1;
+ fsBox.x2 = s->outputDev[monitors->right].region.extents.x2;
+ fsBox.y2 = s->outputDev[monitors->bottom].region.extents.y2;
+
+ if (fsBox.x1 < fsBox.x2 && fsBox.y1 < fsBox.y2)
+ {
+ w->fullscreenMonitorsSet = TRUE;
+
+ w->fullscreenMonitorRect.x = fsBox.x1;
+ w->fullscreenMonitorRect.y = fsBox.y1;
+ w->fullscreenMonitorRect.width = fsBox.x2 - fsBox.x1;
+ w->fullscreenMonitorRect.height = fsBox.y2 - fsBox.y1;
+ }
+ }
+
+ if (w->fullscreenMonitorsSet)
+ {
+ long data[4];
+
+ data[0] = monitors->top;
+ data[1] = monitors->bottom;
+ data[2] = monitors->left;
+ data[3] = monitors->right;
+
+ XChangeProperty (d->display, w->id, d->wmFullscreenMonitorsAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) data, 4);
+ }
+ else if (hadFsMonitors)
+ {
+ XDeleteProperty (d->display, w->id, d->wmFullscreenMonitorsAtom);
+ }
+
+ if (w->state & CompWindowStateFullscreenMask)
+ if (w->fullscreenMonitorsSet || hadFsMonitors)
+ updateWindowAttributes (w, CompStackingUpdateModeNone);
+}
+
+static void
+setWindowMatrix (CompWindow *w)
+{
+ w->matrix = w->texture->matrix;
+ w->matrix.x0 -= (w->attrib.x * w->matrix.xx);
+ w->matrix.y0 -= (w->attrib.y * w->matrix.yy);
+}
+
+Bool
+bindWindow (CompWindow *w)
+{
+ redirectWindow (w);
+
+ if (!w->pixmap)
+ {
+ XWindowAttributes attr;
+ Display *dpy = w->screen->display->display;
+
+ /* don't try to bind window again if it failed previously */
+ if (w->bindFailed)
+ return FALSE;
+
+ /* We have to grab the server here to make sure that window
+ is mapped when getting the window pixmap */
+ XGrabServer (dpy);
+
+ if (!XGetWindowAttributes (dpy, w->id, &attr) ||
+ attr.map_state != IsViewable)
+ {
+ XUngrabServer (dpy);
+ finiTexture (w->screen, w->texture);
+ w->bindFailed = TRUE;
+ return FALSE;
+ }
+
+ w->pixmap = XCompositeNameWindowPixmap (dpy, w->id);
+
+ XUngrabServer (dpy);
+ }
+
+ if (!bindPixmapToTexture (w->screen, w->texture, w->pixmap,
+ w->width, w->height,
+ w->attrib.depth))
+ {
+ compLogMessage ("core", CompLogLevelInfo,
+ "Couldn't bind redirected window 0x%x to "
+ "texture\n", (int) w->id);
+ }
+
+ setWindowMatrix (w);
+
+ return TRUE;
+}
+
+void
+releaseWindow (CompWindow *w)
+{
+ if (w->pixmap)
+ {
+ CompTexture *texture;
+
+ texture = createTexture (w->screen);
+ if (texture)
+ {
+ destroyTexture (w->screen, w->texture);
+
+ w->texture = texture;
+ }
+
+ XFreePixmap (w->screen->display->display, w->pixmap);
+
+ w->pixmap = None;
+ }
+}
+
+static void
+freeWindow (CompWindow *w)
+{
+ releaseWindow (w);
+
+ if (w->syncAlarm)
+ XSyncDestroyAlarm (w->screen->display->display, w->syncAlarm);
+
+ if (w->syncWaitHandle)
+ compRemoveTimeout (w->syncWaitHandle);
+
+ destroyTexture (w->screen, w->texture);
+
+ if (w->frame)
+ XDestroyWindow (w->screen->display->display, w->frame);
+
+ if (w->clip)
+ XDestroyRegion (w->clip);
+
+ if (w->region)
+ XDestroyRegion (w->region);
+
+ if (w->hints)
+ XFree (w->hints);
+
+ if (w->base.privates)
+ free (w->base.privates);
+
+ if (w->sizeDamage)
+ free (w->damageRects);
+
+ if (w->vertices)
+ free (w->vertices);
+
+ if (w->indices)
+ free (w->indices);
+
+ if (w->struts)
+ free (w->struts);
+
+ if (w->icon)
+ freeWindowIcons (w);
+
+ if (w->startupId)
+ free (w->startupId);
+
+ if (w->resName)
+ free (w->resName);
+
+ if (w->resClass)
+ free (w->resClass);
+
+ free (w);
+}
+
+void
+damageTransformedWindowRect (CompWindow *w,
+ float xScale,
+ float yScale,
+ float xTranslate,
+ float yTranslate,
+ BoxPtr rect)
+{
+ REGION reg;
+
+ reg.rects = &reg.extents;
+ reg.numRects = 1;
+
+ reg.extents.x1 = (rect->x1 * xScale) - 1;
+ reg.extents.y1 = (rect->y1 * yScale) - 1;
+ reg.extents.x2 = (rect->x2 * xScale + 0.5f) + 1;
+ reg.extents.y2 = (rect->y2 * yScale + 0.5f) + 1;
+
+ reg.extents.x1 += xTranslate;
+ reg.extents.y1 += yTranslate;
+ reg.extents.x2 += (xTranslate + 0.5f);
+ reg.extents.y2 += (yTranslate + 0.5f);
+
+ if (reg.extents.x2 > reg.extents.x1 && reg.extents.y2 > reg.extents.y1)
+ {
+ reg.extents.x1 += w->attrib.x + w->attrib.border_width;
+ reg.extents.y1 += w->attrib.y + w->attrib.border_width;
+ reg.extents.x2 += w->attrib.x + w->attrib.border_width;
+ reg.extents.y2 += w->attrib.y + w->attrib.border_width;
+
+ damageScreenRegion (w->screen, &reg);
+ }
+}
+
+void
+damageWindowOutputExtents (CompWindow *w)
+{
+ if (w->screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ if (w->shaded || (w->attrib.map_state == IsViewable && w->damaged))
+ {
+ BoxRec box;
+
+ /* top */
+ box.x1 = -w->output.left - w->attrib.border_width;
+ box.y1 = -w->output.top - w->attrib.border_width;
+ box.x2 = w->width + w->output.right - w->attrib.border_width;
+ box.y2 = -w->attrib.border_width;
+
+ if (box.x1 < box.x2 && box.y1 < box.y2)
+ addWindowDamageRect (w, &box);
+
+ /* bottom */
+ box.y1 = w->height - w->attrib.border_width;
+ box.y2 = box.y1 + w->output.bottom - w->attrib.border_width;
+
+ if (box.x1 < box.x2 && box.y1 < box.y2)
+ addWindowDamageRect (w, &box);
+
+ /* left */
+ box.x1 = -w->output.left - w->attrib.border_width;
+ box.y1 = -w->attrib.border_width;
+ box.x2 = -w->attrib.border_width;
+ box.y2 = w->height - w->attrib.border_width;
+
+ if (box.x1 < box.x2 && box.y1 < box.y2)
+ addWindowDamageRect (w, &box);
+
+ /* right */
+ box.x1 = w->width - w->attrib.border_width;
+ box.x2 = box.x1 + w->output.right - w->attrib.border_width;
+
+ if (box.x1 < box.x2 && box.y1 < box.y2)
+ addWindowDamageRect (w, &box);
+ }
+}
+
+Bool
+damageWindowRect (CompWindow *w,
+ Bool initial,
+ BoxPtr rect)
+{
+ return FALSE;
+}
+
+void
+addWindowDamageRect (CompWindow *w,
+ BoxPtr rect)
+{
+ REGION region;
+
+ if (w->screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ region.extents = *rect;
+
+ if (!(*w->screen->damageWindowRect) (w, FALSE, &region.extents))
+ {
+ region.extents.x1 += w->attrib.x + w->attrib.border_width;
+ region.extents.y1 += w->attrib.y + w->attrib.border_width;
+ region.extents.x2 += w->attrib.x + w->attrib.border_width;
+ region.extents.y2 += w->attrib.y + w->attrib.border_width;
+
+ region.rects = &region.extents;
+ region.numRects = region.size = 1;
+
+ damageScreenRegion (w->screen, &region);
+ }
+}
+
+void
+getOutputExtentsForWindow (CompWindow *w,
+ CompWindowExtents *output)
+{
+ output->left = 0;
+ output->right = 0;
+ output->top = 0;
+ output->bottom = 0;
+}
+
+void
+addWindowDamage (CompWindow *w)
+{
+ if (w->screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ return;
+
+ if (w->shaded || (w->attrib.map_state == IsViewable && w->damaged))
+ {
+ BoxRec box;
+
+ box.x1 = -w->output.left - w->attrib.border_width;
+ box.y1 = -w->output.top - w->attrib.border_width;
+ box.x2 = w->width + w->output.right;
+ box.y2 = w->height + w->output.bottom;
+
+ addWindowDamageRect (w, &box);
+ }
+}
+
+void
+updateWindowRegion (CompWindow *w)
+{
+ REGION rect;
+ XRectangle r, *rects, *shapeRects = 0;
+ int i, n = 0;
+
+ EMPTY_REGION (w->region);
+
+ if (w->screen->display->shapeExtension)
+ {
+ int order;
+
+ shapeRects = XShapeGetRectangles (w->screen->display->display, w->id,
+ ShapeBounding, &n, &order);
+ }
+
+ if (n < 2)
+ {
+ r.x = -w->attrib.border_width;
+ r.y = -w->attrib.border_width;
+ r.width = w->width;
+ r.height = w->height;
+
+ rects = &r;
+ n = 1;
+ }
+ else
+ {
+ rects = shapeRects;
+ }
+
+ rect.rects = &rect.extents;
+ rect.numRects = rect.size = 1;
+
+ for (i = 0; i < n; i++)
+ {
+ rect.extents.x1 = rects[i].x + w->attrib.border_width;
+ rect.extents.y1 = rects[i].y + w->attrib.border_width;
+ rect.extents.x2 = rect.extents.x1 + rects[i].width;
+ rect.extents.y2 = rect.extents.y1 + rects[i].height;
+
+ if (rect.extents.x1 < 0)
+ rect.extents.x1 = 0;
+ if (rect.extents.y1 < 0)
+ rect.extents.y1 = 0;
+ if (rect.extents.x2 > w->width)
+ rect.extents.x2 = w->width;
+ if (rect.extents.y2 > w->height)
+ rect.extents.y2 = w->height;
+
+ if (rect.extents.y1 < rect.extents.y2 &&
+ rect.extents.x1 < rect.extents.x2)
+ {
+ rect.extents.x1 += w->attrib.x;
+ rect.extents.y1 += w->attrib.y;
+ rect.extents.x2 += w->attrib.x;
+ rect.extents.y2 += w->attrib.y;
+
+ XUnionRegion (&rect, w->region, w->region);
+ }
+ }
+
+ if (shapeRects)
+ XFree (shapeRects);
+}
+
+Bool
+updateWindowStruts (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ Bool hasOld, hasNew;
+ CompStruts old, new;
+
+ if (w->struts)
+ {
+ hasOld = TRUE;
+
+ old.left = w->struts->left;
+ old.right = w->struts->right;
+ old.top = w->struts->top;
+ old.bottom = w->struts->bottom;
+ }
+ else
+ {
+ hasOld = FALSE;
+ }
+
+ hasNew = FALSE;
+
+ new.left.x = 0;
+ new.left.y = 0;
+ new.left.width = 0;
+ new.left.height = w->screen->height;
+
+ new.right.x = w->screen->width;
+ new.right.y = 0;
+ new.right.width = 0;
+ new.right.height = w->screen->height;
+
+ new.top.x = 0;
+ new.top.y = 0;
+ new.top.width = w->screen->width;
+ new.top.height = 0;
+
+ new.bottom.x = 0;
+ new.bottom.y = w->screen->height;
+ new.bottom.width = w->screen->width;
+ new.bottom.height = 0;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmStrutPartialAtom,
+ 0L, 12L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ unsigned long *struts = (unsigned long *) data;
+
+ if (n == 12)
+ {
+ hasNew = TRUE;
+
+ new.left.y = struts[4];
+ new.left.width = struts[0];
+ new.left.height = struts[5] - new.left.y + 1;
+
+ new.right.width = struts[1];
+ new.right.x = w->screen->width - new.right.width;
+ new.right.y = struts[6];
+ new.right.height = struts[7] - new.right.y + 1;
+
+ new.top.x = struts[8];
+ new.top.width = struts[9] - new.top.x + 1;
+ new.top.height = struts[2];
+
+ new.bottom.x = struts[10];
+ new.bottom.width = struts[11] - new.bottom.x + 1;
+ new.bottom.height = struts[3];
+ new.bottom.y = w->screen->height - new.bottom.height;
+ }
+
+ XFree (data);
+ }
+
+ if (!hasNew)
+ {
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmStrutAtom,
+ 0L, 4L, FALSE, XA_CARDINAL,
+ &actual, &format, &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ unsigned long *struts = (unsigned long *) data;
+
+ if (n == 4)
+ {
+ hasNew = TRUE;
+
+ new.left.x = 0;
+ new.left.width = struts[0];
+
+ new.right.width = struts[1];
+ new.right.x = w->screen->width - new.right.width;
+
+ new.top.y = 0;
+ new.top.height = struts[2];
+
+ new.bottom.height = struts[3];
+ new.bottom.y = w->screen->height - new.bottom.height;
+ }
+
+ XFree (data);
+ }
+ }
+
+ if (hasNew)
+ {
+ int strutX1, strutY1, strutX2, strutY2;
+ int x1, y1, x2, y2;
+ int i;
+
+ /* applications expect us to clip struts to xinerama edges */
+ for (i = 0; i < w->screen->display->nScreenInfo; i++)
+ {
+ x1 = w->screen->display->screenInfo[i].x_org;
+ y1 = w->screen->display->screenInfo[i].y_org;
+ x2 = x1 + w->screen->display->screenInfo[i].width;
+ y2 = y1 + w->screen->display->screenInfo[i].height;
+
+ strutX1 = new.left.x;
+ strutX2 = strutX1 + new.left.width;
+ strutY1 = new.left.y;
+ strutY2 = strutY1 + new.left.height;
+
+ if (strutX2 > x1 && strutX2 <= x2 &&
+ strutY1 < y2 && strutY2 > y1)
+ {
+ new.left.x = x1;
+ new.left.width = strutX2 - x1;
+ }
+
+ strutX1 = new.right.x;
+ strutX2 = strutX1 + new.right.width;
+ strutY1 = new.right.y;
+ strutY2 = strutY1 + new.right.height;
+
+ if (strutX1 > x1 && strutX1 <= x2 &&
+ strutY1 < y2 && strutY2 > y1)
+ {
+ new.right.x = strutX1;
+ new.right.width = x2 - strutX1;
+ }
+
+ strutX1 = new.top.x;
+ strutX2 = strutX1 + new.top.width;
+ strutY1 = new.top.y;
+ strutY2 = strutY1 + new.top.height;
+
+ if (strutX1 < x2 && strutX2 > x1 &&
+ strutY2 > y1 && strutY2 <= y2)
+ {
+ new.top.y = y1;
+ new.top.height = strutY2 - y1;
+ }
+
+ strutX1 = new.bottom.x;
+ strutX2 = strutX1 + new.bottom.width;
+ strutY1 = new.bottom.y;
+ strutY2 = strutY1 + new.bottom.height;
+
+ if (strutX1 < x2 && strutX2 > x1 &&
+ strutY1 > y1 && strutY1 <= y2)
+ {
+ new.bottom.y = strutY1;
+ new.bottom.height = y2 - strutY1;
+ }
+ }
+ }
+
+ if (hasOld != hasNew || (hasNew && hasOld &&
+ memcmp (&new, &old, sizeof (CompStruts))))
+ {
+ if (hasNew)
+ {
+ if (!w->struts)
+ {
+ w->struts = malloc (sizeof (CompStruts));
+ if (!w->struts)
+ return FALSE;
+ }
+
+ *w->struts = new;
+ }
+ else
+ {
+ free (w->struts);
+ w->struts = NULL;
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void
+setDefaultWindowAttributes (XWindowAttributes *wa)
+{
+ wa->x = 0;
+ wa->y = 0;
+ wa->width = 1;
+ wa->height = 1;
+ wa->border_width = 0;
+ wa->depth = 0;
+ wa->visual = NULL;
+ wa->root = None;
+ wa->class = InputOnly;
+ wa->bit_gravity = NorthWestGravity;
+ wa->win_gravity = NorthWestGravity;
+ wa->backing_store = NotUseful;
+ wa->backing_planes = 0;
+ wa->backing_pixel = 0;
+ wa->save_under = FALSE;
+ wa->colormap = None;
+ wa->map_installed = FALSE;
+ wa->map_state = IsUnviewable;
+ wa->all_event_masks = 0;
+ wa->your_event_mask = 0;
+ wa->do_not_propagate_mask = 0;
+ wa->override_redirect = TRUE;
+ wa->screen = NULL;
+}
+
+void
+addWindow (CompScreen *screen,
+ Window id,
+ Window aboveId)
+{
+ CompWindow *w;
+ CompPrivate *privates;
+ CompDisplay *d = screen->display;
+
+ w = (CompWindow *) malloc (sizeof (CompWindow));
+ if (!w)
+ return;
+
+ w->next = NULL;
+ w->prev = NULL;
+
+ w->mapNum = 0;
+ w->activeNum = 0;
+
+ w->frame = None;
+
+ w->placed = FALSE;
+ w->minimized = FALSE;
+ w->inShowDesktopMode = FALSE;
+ w->shaded = FALSE;
+ w->hidden = FALSE;
+ w->grabbed = FALSE;
+
+ w->desktop = screen->currentDesktop;
+
+ w->initialViewportX = screen->x;
+ w->initialViewportY = screen->y;
+
+ w->initialTimestamp = 0;
+ w->initialTimestampSet = FALSE;
+
+ w->pendingUnmaps = 0;
+ w->pendingMaps = 0;
+
+ w->startupId = NULL;
+ w->resName = NULL;
+ w->resClass = NULL;
+
+ w->texture = createTexture (screen);
+ if (!w->texture)
+ {
+ free (w);
+ return;
+ }
+
+ w->screen = screen;
+ w->pixmap = None;
+ w->destroyed = FALSE;
+ w->damaged = FALSE;
+ w->redirected = TRUE;
+ w->managed = FALSE;
+ w->bindFailed = FALSE;
+
+ w->destroyRefCnt = 1;
+ w->unmapRefCnt = 1;
+
+ w->group = NULL;
+ w->hints = NULL;
+
+ w->damageRects = 0;
+ w->sizeDamage = 0;
+ w->nDamage = 0;
+
+ w->vertices = 0;
+ w->vertexSize = 0;
+ w->vertexStride = 0;
+ w->indices = 0;
+ w->indexSize = 0;
+ w->vCount = 0;
+ w->indexCount = 0;
+ w->texCoordSize = 2;
+
+ w->drawWindowGeometry = NULL;
+
+ w->struts = 0;
+
+ w->icon = 0;
+ w->nIcon = 0;
+
+ w->iconGeometry.x = 0;
+ w->iconGeometry.y = 0;
+ w->iconGeometry.width = 0;
+ w->iconGeometry.height = 0;
+ w->iconGeometrySet = FALSE;
+
+ w->input.left = 0;
+ w->input.right = 0;
+ w->input.top = 0;
+ w->input.bottom = 0;
+
+ w->output.left = 0;
+ w->output.right = 0;
+ w->output.top = 0;
+ w->output.bottom = 0;
+
+ w->paint.xScale = 1.0f;
+ w->paint.yScale = 1.0f;
+ w->paint.xTranslate = 0.0f;
+ w->paint.yTranslate = 0.0f;
+
+ w->lastPaint = w->paint;
+
+ w->alive = TRUE;
+
+ w->mwmDecor = MwmDecorAll;
+ w->mwmFunc = MwmFuncAll;
+
+ w->syncAlarm = None;
+ w->syncCounter = 0;
+ w->syncWaitHandle = 0;
+
+ w->closeRequests = 0;
+ w->lastCloseRequestTime = 0;
+
+ w->fullscreenMonitorsSet = FALSE;
+ w->overlayWindow = FALSE;
+
+ if (screen->windowPrivateLen)
+ {
+ privates = malloc (screen->windowPrivateLen * sizeof (CompPrivate));
+ if (!privates)
+ {
+ destroyTexture (screen, w->texture);
+ free (w);
+ return;
+ }
+ }
+ else
+ privates = 0;
+
+ compObjectInit (&w->base, privates, COMP_OBJECT_TYPE_WINDOW);
+
+ w->region = XCreateRegion ();
+ if (!w->region)
+ {
+ freeWindow (w);
+ return;
+ }
+
+ w->clip = XCreateRegion ();
+ if (!w->clip)
+ {
+ freeWindow (w);
+ return;
+ }
+
+ /* Failure means that window has been destroyed. We still have to add the
+ window to the window list as we might get configure requests which
+ require us to stack other windows relative to it. Setting some default
+ values if this is the case. */
+ if (!XGetWindowAttributes (d->display, id, &w->attrib))
+ setDefaultWindowAttributes (&w->attrib);
+
+ w->serverWidth = w->attrib.width;
+ w->serverHeight = w->attrib.height;
+ w->serverBorderWidth = w->attrib.border_width;
+
+ w->width = w->attrib.width + w->attrib.border_width * 2;
+ w->height = w->attrib.height + w->attrib.border_width * 2;
+
+ w->sizeHints.flags = 0;
+
+ recalcNormalHints (w);
+
+ w->transientFor = None;
+ w->clientLeader = None;
+
+ w->serverX = w->attrib.x;
+ w->serverY = w->attrib.y;
+
+ w->syncWait = FALSE;
+ w->syncX = w->attrib.x;
+ w->syncY = w->attrib.y;
+ w->syncWidth = w->attrib.width;
+ w->syncHeight = w->attrib.height;
+ w->syncBorderWidth = w->attrib.border_width;
+
+ w->saveMask = 0;
+
+ XSelectInput (d->display, id,
+ PropertyChangeMask |
+ EnterWindowMask |
+ FocusChangeMask);
+
+ w->id = id;
+
+ XGrabButton (d->display, AnyButton, AnyModifier, w->id, TRUE,
+ ButtonPressMask | ButtonReleaseMask | ButtonMotionMask,
+ GrabModeSync, GrabModeSync, None, None);
+
+ w->inputHint = TRUE;
+ w->alpha = (w->attrib.depth == 32);
+ w->wmType = 0;
+ w->state = 0;
+ w->actions = 0;
+ w->protocols = 0;
+ w->type = CompWindowTypeUnknownMask;
+ w->lastPong = d->lastPing;
+
+ if (d->shapeExtension)
+ XShapeSelectInput (d->display, id, ShapeNotifyMask);
+
+ insertWindowIntoScreen (screen, w, aboveId);
+
+ EMPTY_REGION (w->region);
+
+ if (w->attrib.class != InputOnly)
+ {
+ REGION rect;
+
+ rect.rects = &rect.extents;
+ rect.numRects = rect.size = 1;
+
+ rect.extents.x1 = w->attrib.x;
+ rect.extents.y1 = w->attrib.y;
+ rect.extents.x2 = w->attrib.x + w->width;
+ rect.extents.y2 = w->attrib.y + w->height;
+
+ XUnionRegion (&rect, w->region, w->region);
+
+ w->damage = XDamageCreate (d->display, id,
+ XDamageReportRawRectangles);
+
+ /* need to check for DisplayModal state on all windows */
+ w->state = getWindowState (d, w->id);
+
+ updateWindowClassHints (w);
+ }
+ else
+ {
+ w->damage = None;
+ w->attrib.map_state = IsUnmapped;
+ }
+
+ w->invisible = TRUE;
+
+ w->wmType = getWindowType (d, w->id);
+ w->protocols = getProtocols (d, w->id);
+
+ if (!w->attrib.override_redirect)
+ {
+ updateNormalHints (w);
+ updateWindowStruts (w);
+ updateWmHints (w);
+ updateTransientHint (w);
+
+ w->clientLeader = getClientLeader (w);
+ if (!w->clientLeader)
+ w->startupId = getStartupId (w);
+
+ recalcWindowType (w);
+
+ getMwmHints (d, w->id, &w->mwmFunc, &w->mwmDecor);
+
+ if (!(w->type & (CompWindowTypeDesktopMask | CompWindowTypeDockMask)))
+ {
+ w->desktop = getWindowProp (d, w->id, d->winDesktopAtom,
+ w->desktop);
+ if (w->desktop != 0xffffffff)
+ {
+ if (w->desktop >= screen->nDesktop)
+ w->desktop = screen->currentDesktop;
+ }
+ }
+ }
+ else
+ {
+ recalcWindowType (w);
+ }
+
+ if (w->type & CompWindowTypeDesktopMask)
+ w->paint.opacity = OPAQUE;
+ else
+ w->paint.opacity = getWindowProp32 (d, w->id,
+ d->winOpacityAtom, OPAQUE);
+
+ w->paint.brightness = getWindowProp32 (d, w->id,
+ d->winBrightnessAtom, BRIGHT);
+
+ if (!screen->canDoSaturated)
+ w->paint.saturation = COLOR;
+ else
+ w->paint.saturation = getWindowProp32 (d, w->id,
+ d->winSaturationAtom, COLOR);
+
+ if (w->attrib.map_state == IsViewable)
+ {
+ w->placed = TRUE;
+
+ if (!w->attrib.override_redirect)
+ {
+ w->managed = TRUE;
+
+ if (getWmState (d, w->id) == IconicState)
+ {
+ if (w->state & CompWindowStateShadedMask)
+ w->shaded = TRUE;
+ else
+ w->minimized = TRUE;
+ }
+ else
+ {
+ if (w->wmType & (CompWindowTypeDockMask |
+ CompWindowTypeDesktopMask))
+ {
+ setDesktopForWindow (w, 0xffffffff);
+ }
+ else
+ {
+ if (w->desktop != 0xffffffff)
+ w->desktop = screen->currentDesktop;
+
+ setWindowProp (d, w->id, d->winDesktopAtom, w->desktop);
+ }
+ }
+ }
+
+ w->attrib.map_state = IsUnmapped;
+ w->pendingMaps++;
+
+ mapWindow (w);
+
+ updateWindowAttributes (w, CompStackingUpdateModeInitialMap);
+
+ if (w->minimized || w->inShowDesktopMode || w->hidden || w->shaded)
+ {
+ w->state |= CompWindowStateHiddenMask;
+
+ w->pendingUnmaps++;
+
+ XUnmapWindow (d->display, w->id);
+
+ setWindowState (d, w->state, w->id);
+ }
+ }
+ else if (!w->attrib.override_redirect)
+ {
+ if (getWmState (d, w->id) == IconicState)
+ {
+ w->managed = TRUE;
+ w->placed = TRUE;
+
+ if (w->state & CompWindowStateHiddenMask)
+ {
+ if (w->state & CompWindowStateShadedMask)
+ w->shaded = TRUE;
+ else
+ w->minimized = TRUE;
+ }
+ }
+ }
+
+ /* TODO: bailout properly when objectInitPlugins fails */
+ assert (objectInitPlugins (&w->base));
+
+ (*core.objectAdd) (&screen->base, &w->base);
+
+ recalcWindowActions (w);
+ updateIconGeometry (w);
+
+ if (w->shaded)
+ resizeWindow (w,
+ w->attrib.x, w->attrib.y,
+ w->attrib.width, ++w->attrib.height - 1,
+ w->attrib.border_width);
+}
+
+void
+removeWindow (CompWindow *w)
+{
+ unhookWindowFromScreen (w->screen, w);
+
+ if (!w->destroyed)
+ {
+ CompDisplay *d = w->screen->display;
+
+ /* restore saved geometry and map if hidden */
+ if (!w->attrib.override_redirect)
+ {
+ if (w->saveMask)
+ XConfigureWindow (d->display, w->id, w->saveMask, &w->saveWc);
+
+ if (!w->hidden)
+ {
+ if (w->state & CompWindowStateHiddenMask)
+ XMapWindow (d->display, w->id);
+ }
+ }
+
+ if (w->damage)
+ XDamageDestroy (d->display, w->damage);
+
+ if (d->shapeExtension)
+ XShapeSelectInput (d->display, w->id, NoEventMask);
+
+ XSelectInput (d->display, w->id, NoEventMask);
+
+ XUngrabButton (d->display, AnyButton, AnyModifier, w->id);
+ }
+
+ if (w->attrib.map_state == IsViewable && w->damaged)
+ {
+ if (w->type == CompWindowTypeDesktopMask)
+ w->screen->desktopWindowCount--;
+
+ if (w->destroyed && w->struts)
+ updateWorkareaForScreen (w->screen);
+ }
+
+ if (w->destroyed)
+ updateClientListForScreen (w->screen);
+
+ if (!w->redirected)
+ {
+ w->screen->overlayWindowCount--;
+
+ if (w->screen->overlayWindowCount < 1)
+ showOutputWindow (w->screen);
+ }
+
+ (*core.objectRemove) (&w->screen->base, &w->base);
+
+ objectFiniPlugins (&w->base);
+
+ freeWindow (w);
+}
+
+void
+destroyWindow (CompWindow *w)
+{
+ w->id = 1;
+ w->mapNum = 0;
+
+ w->destroyRefCnt--;
+ if (w->destroyRefCnt)
+ return;
+
+ if (!w->destroyed)
+ {
+ w->destroyed = TRUE;
+ w->screen->pendingDestroys++;
+ }
+}
+
+void
+sendConfigureNotify (CompWindow *w)
+{
+ XConfigureEvent xev;
+
+ xev.type = ConfigureNotify;
+ xev.event = w->id;
+ xev.window = w->id;
+
+ /* normally we should never send configure notify events to override
+ redirect windows but if they support the _NET_WM_SYNC_REQUEST
+ protocol we need to do this when the window is mapped. however the
+ only way we can make sure that the attributes we send are correct
+ and is to grab the server. */
+ if (w->attrib.override_redirect)
+ {
+ XWindowAttributes attrib;
+
+ XGrabServer (w->screen->display->display);
+
+ if (XGetWindowAttributes (w->screen->display->display, w->id, &attrib))
+ {
+ xev.x = attrib.x;
+ xev.y = attrib.y;
+ xev.width = attrib.width;
+ xev.height = attrib.height;
+ xev.border_width = attrib.border_width;
+
+ xev.above = (w->prev) ? w->prev->id : None;
+ xev.override_redirect = TRUE;
+
+ XSendEvent (w->screen->display->display, w->id, FALSE,
+ StructureNotifyMask, (XEvent *) &xev);
+ }
+
+ XUngrabServer (w->screen->display->display);
+ }
+ else
+ {
+ xev.x = w->serverX;
+ xev.y = w->serverY;
+ xev.width = w->serverWidth;
+ xev.height = w->serverHeight;
+ xev.border_width = w->serverBorderWidth;
+
+ xev.above = (w->prev) ? w->prev->id : None;
+ xev.override_redirect = w->attrib.override_redirect;
+
+ XSendEvent (w->screen->display->display, w->id, FALSE,
+ StructureNotifyMask, (XEvent *) &xev);
+ }
+}
+
+void
+mapWindow (CompWindow *w)
+{
+ if (w->attrib.map_state == IsViewable)
+ return;
+
+ if (w->pendingMaps > 0)
+ w->pendingMaps--;
+
+ w->mapNum = w->screen->mapNum++;
+
+ if (w->struts)
+ updateWorkareaForScreen (w->screen);
+
+ if (w->attrib.class == InputOnly)
+ return;
+
+ w->unmapRefCnt = 1;
+
+ w->attrib.map_state = IsViewable;
+
+ if (!w->attrib.override_redirect)
+ setWmState (w->screen->display, NormalState, w->id);
+
+ w->invisible = TRUE;
+ w->damaged = FALSE;
+ w->alive = TRUE;
+ w->bindFailed = FALSE;
+
+ w->lastPong = w->screen->display->lastPing;
+
+ updateWindowRegion (w);
+ updateWindowSize (w);
+
+ if (w->frame)
+ XMapWindow (w->screen->display->display, w->frame);
+
+ updateClientListForScreen (w->screen);
+
+ if (w->type & CompWindowTypeDesktopMask)
+ w->screen->desktopWindowCount++;
+
+ if (w->protocols & CompWindowProtocolSyncRequestMask)
+ {
+ sendSyncRequest (w);
+ sendConfigureNotify (w);
+ }
+
+ if (!w->attrib.override_redirect)
+ {
+ /* been shaded */
+ if (!w->height)
+ resizeWindow (w,
+ w->attrib.x, w->attrib.y,
+ w->attrib.width, ++w->attrib.height - 1,
+ w->attrib.border_width);
+ }
+}
+
+void
+unmapWindow (CompWindow *w)
+{
+ if (w->mapNum)
+ {
+ if (w->frame && !w->shaded)
+ XUnmapWindow (w->screen->display->display, w->frame);
+
+ w->mapNum = 0;
+ }
+
+ w->unmapRefCnt--;
+ if (w->unmapRefCnt > 0)
+ return;
+
+ if (w->struts)
+ updateWorkareaForScreen (w->screen);
+
+ if (w->attrib.map_state != IsViewable)
+ return;
+
+ if (w->type == CompWindowTypeDesktopMask)
+ w->screen->desktopWindowCount--;
+
+ addWindowDamage (w);
+
+ w->attrib.map_state = IsUnmapped;
+
+ w->invisible = TRUE;
+
+ releaseWindow (w);
+
+ if (w->shaded && w->height)
+ resizeWindow (w,
+ w->attrib.x, w->attrib.y,
+ w->attrib.width, ++w->attrib.height - 1,
+ w->attrib.border_width);
+
+ updateClientListForScreen (w->screen);
+
+ if (!w->redirected)
+ redirectWindow (w);
+}
+
+static int
+restackWindow (CompWindow *w,
+ Window aboveId)
+{
+ if (w->prev)
+ {
+ if (aboveId && aboveId == w->prev->id)
+ return 0;
+ }
+ else if (aboveId == None && !w->next)
+ return 0;
+
+ unhookWindowFromScreen (w->screen, w);
+ insertWindowIntoScreen (w->screen, w, aboveId);
+
+ updateClientListForScreen (w->screen);
+
+ return 1;
+}
+
+Bool
+resizeWindow (CompWindow *w,
+ int x,
+ int y,
+ int width,
+ int height,
+ int borderWidth)
+{
+ if (w->attrib.width != width ||
+ w->attrib.height != height ||
+ w->attrib.border_width != borderWidth)
+ {
+ unsigned int pw, ph, actualWidth, actualHeight, ui;
+ int dx, dy, dwidth, dheight;
+ Pixmap pixmap = None;
+ Window root;
+ Status result;
+ int i;
+
+ pw = width + borderWidth * 2;
+ ph = height + borderWidth * 2;
+
+ if (w->mapNum && w->redirected)
+ {
+ pixmap = XCompositeNameWindowPixmap (w->screen->display->display,
+ w->id);
+ result = XGetGeometry (w->screen->display->display, pixmap, &root,
+ &i, &i, &actualWidth, &actualHeight,
+ &ui, &ui);
+
+ if (!result || actualWidth != pw || actualHeight != ph)
+ {
+ XFreePixmap (w->screen->display->display, pixmap);
+
+ return FALSE;
+ }
+ }
+ else if (w->shaded)
+ {
+ ph = 0;
+ }
+
+ addWindowDamage (w);
+
+ dx = x - w->attrib.x;
+ dy = y - w->attrib.y;
+ dwidth = width - w->attrib.width;
+ dheight = height - w->attrib.height;
+
+ w->attrib.x = x;
+ w->attrib.y = y;
+ w->attrib.width = width;
+ w->attrib.height = height;
+ w->attrib.border_width = borderWidth;
+
+ w->width = pw;
+ w->height = ph;
+
+ releaseWindow (w);
+
+ w->pixmap = pixmap;
+
+ if (w->mapNum)
+ updateWindowRegion (w);
+
+ (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+
+ addWindowDamage (w);
+
+ w->invisible = WINDOW_INVISIBLE (w);
+
+ updateFrameWindow (w);
+ }
+ else if (w->attrib.x != x || w->attrib.y != y)
+ {
+ int dx, dy;
+
+ dx = x - w->attrib.x;
+ dy = y - w->attrib.y;
+
+ moveWindow (w, dx, dy, TRUE, TRUE);
+
+ if (w->frame)
+ XMoveWindow (w->screen->display->display, w->frame,
+ w->attrib.x - w->input.left,
+ w->attrib.y - w->input.top);
+ }
+
+ return TRUE;
+}
+
+static void
+syncValueIncrement (XSyncValue *value)
+{
+ XSyncValue one;
+ int overflow;
+
+ XSyncIntToValue (&one, 1);
+ XSyncValueAdd (value, *value, one, &overflow);
+}
+
+static Bool
+initializeSyncCounter (CompWindow *w)
+{
+ XSyncAlarmAttributes values;
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ if (w->syncCounter)
+ return w->syncAlarm != None;
+
+ if (!(w->protocols & CompWindowProtocolSyncRequestMask))
+ return FALSE;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmSyncRequestCounterAtom,
+ 0L, 1L, FALSE, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && n && data)
+ {
+ unsigned long *counter = (unsigned long *) data;
+
+ w->syncCounter = *counter;
+
+ XFree (data);
+
+ XSyncIntsToValue (&w->syncValue, (unsigned int) rand (), 0);
+ XSyncSetCounter (w->screen->display->display,
+ w->syncCounter,
+ w->syncValue);
+
+ syncValueIncrement (&w->syncValue);
+
+ values.events = TRUE;
+
+ values.trigger.counter = w->syncCounter;
+ values.trigger.wait_value = w->syncValue;
+
+ values.trigger.value_type = XSyncAbsolute;
+ values.trigger.test_type = XSyncPositiveComparison;
+
+ XSyncIntToValue (&values.delta, 1);
+
+ values.events = TRUE;
+
+ compCheckForError (w->screen->display->display);
+
+ /* Note that by default, the alarm increments the trigger value
+ * when it fires until the condition (counter.value < trigger.value)
+ * is FALSE again.
+ */
+ w->syncAlarm = XSyncCreateAlarm (w->screen->display->display,
+ XSyncCACounter |
+ XSyncCAValue |
+ XSyncCAValueType |
+ XSyncCATestType |
+ XSyncCADelta |
+ XSyncCAEvents,
+ &values);
+
+ if (!compCheckForError (w->screen->display->display))
+ return TRUE;
+
+ XSyncDestroyAlarm (w->screen->display->display, w->syncAlarm);
+ w->syncAlarm = None;
+ }
+ else if (result == Success && data)
+ {
+ XFree (data);
+ }
+
+ return FALSE;
+}
+
+static Bool
+syncWaitTimeout (void *closure)
+{
+ CompWindow *w = closure;
+
+ w->syncWaitHandle = 0;
+ handleSyncAlarm (w);
+
+ return FALSE;
+}
+
+void
+sendSyncRequest (CompWindow *w)
+{
+ XClientMessageEvent xev;
+
+ if (w->syncWait)
+ return;
+
+ if (!initializeSyncCounter (w))
+ return;
+
+ xev.type = ClientMessage;
+ xev.window = w->id;
+ xev.message_type = w->screen->display->wmProtocolsAtom;
+ xev.format = 32;
+ xev.data.l[0] = w->screen->display->wmSyncRequestAtom;
+ xev.data.l[1] = CurrentTime;
+ xev.data.l[2] = XSyncValueLow32 (w->syncValue);
+ xev.data.l[3] = XSyncValueHigh32 (w->syncValue);
+ xev.data.l[4] = 0;
+
+ syncValueIncrement (&w->syncValue);
+
+ XSendEvent (w->screen->display->display, w->id, FALSE, 0, (XEvent *) &xev);
+
+ w->syncWait = TRUE;
+ w->syncX = w->serverX;
+ w->syncY = w->serverY;
+ w->syncWidth = w->serverWidth;
+ w->syncHeight = w->serverHeight;
+ w->syncBorderWidth = w->serverBorderWidth;
+
+ if (!w->syncWaitHandle)
+ w->syncWaitHandle = compAddTimeout (1000, 1200, syncWaitTimeout, w);
+}
+
+void
+configureWindow (CompWindow *w,
+ XConfigureEvent *ce)
+{
+ if (w->syncWait)
+ {
+ w->syncX = ce->x;
+ w->syncY = ce->y;
+ w->syncWidth = ce->width;
+ w->syncHeight = ce->height;
+ w->syncBorderWidth = ce->border_width;
+ }
+ else
+ {
+ if (ce->override_redirect)
+ {
+ w->serverX = ce->x;
+ w->serverY = ce->y;
+ w->serverWidth = ce->width;
+ w->serverHeight = ce->height;
+ w->serverBorderWidth = ce->border_width;
+ }
+
+ resizeWindow (w, ce->x, ce->y, ce->width, ce->height,
+ ce->border_width);
+ }
+
+ w->attrib.override_redirect = ce->override_redirect;
+
+ if (restackWindow (w, ce->above))
+ addWindowDamage (w);
+}
+
+void
+circulateWindow (CompWindow *w,
+ XCirculateEvent *ce)
+{
+ Window newAboveId;
+
+ if (ce->place == PlaceOnTop)
+ newAboveId = getTopWindow (w->screen);
+ else
+ newAboveId = 0;
+
+ if (restackWindow (w, newAboveId))
+ addWindowDamage (w);
+}
+
+void
+moveWindow (CompWindow *w,
+ int dx,
+ int dy,
+ Bool damage,
+ Bool immediate)
+{
+ if (dx || dy)
+ {
+ if (damage)
+ addWindowDamage (w);
+
+ w->attrib.x += dx;
+ w->attrib.y += dy;
+
+ XOffsetRegion (w->region, dx, dy);
+
+ setWindowMatrix (w);
+
+ w->invisible = WINDOW_INVISIBLE (w);
+
+ (*w->screen->windowMoveNotify) (w, dx, dy, immediate);
+
+ if (damage)
+ addWindowDamage (w);
+ }
+}
+
+void
+syncWindowPosition (CompWindow *w)
+{
+ w->serverX = w->attrib.x;
+ w->serverY = w->attrib.y;
+
+ XMoveWindow (w->screen->display->display, w->id, w->attrib.x, w->attrib.y);
+
+ if (w->frame)
+ XMoveWindow (w->screen->display->display, w->frame,
+ w->serverX - w->input.left,
+ w->serverY - w->input.top);
+}
+
+Bool
+focusWindow (CompWindow *w)
+{
+ if (w->attrib.override_redirect)
+ return FALSE;
+
+ if (!w->managed)
+ return FALSE;
+
+ if (!onCurrentDesktop (w))
+ return FALSE;
+
+ if (!w->shaded && (w->state & CompWindowStateHiddenMask))
+ return FALSE;
+
+ if (w->attrib.x + w->width <= 0 ||
+ w->attrib.y + w->height <= 0 ||
+ w->attrib.x >= w->screen->width ||
+ w->attrib.y >= w->screen->height)
+ return FALSE;
+
+ return TRUE;
+}
+
+Bool
+placeWindow (CompWindow *w,
+ int x,
+ int y,
+ int *newX,
+ int *newY)
+{
+ return FALSE;
+}
+
+void
+validateWindowResizeRequest (CompWindow *w,
+ unsigned int *mask,
+ XWindowChanges *xwc,
+ unsigned int source)
+{
+ CompScreen *s = w->screen;
+
+ if (w->type & (CompWindowTypeDockMask |
+ CompWindowTypeFullscreenMask |
+ CompWindowTypeUnknownMask))
+ return;
+
+ if (*mask & CWY)
+ {
+ int min, max;
+
+ min = s->workArea.y + w->input.top;
+ max = s->workArea.y + s->workArea.height;
+
+ min -= s->y * s->height;
+ max += (s->vsize - s->y - 1) * s->height;
+
+ if (xwc->y < min)
+ xwc->y = min;
+ else if (xwc->y > max)
+ xwc->y = max;
+ }
+
+ if (*mask & CWX)
+ {
+ int min, max;
+
+ min = s->workArea.x + w->input.left;
+ max = s->workArea.x + s->workArea.width;
+
+ min -= s->x * s->width;
+ max += (s->hsize - s->x - 1) * s->width;
+
+ if (xwc->x < min)
+ xwc->x = min;
+ else if (xwc->x > max)
+ xwc->x = max;
+ }
+}
+
+void
+windowResizeNotify (CompWindow *w,
+ int dx,
+ int dy,
+ int dwidth,
+ int dheight)
+{
+}
+
+void
+windowMoveNotify (CompWindow *w,
+ int dx,
+ int dy,
+ Bool immediate)
+{
+}
+
+void
+windowGrabNotify (CompWindow *w,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask)
+{
+ w->grabbed = TRUE;
+}
+
+void
+windowUngrabNotify (CompWindow *w)
+{
+ w->grabbed = FALSE;
+}
+
+void
+windowStateChangeNotify (CompWindow *w,
+ unsigned int lastState)
+{
+}
+
+static Bool
+isGroupTransient (CompWindow *w,
+ Window clientLeader)
+{
+ if (!clientLeader)
+ return FALSE;
+
+ if (w->transientFor == None || w->transientFor == w->screen->root)
+ {
+ if (w->type & (CompWindowTypeUtilMask |
+ CompWindowTypeToolbarMask |
+ CompWindowTypeMenuMask |
+ CompWindowTypeDialogMask |
+ CompWindowTypeModalDialogMask))
+ {
+ if (w->clientLeader == clientLeader)
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static CompWindow *
+getModalTransient (CompWindow *window)
+{
+ CompWindow *w, *modalTransient;
+
+ modalTransient = window;
+
+ for (w = window->screen->reverseWindows; w; w = w->prev)
+ {
+ if (w == modalTransient || w->mapNum == 0)
+ continue;
+
+ if (w->transientFor == modalTransient->id)
+ {
+ if (w->state & CompWindowStateModalMask)
+ {
+ modalTransient = w;
+ w = window->screen->reverseWindows;
+ }
+ }
+ }
+
+ if (modalTransient == window)
+ {
+ /* don't look for group transients with modal state if current window
+ has modal state */
+ if (window->state & CompWindowStateModalMask)
+ return NULL;
+
+ for (w = window->screen->reverseWindows; w; w = w->prev)
+ {
+ if (w == modalTransient || w->mapNum == 0)
+ continue;
+
+ if (isAncestorTo (modalTransient, w))
+ continue;
+
+ if (isGroupTransient (w, modalTransient->clientLeader))
+ {
+ if (w->state & CompWindowStateModalMask)
+ {
+ modalTransient = w;
+ w = getModalTransient (w);
+ if (w)
+ modalTransient = w;
+
+ break;
+ }
+ }
+ }
+ }
+
+ if (modalTransient == window)
+ modalTransient = NULL;
+
+ return modalTransient;
+}
+
+void
+moveInputFocusToWindow (CompWindow *w)
+{
+ CompScreen *s = w->screen;
+ CompDisplay *d = s->display;
+ CompWindow *modalTransient;
+
+ modalTransient = getModalTransient (w);
+ if (modalTransient)
+ w = modalTransient;
+
+ if (w->state & CompWindowStateHiddenMask)
+ {
+ XSetInputFocus (d->display, w->frame, RevertToPointerRoot, CurrentTime);
+ XChangeProperty (d->display, s->root, d->winActiveAtom,
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &w->id, 1);
+ }
+ else
+ {
+ Bool setFocus = FALSE;
+
+ if (w->inputHint)
+ {
+ XSetInputFocus (d->display, w->id, RevertToPointerRoot,
+ CurrentTime);
+ setFocus = TRUE;
+ }
+
+ if (w->protocols & CompWindowProtocolTakeFocusMask)
+ {
+ XEvent ev;
+
+ ev.type = ClientMessage;
+ ev.xclient.window = w->id;
+ ev.xclient.message_type = d->wmProtocolsAtom;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = d->wmTakeFocusAtom;
+ ev.xclient.data.l[1] =
+ getCurrentTimeFromDisplay (d);
+ ev.xclient.data.l[2] = 0;
+ ev.xclient.data.l[3] = 0;
+ ev.xclient.data.l[4] = 0;
+
+ XSendEvent (d->display, w->id, FALSE, NoEventMask, &ev);
+
+ setFocus = TRUE;
+ }
+
+ if (!setFocus && !modalTransient)
+ {
+ CompWindow *ancestor;
+
+ /* move input to closest ancestor */
+ for (ancestor = s->windows; ancestor; ancestor = ancestor->next)
+ {
+ if (isAncestorTo (w, ancestor))
+ {
+ moveInputFocusToWindow (ancestor);
+ break;
+ }
+ }
+ }
+ }
+}
+
+static Bool
+stackLayerCheck (CompWindow *w,
+ Window clientLeader,
+ CompWindow *below)
+{
+ if (isAncestorTo (w, below))
+ return TRUE;
+
+ if (isAncestorTo (below, w))
+ return FALSE;
+
+ if (clientLeader && below->clientLeader == clientLeader)
+ if (isGroupTransient (below, clientLeader))
+ return FALSE;
+
+ if (w->state & CompWindowStateAboveMask)
+ {
+ return TRUE;
+ }
+ else if (w->state & CompWindowStateBelowMask)
+ {
+ if (below->state & CompWindowStateBelowMask)
+ return TRUE;
+ }
+ else if (!(below->state & CompWindowStateAboveMask))
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+avoidStackingRelativeTo (CompWindow *w)
+{
+ if (w->attrib.override_redirect)
+ return TRUE;
+
+ if (!w->shaded && !w->pendingMaps)
+ {
+ if (w->attrib.map_state != IsViewable || w->mapNum == 0)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/* goes through the stack, top-down until we find a window we should
+ stack above, normal windows can be stacked above fullscreen windows
+ (and fullscreen windows over others in their layer) if aboveFs
+ is TRUE. */
+static CompWindow *
+findSiblingBelow (CompWindow *w,
+ Bool aboveFs)
+{
+ CompWindow *below;
+ Window clientLeader = w->clientLeader;
+ unsigned int type = w->type;
+ unsigned int belowMask;
+
+ if (aboveFs)
+ belowMask = CompWindowTypeDockMask;
+ else
+ belowMask = CompWindowTypeDockMask | CompWindowTypeFullscreenMask;
+
+ /* normal stacking of fullscreen windows with below state */
+ if ((type & CompWindowTypeFullscreenMask) &&
+ (w->state & CompWindowStateBelowMask))
+ type = CompWindowTypeNormalMask;
+
+ if (w->transientFor || isGroupTransient (w, clientLeader))
+ clientLeader = None;
+
+ for (below = w->screen->reverseWindows; below; below = below->prev)
+ {
+ if (below == w || avoidStackingRelativeTo (below))
+ continue;
+
+ /* always above desktop windows */
+ if (below->type & CompWindowTypeDesktopMask)
+ return below;
+
+ switch (type) {
+ case CompWindowTypeDesktopMask:
+ /* desktop window layer */
+ break;
+ case CompWindowTypeFullscreenMask:
+ if (aboveFs)
+ return below;
+ /* otherwise fall-through */
+ case CompWindowTypeDockMask:
+ /* fullscreen and dock layer */
+ if (below->type & (CompWindowTypeFullscreenMask |
+ CompWindowTypeDockMask))
+ {
+ if (stackLayerCheck (w, clientLeader, below))
+ return below;
+ }
+ else
+ {
+ return below;
+ }
+ break;
+ default:
+ /* fullscreen and normal layer */
+ if (!(below->type & belowMask))
+ {
+ if (stackLayerCheck (w, clientLeader, below))
+ return below;
+ }
+ break;
+ }
+ }
+
+ return NULL;
+}
+
+/* goes through the stack, top-down and returns the lowest window we
+ can stack above. */
+static CompWindow *
+findLowestSiblingBelow (CompWindow *w)
+{
+ CompWindow *below, *lowest = w->screen->reverseWindows;
+ Window clientLeader = w->clientLeader;
+ unsigned int type = w->type;
+
+ /* normal stacking fullscreen windows with below state */
+ if ((type & CompWindowTypeFullscreenMask) &&
+ (w->state & CompWindowStateBelowMask))
+ type = CompWindowTypeNormalMask;
+
+ if (w->transientFor || isGroupTransient (w, clientLeader))
+ clientLeader = None;
+
+ for (below = w->screen->reverseWindows; below; below = below->prev)
+ {
+ if (below == w || avoidStackingRelativeTo (below))
+ continue;
+
+ /* always above desktop windows */
+ if (below->type & CompWindowTypeDesktopMask)
+ return below;
+
+ switch (type) {
+ case CompWindowTypeDesktopMask:
+ /* desktop window layer - desktop windows always should be
+ stacked at the bottom; no other window should be below them */
+ return NULL;
+ break;
+ case CompWindowTypeFullscreenMask:
+ case CompWindowTypeDockMask:
+ /* fullscreen and dock layer */
+ if (below->type & (CompWindowTypeFullscreenMask |
+ CompWindowTypeDockMask))
+ {
+ if (!stackLayerCheck (below, clientLeader, w))
+ return lowest;
+ }
+ else
+ {
+ return lowest;
+ }
+ break;
+ default:
+ /* fullscreen and normal layer */
+ if (!(below->type & CompWindowTypeDockMask))
+ {
+ if (!stackLayerCheck (below, clientLeader, w))
+ return lowest;
+ }
+ break;
+ }
+
+ lowest = below;
+ }
+
+ return lowest;
+}
+
+static Bool
+validSiblingBelow (CompWindow *w,
+ CompWindow *sibling)
+{
+ Window clientLeader = w->clientLeader;
+ unsigned int type = w->type;
+
+ /* normal stacking fullscreen windows with below state */
+ if ((type & CompWindowTypeFullscreenMask) &&
+ (w->state & CompWindowStateBelowMask))
+ type = CompWindowTypeNormalMask;
+
+ if (w->transientFor || isGroupTransient (w, clientLeader))
+ clientLeader = None;
+
+ if (sibling == w || avoidStackingRelativeTo (sibling))
+ return FALSE;
+
+ /* always above desktop windows */
+ if (sibling->type & CompWindowTypeDesktopMask)
+ return TRUE;
+
+ switch (type) {
+ case CompWindowTypeDesktopMask:
+ /* desktop window layer */
+ break;
+ case CompWindowTypeFullscreenMask:
+ case CompWindowTypeDockMask:
+ /* fullscreen and dock layer */
+ if (sibling->type & (CompWindowTypeFullscreenMask |
+ CompWindowTypeDockMask))
+ {
+ if (stackLayerCheck (w, clientLeader, sibling))
+ return TRUE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ break;
+ default:
+ /* fullscreen and normal layer */
+ if (!(sibling->type & CompWindowTypeDockMask))
+ {
+ if (stackLayerCheck (w, clientLeader, sibling))
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+static void
+saveWindowGeometry (CompWindow *w,
+ int mask)
+{
+ int m = mask & ~w->saveMask;
+
+ /* only save geometry if window has been placed */
+ if (!w->placed)
+ return;
+
+ if (m & CWX)
+ w->saveWc.x = w->serverX;
+
+ if (m & CWY)
+ w->saveWc.y = w->serverY;
+
+ if (m & CWWidth)
+ w->saveWc.width = w->serverWidth;
+
+ if (m & CWHeight)
+ w->saveWc.height = w->serverHeight;
+
+ if (m & CWBorderWidth)
+ w->saveWc.border_width = w->serverBorderWidth;
+
+ w->saveMask |= m;
+}
+
+static int
+restoreWindowGeometry (CompWindow *w,
+ XWindowChanges *xwc,
+ int mask)
+{
+ int m = mask & w->saveMask;
+
+ if (m & CWX)
+ xwc->x = w->saveWc.x;
+
+ if (m & CWY)
+ xwc->y = w->saveWc.y;
+
+ if (m & CWWidth)
+ {
+ xwc->width = w->saveWc.width;
+
+ /* This is not perfect but it works OK for now. If the saved width is
+ the same as the current width then make it a little be smaller so
+ the user can see that it changed and it also makes sure that
+ windowResizeNotify is called and plugins are notified. */
+ if (xwc->width == w->serverWidth)
+ {
+ xwc->width -= 10;
+ if (m & CWX)
+ xwc->x += 5;
+ }
+ }
+
+ if (m & CWHeight)
+ {
+ xwc->height = w->saveWc.height;
+
+ /* As above, if the saved height is the same as the current height
+ then make it a little be smaller. */
+ if (xwc->height == w->serverHeight)
+ {
+ xwc->height -= 10;
+ if (m & CWY)
+ xwc->y += 5;
+ }
+ }
+
+ if (m & CWBorderWidth)
+ xwc->border_width = w->saveWc.border_width;
+
+ w->saveMask &= ~mask;
+
+ return m;
+}
+
+static void
+reconfigureXWindow (CompWindow *w,
+ unsigned int valueMask,
+ XWindowChanges *xwc)
+{
+ if (valueMask & CWX)
+ w->serverX = xwc->x;
+
+ if (valueMask & CWY)
+ w->serverY = xwc->y;
+
+ if (valueMask & CWWidth)
+ w->serverWidth = xwc->width;
+
+ if (valueMask & CWHeight)
+ w->serverHeight = xwc->height;
+
+ if (valueMask & CWBorderWidth)
+ w->serverBorderWidth = xwc->border_width;
+
+ XConfigureWindow (w->screen->display->display, w->id, valueMask, xwc);
+
+ if (w->frame && (valueMask & (CWSibling | CWStackMode)))
+ XConfigureWindow (w->screen->display->display, w->frame,
+ valueMask & (CWSibling | CWStackMode), xwc);
+}
+
+static Bool
+stackTransients (CompWindow *w,
+ CompWindow *avoid,
+ XWindowChanges *xwc)
+{
+ CompWindow *t;
+ Window clientLeader = w->clientLeader;
+
+ if (w->transientFor || isGroupTransient (w, clientLeader))
+ clientLeader = None;
+
+ for (t = w->screen->reverseWindows; t; t = t->prev)
+ {
+ if (t == w || t == avoid)
+ continue;
+
+ if (t->transientFor == w->id || isGroupTransient (t, clientLeader))
+ {
+ if (w->type & CompWindowTypeDockMask)
+ if (!(t->type & CompWindowTypeDockMask))
+ return FALSE;
+
+ if (!stackTransients (t, avoid, xwc))
+ return FALSE;
+
+ if (xwc->sibling == t->id)
+ return FALSE;
+
+ if (t->mapNum || t->pendingMaps)
+ reconfigureXWindow (t, CWSibling | CWStackMode, xwc);
+ }
+ }
+
+ return TRUE;
+}
+
+static void
+stackAncestors (CompWindow *w,
+ XWindowChanges *xwc)
+{
+ if (w->transientFor && xwc->sibling != w->transientFor)
+ {
+ CompWindow *ancestor;
+
+ ancestor = findWindowAtScreen (w->screen, w->transientFor);
+ if (ancestor)
+ {
+ if (!stackTransients (ancestor, w, xwc))
+ return;
+
+ if (ancestor->type & CompWindowTypeDesktopMask)
+ return;
+
+ if (ancestor->type & CompWindowTypeDockMask)
+ if (!(w->type & CompWindowTypeDockMask))
+ return;
+
+ if (ancestor->mapNum || ancestor->pendingMaps)
+ reconfigureXWindow (ancestor,
+ CWSibling | CWStackMode,
+ xwc);
+
+ stackAncestors (ancestor, xwc);
+ }
+ }
+ else if (isGroupTransient (w, w->clientLeader))
+ {
+ CompWindow *a;
+
+ for (a = w->screen->reverseWindows; a; a = a->prev)
+ {
+ if (a->clientLeader == w->clientLeader &&
+ a->transientFor == None &&
+ !isGroupTransient (a, w->clientLeader))
+ {
+ if (xwc->sibling == a->id)
+ break;
+
+ if (!stackTransients (a, w, xwc))
+ break;
+
+ if (a->type & CompWindowTypeDesktopMask)
+ continue;
+
+ if (a->type & CompWindowTypeDockMask)
+ if (!(w->type & CompWindowTypeDockMask))
+ break;
+
+ if (a->mapNum || a->pendingMaps)
+ reconfigureXWindow (a,
+ CWSibling | CWStackMode,
+ xwc);
+ }
+ }
+ }
+}
+
+void
+configureXWindow (CompWindow *w,
+ unsigned int valueMask,
+ XWindowChanges *xwc)
+{
+ if (w->managed && (valueMask & (CWSibling | CWStackMode)))
+ {
+ /* transient children above */
+ if (stackTransients (w, NULL, xwc))
+ {
+ reconfigureXWindow (w, valueMask, xwc);
+
+ /* ancestors, siblings and sibling transients below */
+ stackAncestors (w, xwc);
+ }
+ }
+ else
+ {
+ reconfigureXWindow (w, valueMask, xwc);
+ }
+}
+
+static int
+addWindowSizeChanges (CompWindow *w,
+ XWindowChanges *xwc,
+ int oldX,
+ int oldY,
+ int oldWidth,
+ int oldHeight,
+ int oldBorderWidth)
+{
+ XRectangle workArea;
+ int mask = 0;
+ int x, y;
+ int vx, vy;
+ int output;
+
+ viewportForGeometry (w->screen,
+ oldX,
+ oldY,
+ oldWidth,
+ oldHeight,
+ oldBorderWidth,
+ &vx, &vy);
+
+ x = (vx - w->screen->x) * w->screen->width;
+ y = (vy - w->screen->y) * w->screen->height;
+
+ output = outputDeviceForGeometry (w->screen,
+ oldX,
+ oldY,
+ oldWidth,
+ oldHeight,
+ oldBorderWidth);
+ getWorkareaForOutput (w->screen, output, &workArea);
+
+ if (w->type & CompWindowTypeFullscreenMask)
+ {
+ saveWindowGeometry (w, CWX | CWY | CWWidth | CWHeight | CWBorderWidth);
+
+ if (w->fullscreenMonitorsSet)
+ {
+ xwc->x = x + w->fullscreenMonitorRect.x;
+ xwc->y = y + w->fullscreenMonitorRect.y;
+ xwc->width = w->fullscreenMonitorRect.width;
+ xwc->height = w->fullscreenMonitorRect.height;
+ }
+ else
+ {
+ xwc->x = x + w->screen->outputDev[output].region.extents.x1;
+ xwc->y = y + w->screen->outputDev[output].region.extents.y1;
+ xwc->width = w->screen->outputDev[output].width;
+ xwc->height = w->screen->outputDev[output].height;
+ }
+
+ xwc->border_width = 0;
+
+ mask |= CWX | CWY | CWWidth | CWHeight | CWBorderWidth;
+ }
+ else
+ {
+ mask |= restoreWindowGeometry (w, xwc, CWBorderWidth);
+
+ if (w->state & CompWindowStateMaximizedVertMask)
+ {
+ saveWindowGeometry (w, CWY | CWHeight);
+
+ xwc->height = workArea.height - w->input.top -
+ w->input.bottom - oldBorderWidth * 2;
+
+ mask |= CWHeight;
+ }
+ else
+ {
+ mask |= restoreWindowGeometry (w, xwc, CWY | CWHeight);
+ }
+
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ {
+ saveWindowGeometry (w, CWX | CWWidth);
+
+ xwc->width = workArea.width - w->input.left -
+ w->input.right - oldBorderWidth * 2;
+
+ mask |= CWWidth;
+ }
+ else
+ {
+ mask |= restoreWindowGeometry (w, xwc, CWX | CWWidth);
+ }
+
+ /* constrain window width if smaller than minimum width */
+ if (!(mask & CWWidth) && oldWidth < w->sizeHints.min_width)
+ {
+ xwc->width = w->sizeHints.min_width;
+ mask |= CWWidth;
+ }
+
+ /* constrain window width if greater than maximum width */
+ if (!(mask & CWWidth) && oldWidth > w->sizeHints.max_width)
+ {
+ xwc->width = w->sizeHints.max_width;
+ mask |= CWWidth;
+ }
+
+ /* constrain window height if smaller than minimum height */
+ if (!(mask & CWHeight) && oldHeight < w->sizeHints.min_height)
+ {
+ xwc->height = w->sizeHints.min_height;
+ mask |= CWHeight;
+ }
+
+ /* constrain window height if greater than maximum height */
+ if (!(mask & CWHeight) && oldHeight > w->sizeHints.max_height)
+ {
+ xwc->height = w->sizeHints.max_height;
+ mask |= CWHeight;
+ }
+
+ if (mask & (CWWidth | CWHeight))
+ {
+ int width, height, max;
+
+ width = (mask & CWWidth) ? xwc->width : oldWidth;
+ height = (mask & CWHeight) ? xwc->height : oldHeight;
+
+ xwc->width = oldWidth;
+ xwc->height = oldHeight;
+
+ constrainNewWindowSize (w, width, height, &width, &height);
+
+ if (width != oldWidth)
+ {
+ mask |= CWWidth;
+ xwc->width = width;
+ }
+ else
+ mask &= ~CWWidth;
+
+ if (height != oldHeight)
+ {
+ mask |= CWHeight;
+ xwc->height = height;
+ }
+ else
+ mask &= ~CWHeight;
+
+ if (w->state & CompWindowStateMaximizedVertMask)
+ {
+ if (oldY < y + workArea.y + w->input.top)
+ {
+ xwc->y = y + workArea.y + w->input.top;
+ mask |= CWY;
+ }
+ else
+ {
+ height = xwc->height + oldBorderWidth * 2;
+
+ max = y + workArea.y + workArea.height;
+ if (oldY + oldHeight + w->input.bottom > max)
+ {
+ xwc->y = max - height - w->input.bottom;
+ mask |= CWY;
+ }
+ else if (oldY + height + w->input.bottom > max)
+ {
+ xwc->y = y + workArea.y +
+ (workArea.height - w->input.top - height -
+ w->input.bottom) / 2 + w->input.top;
+ mask |= CWY;
+ }
+ }
+ }
+
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ {
+ if (oldX < x + workArea.x + w->input.left)
+ {
+ xwc->x = x + workArea.x + w->input.left;
+ mask |= CWX;
+ }
+ else
+ {
+ width = xwc->width + oldBorderWidth * 2;
+
+ max = x + workArea.x + workArea.width;
+ if (oldX + oldWidth + w->input.right > max)
+ {
+ xwc->x = max - width - w->input.right;
+ mask |= CWX;
+ }
+ else if (oldX + width + w->input.right > max)
+ {
+ xwc->x = x + workArea.x +
+ (workArea.width - w->input.left - width -
+ w->input.right) / 2 + w->input.left;
+ mask |= CWX;
+ }
+ }
+ }
+ }
+ }
+
+ if ((mask & CWX) && (xwc->x == oldX))
+ mask &= ~CWX;
+
+ if ((mask & CWY) && (xwc->y == oldY))
+ mask &= ~CWY;
+
+ if ((mask & CWWidth) && (xwc->width == oldWidth))
+ mask &= ~CWWidth;
+
+ if ((mask & CWHeight) && (xwc->height == oldHeight))
+ mask &= ~CWHeight;
+
+ return mask;
+}
+
+unsigned int
+adjustConfigureRequestForGravity (CompWindow *w,
+ XWindowChanges *xwc,
+ unsigned int xwcm,
+ int gravity)
+{
+ int newX, newY;
+ unsigned int mask = 0;
+
+ newX = xwc->x;
+ newY = xwc->y;
+
+ if (xwcm & (CWX | CWWidth))
+ {
+ switch (gravity) {
+ case NorthWestGravity:
+ case WestGravity:
+ case SouthWestGravity:
+ if (xwcm & CWX)
+ newX += w->input.left;
+ break;
+
+ case NorthGravity:
+ case CenterGravity:
+ case SouthGravity:
+ if (!(xwcm & CWX))
+ newX += (w->serverWidth - xwc->width) / 2;
+ break;
+
+ case NorthEastGravity:
+ case EastGravity:
+ case SouthEastGravity:
+ if (xwcm & CWX)
+ newX -= w->input.right;
+ else
+ newX += w->serverWidth - xwc->width;
+ break;
+
+ case StaticGravity:
+ default:
+ break;
+ }
+ }
+
+ if (xwcm & (CWY | CWHeight))
+ {
+ switch (gravity) {
+ case NorthWestGravity:
+ case NorthGravity:
+ case NorthEastGravity:
+ if (xwcm & CWY)
+ newY += w->input.top;
+ break;
+
+ case WestGravity:
+ case CenterGravity:
+ case EastGravity:
+ if (!(xwcm & CWY))
+ newY += (w->serverHeight - xwc->height) / 2;
+ break;
+
+ case SouthWestGravity:
+ case SouthGravity:
+ case SouthEastGravity:
+ if (xwcm & CWY)
+ newY -= w->input.bottom;
+ else
+ newY += w->serverHeight - xwc->height;
+ break;
+
+ case StaticGravity:
+ default:
+ break;
+ }
+ }
+
+ if (newX != xwc->x)
+ {
+ xwc->x = newX;
+ mask |= CWX;
+ }
+
+ if (newY != xwc->y)
+ {
+ xwc->y = newY;
+ mask |= CWY;
+ }
+
+ return mask;
+}
+
+void
+moveResizeWindow (CompWindow *w,
+ XWindowChanges *xwc,
+ unsigned int xwcm,
+ int gravity,
+ unsigned int source)
+{
+ Bool placed = xwcm & (CWX | CWY);
+
+ xwcm &= (CWX | CWY | CWWidth | CWHeight | CWBorderWidth);
+
+ if (gravity == 0)
+ gravity = w->sizeHints.win_gravity;
+
+ if (!(xwcm & CWX))
+ xwc->x = w->serverX;
+ if (!(xwcm & CWY))
+ xwc->y = w->serverY;
+ if (!(xwcm & CWWidth))
+ xwc->width = w->serverWidth;
+ if (!(xwcm & CWHeight))
+ xwc->height = w->serverHeight;
+
+ /* when horizontally maximized only allow width changes added by
+ addWindowSizeChanges or constrainNewWindowState */
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ xwcm &= ~CWWidth;
+
+ /* when vertically maximized only allow height changes added by
+ addWindowSizeChanges or constrainNewWindowState */
+ if (w->state & CompWindowStateMaximizedVertMask)
+ xwcm &= ~CWHeight;
+
+ if (xwcm & (CWWidth | CWHeight))
+ {
+ int width, height;
+
+ if (constrainNewWindowSize (w,
+ xwc->width, xwc->height,
+ &width, &height))
+ {
+ if (width != xwc->width)
+ xwcm |= CWWidth;
+
+ if (height != xwc->height)
+ xwcm |= CWHeight;
+
+ xwc->width = width;
+ xwc->height = height;
+ }
+ }
+
+ xwcm |= adjustConfigureRequestForGravity (w, xwc, xwcm, gravity);
+
+ (*w->screen->validateWindowResizeRequest) (w, &xwcm, xwc, source);
+
+ xwcm |= addWindowSizeChanges (w, xwc,
+ xwc->x, xwc->y,
+ xwc->width, xwc->height,
+ xwc->border_width);
+
+ /* check if the new coordinates are useful and valid (different
+ to current size); if not, we have to clear them to make sure
+ we send a synthetic ConfigureNotify event if all coordinates
+ match the server coordinates */
+ if (xwc->x == w->serverX)
+ xwcm &= ~CWX;
+
+ if (xwc->y == w->serverY)
+ xwcm &= ~CWY;
+
+ if (xwc->width == w->serverWidth)
+ xwcm &= ~CWWidth;
+
+ if (xwc->height == w->serverHeight)
+ xwcm &= ~CWHeight;
+
+ if (xwc->border_width == w->serverBorderWidth)
+ xwcm &= ~CWBorderWidth;
+
+ /* update saved window coordinates - if CWX or CWY is set for fullscreen
+ or maximized windows after addWindowSizeChanges, it should be pretty
+ safe to assume that the saved coordinates should be updated too, e.g.
+ because the window was moved to another viewport by some client */
+ if ((xwcm & CWX) && (w->saveMask & CWX))
+ w->saveWc.x += (xwc->x - w->serverX);
+
+ if ((xwcm & CWY) && (w->saveMask & CWY))
+ w->saveWc.y += (xwc->y - w->serverY);
+
+ if (w->mapNum && (xwcm & (CWWidth | CWHeight)))
+ sendSyncRequest (w);
+
+ if (xwcm)
+ configureXWindow (w, xwcm, xwc);
+ else
+ {
+ /* we have to send a configure notify on ConfigureRequest events if
+ we decide not to do anything according to ICCCM 4.1.5 */
+ sendConfigureNotify (w);
+ }
+
+ if (placed)
+ w->placed = TRUE;
+}
+
+void
+updateWindowSize (CompWindow *w)
+{
+ XWindowChanges xwc;
+ int mask;
+
+ if (w->attrib.override_redirect || !w->managed)
+ return;
+
+ mask = addWindowSizeChanges (w, &xwc,
+ w->serverX, w->serverY,
+ w->serverWidth, w->serverHeight,
+ w->serverBorderWidth);
+ if (mask)
+ {
+ if (w->mapNum && (mask & (CWWidth | CWHeight)))
+ sendSyncRequest (w);
+
+ configureXWindow (w, mask, &xwc);
+ }
+}
+
+static int
+addWindowStackChanges (CompWindow *w,
+ XWindowChanges *xwc,
+ CompWindow *sibling)
+{
+ int mask = 0;
+
+ if (!sibling || sibling->id != w->id)
+ {
+ CompWindow *prev = w->prev;
+
+ /* the frame window is always our next sibling window in the stack, although
+ we're searching for the next 'real' sibling, so skip the frame window */
+ if (prev && prev->id == w->frame)
+ prev = prev->prev;
+
+ if (prev)
+ {
+ if (!sibling)
+ {
+ XLowerWindow (w->screen->display->display, w->id);
+ if (w->frame)
+ XLowerWindow (w->screen->display->display, w->frame);
+ }
+ else if (sibling->id != prev->id)
+ {
+ mask |= CWSibling | CWStackMode;
+
+ xwc->stack_mode = Above;
+ xwc->sibling = sibling->id;
+ }
+ }
+ else if (sibling)
+ {
+ mask |= CWSibling | CWStackMode;
+
+ xwc->stack_mode = Above;
+ xwc->sibling = sibling->id;
+ }
+ }
+
+ if (sibling && mask)
+ {
+ /* a normal window can be stacked above fullscreen windows but we
+ don't want normal windows to be stacked above dock window so if
+ the sibling we're stacking above is a fullscreen window we also
+ update all dock windows. */
+ if ((sibling->type & CompWindowTypeFullscreenMask) &&
+ (!(w->type & (CompWindowTypeFullscreenMask |
+ CompWindowTypeDockMask))) &&
+ !isAncestorTo (w, sibling))
+ {
+ CompWindow *dw;
+
+ for (dw = w->screen->reverseWindows; dw; dw = dw->prev)
+ if (dw == sibling)
+ break;
+
+ for (; dw; dw = dw->prev)
+ if (dw->type & CompWindowTypeDockMask)
+ configureXWindow (dw, mask, xwc);
+ }
+ }
+
+ return mask;
+}
+
+void
+raiseWindow (CompWindow *w)
+{
+ XWindowChanges xwc;
+ int mask;
+ Bool aboveFs = FALSE;
+
+ /* an active fullscreen window should be raised over all other
+ windows in its layer */
+ if (w->type & CompWindowTypeFullscreenMask)
+ if (w->id == w->screen->display->activeWindow)
+ aboveFs = TRUE;
+
+ mask = addWindowStackChanges (w, &xwc, findSiblingBelow (w, aboveFs));
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+}
+
+void
+lowerWindow (CompWindow *w)
+{
+ XWindowChanges xwc;
+ int mask;
+
+ mask = addWindowStackChanges (w, &xwc, findLowestSiblingBelow (w));
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+}
+
+void
+restackWindowAbove (CompWindow *w,
+ CompWindow *sibling)
+{
+ for (; sibling; sibling = sibling->next)
+ if (validSiblingBelow (w, sibling))
+ break;
+
+ if (sibling)
+ {
+ XWindowChanges xwc;
+ int mask;
+
+ mask = addWindowStackChanges (w, &xwc, sibling);
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+ }
+}
+
+/* finds the highest window under sibling we can stack above */
+static CompWindow *
+findValidStackSiblingBelow (CompWindow *w,
+ CompWindow *sibling)
+{
+ CompWindow *lowest, *last, *p;
+
+ /* get lowest sibling we're allowed to stack above */
+ lowest = last = findLowestSiblingBelow (w);
+
+ /* walk from bottom up */
+ for (p = w->screen->windows; p; p = p->next)
+ {
+ /* stop walking when we reach the sibling we should try to stack
+ below */
+ if (p == sibling)
+ return lowest;
+
+ /* skip windows that we should avoid */
+ if (w == p || avoidStackingRelativeTo (p))
+ continue;
+
+ if (validSiblingBelow (w, p))
+ {
+ /* update lowest as we find windows below sibling that we're
+ allowed to stack above. last window must be equal to the
+ lowest as we shouldn't update lowest if we passed an
+ invalid window */
+ if (last == lowest)
+ lowest = p;
+ }
+
+ /* update last pointer */
+ last = p;
+ }
+
+ return lowest;
+}
+
+void
+restackWindowBelow (CompWindow *w,
+ CompWindow *sibling)
+{
+ XWindowChanges xwc;
+ unsigned int mask;
+
+ mask = addWindowStackChanges (w, &xwc,
+ findValidStackSiblingBelow (w, sibling));
+
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+}
+
+void
+updateWindowAttributes (CompWindow *w,
+ CompStackingUpdateMode stackingMode)
+{
+ XWindowChanges xwc;
+ int mask = 0;
+
+ if (w->attrib.override_redirect || !w->managed)
+ return;
+
+ if (w->state & CompWindowStateShadedMask)
+ {
+ hideWindow (w);
+ }
+ else if (w->shaded)
+ {
+ showWindow (w);
+ }
+
+ if (stackingMode != CompStackingUpdateModeNone)
+ {
+ Bool aboveFs;
+ CompWindow *sibling;
+
+ aboveFs = (stackingMode == CompStackingUpdateModeAboveFullscreen);
+ if (w->type & CompWindowTypeFullscreenMask)
+ {
+ /* put active or soon-to-be-active fullscreen windows over
+ all others in their layer */
+ if (w->id == w->screen->display->activeWindow ||
+ stackingMode == CompStackingUpdateModeInitialMap)
+ {
+ aboveFs = TRUE;
+ }
+ }
+
+ sibling = findSiblingBelow (w, aboveFs);
+
+ if (sibling &&
+ (stackingMode == CompStackingUpdateModeInitialMapDeniedFocus))
+ {
+ CompWindow *p;
+
+ for (p = sibling; p; p = p->prev)
+ if (p->id == w->screen->display->activeWindow)
+ break;
+
+ /* window is above active window so we should lower it */
+ if (p)
+ p = findValidStackSiblingBelow (sibling, p);
+
+ /* if we found a valid sibling under the active window, it's
+ our new sibling we want to stack above */
+ if (p)
+ sibling = p;
+ }
+
+ mask |= addWindowStackChanges (w, &xwc, sibling);
+ }
+
+ if ((stackingMode == CompStackingUpdateModeInitialMap) ||
+ (stackingMode == CompStackingUpdateModeInitialMapDeniedFocus))
+ {
+ /* If we are called from the MapRequest handler, we have to
+ immediately update the internal stack. If we don't do that,
+ the internal stacking order is invalid until the ConfigureNotify
+ arrives because we put the window at the top of the stack when
+ it was created */
+ if (mask & CWStackMode)
+ {
+ Window above = (mask & CWSibling) ? xwc.sibling : 0;
+ restackWindow (w, above);
+ }
+ }
+
+ mask |= addWindowSizeChanges (w, &xwc,
+ w->serverX, w->serverY,
+ w->serverWidth, w->serverHeight,
+ w->serverBorderWidth);
+
+ if (w->mapNum && (mask & (CWWidth | CWHeight)))
+ sendSyncRequest (w);
+
+ if (mask)
+ configureXWindow (w, mask, &xwc);
+}
+
+static void
+ensureWindowVisibility (CompWindow *w)
+{
+ int x1, y1, x2, y2;
+ int width = w->serverWidth + w->serverBorderWidth * 2;
+ int height = w->serverHeight + w->serverBorderWidth * 2;
+ int dx = 0;
+ int dy = 0;
+
+ if (w->struts || w->attrib.override_redirect)
+ return;
+
+ if (w->type & (CompWindowTypeDockMask |
+ CompWindowTypeFullscreenMask |
+ CompWindowTypeUnknownMask))
+ return;
+
+ x1 = w->screen->workArea.x - w->screen->width * w->screen->x;
+ y1 = w->screen->workArea.y - w->screen->height * w->screen->y;
+ x2 = x1 + w->screen->workArea.width + w->screen->hsize * w->screen->width;
+ y2 = y1 + w->screen->workArea.height + w->screen->vsize * w->screen->height;
+
+ if (w->serverX - w->input.left >= x2)
+ dx = (x2 - 25) - w->serverX;
+ else if (w->serverX + width + w->input.right <= x1)
+ dx = (x1 + 25) - (w->serverX + width);
+
+ if (w->serverY - w->input.top >= y2)
+ dy = (y2 - 25) - w->serverY;
+ else if (w->serverY + height + w->input.bottom <= y1)
+ dy = (y1 + 25) - (w->serverY + height);
+
+ if (dx || dy)
+ {
+ XWindowChanges xwc;
+
+ xwc.x = w->serverX + dx;
+ xwc.y = w->serverY + dy;
+
+ configureXWindow (w, CWX | CWY, &xwc);
+ }
+}
+
+static void
+revealWindow (CompWindow *w)
+{
+ if (w->minimized)
+ unminimizeWindow (w);
+
+ (*w->screen->leaveShowDesktopMode) (w->screen, w);
+}
+
+static void
+revealAncestors (CompWindow *w,
+ void *closure)
+{
+ CompWindow *transient = closure;
+
+ if (isAncestorTo (transient, w))
+ {
+ forEachWindowOnScreen (w->screen, revealAncestors, (void *) w);
+ revealWindow (w);
+ }
+}
+
+void
+activateWindow (CompWindow *w)
+{
+ setCurrentDesktop (w->screen, w->desktop);
+
+ forEachWindowOnScreen (w->screen, revealAncestors, (void *) w);
+ revealWindow (w);
+
+ if (w->state & CompWindowStateHiddenMask)
+ {
+ w->state &= ~CompWindowStateShadedMask;
+ if (w->shaded)
+ showWindow (w);
+ }
+
+ if (w->state & CompWindowStateHiddenMask)
+ return;
+
+ if (!onCurrentDesktop (w))
+ return;
+
+ ensureWindowVisibility (w);
+ updateWindowAttributes (w, CompStackingUpdateModeAboveFullscreen);
+ moveInputFocusToWindow (w);
+}
+
+void
+closeWindow (CompWindow *w,
+ Time serverTime)
+{
+ CompDisplay *display = w->screen->display;
+
+ if (serverTime == 0)
+ serverTime = getCurrentTimeFromDisplay (display);
+
+ if (w->alive)
+ {
+ if (w->protocols & CompWindowProtocolDeleteMask)
+ {
+ XEvent ev;
+
+ ev.type = ClientMessage;
+ ev.xclient.window = w->id;
+ ev.xclient.message_type = display->wmProtocolsAtom;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = display->wmDeleteWindowAtom;
+ ev.xclient.data.l[1] = serverTime;
+ ev.xclient.data.l[2] = 0;
+ ev.xclient.data.l[3] = 0;
+ ev.xclient.data.l[4] = 0;
+
+ XSendEvent (display->display, w->id, FALSE, NoEventMask, &ev);
+ }
+ else
+ {
+ XKillClient (display->display, w->id);
+ }
+
+ w->closeRequests++;
+ }
+ else
+ {
+ toolkitAction (w->screen,
+ w->screen->display->toolkitActionForceQuitDialogAtom,
+ serverTime,
+ w->id,
+ TRUE,
+ 0,
+ 0);
+ }
+
+ w->lastCloseRequestTime = serverTime;
+}
+
+#define PVertResizeInc (1 << 0)
+#define PHorzResizeInc (1 << 1)
+
+Bool
+constrainNewWindowSize (CompWindow *w,
+ int width,
+ int height,
+ int *newWidth,
+ int *newHeight)
+{
+ CompDisplay *d = w->screen->display;
+ const XSizeHints *hints = &w->sizeHints;
+ int oldWidth = width;
+ int oldHeight = height;
+ int min_width = 0;
+ int min_height = 0;
+ int base_width = 0;
+ int base_height = 0;
+ int xinc = 1;
+ int yinc = 1;
+ int max_width = MAXSHORT;
+ int max_height = MAXSHORT;
+ long flags = hints->flags;
+ long resizeIncFlags = (flags & PResizeInc) ? ~0 : 0;
+
+ if (d->opt[COMP_DISPLAY_OPTION_IGNORE_HINTS_WHEN_MAXIMIZED].value.b)
+ {
+ if (w->state & MAXIMIZE_STATE)
+ {
+ flags &= ~PAspect;
+
+ if (w->state & CompWindowStateMaximizedHorzMask)
+ resizeIncFlags &= ~PHorzResizeInc;
+
+ if (w->state & CompWindowStateMaximizedVertMask)
+ resizeIncFlags &= ~PVertResizeInc;
+ }
+ }
+
+ /* Ater gdk_window_constrain_size(), which is partially borrowed from fvwm.
+ *
+ * Copyright 1993, Robert Nation
+ * You may use this code for any purpose, as long as the original
+ * copyright remains in the source code and all documentation
+ *
+ * which in turn borrows parts of the algorithm from uwm
+ */
+
+#define FLOOR(value, base) (((int) ((value) / (base))) * (base))
+#define FLOOR64(value, base) (((uint64_t) ((value) / (base))) * (base))
+#define CLAMP(v, min, max) ((v) <= (min) ? (min) : (v) >= (max) ? (max) : (v))
+
+ if ((flags & PBaseSize) && (flags & PMinSize))
+ {
+ base_width = hints->base_width;
+ base_height = hints->base_height;
+ min_width = hints->min_width;
+ min_height = hints->min_height;
+ }
+ else if (flags & PBaseSize)
+ {
+ base_width = hints->base_width;
+ base_height = hints->base_height;
+ min_width = hints->base_width;
+ min_height = hints->base_height;
+ }
+ else if (flags & PMinSize)
+ {
+ base_width = hints->min_width;
+ base_height = hints->min_height;
+ min_width = hints->min_width;
+ min_height = hints->min_height;
+ }
+
+ if (flags & PMaxSize)
+ {
+ max_width = hints->max_width;
+ max_height = hints->max_height;
+ }
+
+ if (resizeIncFlags & PHorzResizeInc)
+ xinc = MAX (xinc, hints->width_inc);
+
+ if (resizeIncFlags & PVertResizeInc)
+ yinc = MAX (yinc, hints->height_inc);
+
+ /* clamp width and height to min and max values */
+ width = CLAMP (width, min_width, max_width);
+ height = CLAMP (height, min_height, max_height);
+
+ /* shrink to base + N * inc */
+ width = base_width + FLOOR (width - base_width, xinc);
+ height = base_height + FLOOR (height - base_height, yinc);
+
+ /* constrain aspect ratio, according to:
+ *
+ * min_aspect.x width max_aspect.x
+ * ------------ <= -------- <= -----------
+ * min_aspect.y height max_aspect.y
+ */
+ if ((flags & PAspect) && hints->min_aspect.y > 0 && hints->max_aspect.x > 0)
+ {
+ /* Use 64 bit arithmetic to prevent overflow */
+
+ uint64_t min_aspect_x = hints->min_aspect.x;
+ uint64_t min_aspect_y = hints->min_aspect.y;
+ uint64_t max_aspect_x = hints->max_aspect.x;
+ uint64_t max_aspect_y = hints->max_aspect.y;
+ uint64_t delta;
+
+ if (min_aspect_x * height > width * min_aspect_y)
+ {
+ delta = FLOOR64 (height - width * min_aspect_y / min_aspect_x,
+ yinc);
+ if (height - delta >= min_height)
+ height -= delta;
+ else
+ {
+ delta = FLOOR64 (height * min_aspect_x / min_aspect_y - width,
+ xinc);
+ if (width + delta <= max_width)
+ width += delta;
+ }
+ }
+
+ if (width * max_aspect_y > max_aspect_x * height)
+ {
+ delta = FLOOR64 (width - height * max_aspect_x / max_aspect_y,
+ xinc);
+ if (width - delta >= min_width)
+ width -= delta;
+ else
+ {
+ delta = FLOOR64 (width * min_aspect_y / min_aspect_x - height,
+ yinc);
+ if (height + delta <= max_height)
+ height += delta;
+ }
+ }
+ }
+
+#undef CLAMP
+#undef FLOOR64
+#undef FLOOR
+
+ if (width != oldWidth || height != oldHeight)
+ {
+ *newWidth = width;
+ *newHeight = height;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void
+hideWindow (CompWindow *w)
+{
+ Bool onDesktop = onCurrentDesktop (w);
+
+ if (!w->managed)
+ return;
+
+ if (!w->minimized && !w->inShowDesktopMode && !w->hidden && onDesktop)
+ {
+ if (w->state & CompWindowStateShadedMask)
+ {
+ w->shaded = TRUE;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ addWindowDamage (w);
+
+ w->shaded = FALSE;
+
+ if ((w->state & CompWindowStateShadedMask) && w->frame)
+ XUnmapWindow (w->screen->display->display, w->frame);
+ }
+
+ if (!w->pendingMaps && w->attrib.map_state != IsViewable)
+ return;
+
+ w->pendingUnmaps++;
+
+ XUnmapWindow (w->screen->display->display, w->id);
+
+ if (w->minimized || w->inShowDesktopMode || w->hidden || w->shaded)
+ changeWindowState (w, w->state | CompWindowStateHiddenMask);
+
+ if (w->shaded && w->id == w->screen->display->activeWindow)
+ moveInputFocusToWindow (w);
+}
+
+void
+showWindow (CompWindow *w)
+{
+ Bool onDesktop = onCurrentDesktop (w);
+
+ if (!w->managed)
+ return;
+
+ if (w->minimized || w->inShowDesktopMode || w->hidden || !onDesktop)
+ {
+ /* no longer hidden but not on current desktop */
+ if (!w->minimized && !w->inShowDesktopMode && !w->hidden)
+ changeWindowState (w, w->state & ~CompWindowStateHiddenMask);
+
+ return;
+ }
+
+ /* transition from minimized to shaded */
+ if (w->state & CompWindowStateShadedMask)
+ {
+ w->shaded = TRUE;
+
+ if (w->frame)
+ XMapWindow (w->screen->display->display, w->frame);
+
+ if (w->height)
+ resizeWindow (w,
+ w->attrib.x, w->attrib.y,
+ w->attrib.width, ++w->attrib.height - 1,
+ w->attrib.border_width);
+
+ addWindowDamage (w);
+
+ return;
+ }
+ else
+ {
+ w->shaded = FALSE;
+ }
+
+ w->pendingMaps++;
+
+ XMapWindow (w->screen->display->display, w->id);
+
+ changeWindowState (w, w->state & ~CompWindowStateHiddenMask);
+ setWindowState (w->screen->display, w->state, w->id);
+}
+
+static void
+minimizeTransients (CompWindow *w,
+ void *closure)
+{
+ CompWindow *ancestor = closure;
+
+ if (w->transientFor == ancestor->id ||
+ isGroupTransient (w, ancestor->clientLeader))
+ {
+ minimizeWindow (w);
+ }
+}
+
+void
+minimizeWindow (CompWindow *w)
+{
+ if (!w->managed)
+ return;
+
+ if (!w->minimized)
+ {
+ w->minimized = TRUE;
+
+ forEachWindowOnScreen (w->screen, minimizeTransients, (void *) w);
+
+ hideWindow (w);
+ }
+}
+
+static void
+unminimizeTransients (CompWindow *w,
+ void *closure)
+{
+ CompWindow *ancestor = closure;
+
+ if (w->transientFor == ancestor->id ||
+ isGroupTransient (w, ancestor->clientLeader))
+ unminimizeWindow (w);
+}
+
+void
+unminimizeWindow (CompWindow *w)
+{
+ if (w->minimized)
+ {
+ w->minimized = FALSE;
+
+ showWindow (w);
+
+ forEachWindowOnScreen (w->screen, unminimizeTransients, (void *) w);
+ }
+}
+
+void
+maximizeWindow (CompWindow *w,
+ int state)
+{
+ if (w->attrib.override_redirect)
+ return;
+
+ state = constrainWindowState (state, w->actions);
+
+ state &= MAXIMIZE_STATE;
+
+ if (state == (w->state & MAXIMIZE_STATE))
+ return;
+
+ state |= (w->state & ~MAXIMIZE_STATE);
+
+ changeWindowState (w, state);
+ updateWindowAttributes (w, CompStackingUpdateModeNone);
+}
+
+Bool
+getWindowUserTime (CompWindow *w,
+ Time *time)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+ Bool retval = FALSE;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmUserTimeAtom,
+ 0L, 1L, False, XA_CARDINAL, &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && data)
+ {
+ if (n)
+ {
+ CARD32 value;
+
+ memcpy (&value, data, sizeof (CARD32));
+ retval = TRUE;
+ *time = (Time) value;
+ }
+
+ XFree ((void *) data);
+ }
+
+ return retval;
+}
+
+void
+setWindowUserTime (CompWindow *w,
+ Time time)
+{
+ CARD32 value = (CARD32) time;
+
+ XChangeProperty (w->screen->display->display, w->id,
+ w->screen->display->wmUserTimeAtom,
+ XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &value, 1);
+}
+
+/*
+ * Macros from metacity
+ *
+ * Xserver time can wraparound, thus comparing two timestamps needs to
+ * take this into account. Here's a little macro to help out. If no
+ * wraparound has occurred, this is equivalent to
+ * time1 < time2
+ * Of course, the rest of the ugliness of this macro comes from
+ * accounting for the fact that wraparound can occur and the fact that
+ * a timestamp of 0 must be special-cased since it means older than
+ * anything else.
+ *
+ * Note that this is NOT an equivalent for time1 <= time2; if that's
+ * what you need then you'll need to swap the order of the arguments
+ * and negate the result.
+ */
+#define XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS(time1, time2) \
+ ( (( (time1) < (time2) ) && \
+ ( (time2) - (time1) < ((unsigned long) -1) / 2 )) || \
+ (( (time1) > (time2) ) && \
+ ( (time1) - (time2) > ((unsigned long) -1) / 2 )) \
+ )
+#define XSERVER_TIME_IS_BEFORE(time1, time2) \
+ ( (time1) == 0 || \
+ (XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS (time1, time2) && \
+ (time2) != 0) \
+ )
+
+static Bool
+getUsageTimestampForWindow (CompWindow *w,
+ Time *timestamp)
+{
+ if (getWindowUserTime (w, timestamp))
+ return TRUE;
+
+ if (w->initialTimestampSet)
+ {
+ *timestamp = w->initialTimestamp;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+getFocusWindowUsageTimestamp (CompWindow *w,
+ Time *timestamp)
+{
+ if (getUsageTimestampForWindow (w, timestamp))
+ return TRUE;
+
+ /* if we got no timestamp for the window, try to get at least a timestamp
+ for its transient parent, if any */
+ if (w->transientFor)
+ {
+ CompWindow *parent;
+
+ parent = findWindowAtScreen (w->screen, w->transientFor);
+ if (parent && getUsageTimestampForWindow (parent, timestamp))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static Bool
+isWindowFocusAllowed (CompWindow *w,
+ unsigned int viewportX,
+ unsigned int viewportY,
+ Time timestamp)
+{
+ CompDisplay *d = w->screen->display;
+ CompScreen *s = w->screen;
+ CompWindow *active;
+ Time aUserTime;
+ CompMatch *match;
+ int level, vx, vy;
+
+ level = s->opt[COMP_SCREEN_OPTION_FOCUS_PREVENTION_LEVEL].value.i;
+
+ if (level == FOCUS_PREVENTION_LEVEL_NONE)
+ return TRUE;
+
+ /* allow focus for excluded windows */
+ match = &s->opt[COMP_SCREEN_OPTION_FOCUS_PREVENTION_MATCH].value.match;
+ if (!matchEval (match, w))
+ return TRUE;
+
+ if (level == FOCUS_PREVENTION_LEVEL_VERYHIGH)
+ return FALSE;
+
+ active = findWindowAtDisplay (d, d->activeWindow);
+
+ /* no active window */
+ if (!active || (active->type & CompWindowTypeDesktopMask))
+ return TRUE;
+
+ /* active window belongs to same application */
+ if (w->clientLeader == active->clientLeader)
+ return TRUE;
+
+ if (level == FOCUS_PREVENTION_LEVEL_HIGH)
+ return FALSE;
+
+ /* not in current viewport or desktop */
+ if (!onCurrentDesktop (w))
+ return FALSE;
+
+ defaultViewportForWindow (w, &vx, &vy);
+ if (vx != viewportX || vy != viewportY)
+ return FALSE;
+
+ if (!timestamp)
+ {
+ /* unsure as we have nothing to compare - allow focus in low level,
+ don't allow in normal level */
+ if (level == FOCUS_PREVENTION_LEVEL_NORMAL)
+ return FALSE;
+
+ return TRUE;
+ }
+
+ /* can't get user time for active window */
+ if (!getWindowUserTime (active, &aUserTime))
+ return TRUE;
+
+ if (XSERVER_TIME_IS_BEFORE (timestamp, aUserTime))
+ return FALSE;
+
+ return TRUE;
+}
+
+CompFocusResult
+allowWindowFocus (CompWindow *w,
+ unsigned int noFocusMask,
+ unsigned int viewportX,
+ unsigned int viewportY,
+ Time timestamp)
+{
+ Bool status;
+
+ if (w->id == w->screen->display->activeWindow)
+ return CompFocusAllowed;
+
+ /* do not focus windows of these types */
+ if (w->type & noFocusMask)
+ return CompFocusPrevent;
+
+ /* window doesn't take focus */
+ if (!w->inputHint && !(w->protocols & CompWindowProtocolTakeFocusMask))
+ return CompFocusPrevent;
+
+ if (!timestamp)
+ {
+ /* if the window has a 0 timestamp, it explicitly requested no focus */
+ if (getFocusWindowUsageTimestamp (w, &timestamp) && !timestamp)
+ return CompFocusPrevent;
+ }
+
+ status = isWindowFocusAllowed (w, viewportX, viewportY, timestamp);
+ if (!status)
+ {
+ /* add demands attention state if focus was prevented */
+ changeWindowState (w, w->state | CompWindowStateDemandsAttentionMask);
+ return CompFocusDenied;
+ }
+
+ return CompFocusAllowed;
+}
+
+void
+unredirectWindow (CompWindow *w)
+{
+ if (!w->redirected)
+ return;
+
+ releaseWindow (w);
+
+ XCompositeUnredirectWindow (w->screen->display->display, w->id,
+ CompositeRedirectManual);
+
+ w->redirected = FALSE;
+ w->overlayWindow = TRUE;
+ w->screen->overlayWindowCount++;
+
+ if (w->screen->overlayWindowCount > 0)
+ updateOutputWindow (w->screen);
+}
+
+void
+redirectWindow (CompWindow *w)
+{
+ if (w->redirected)
+ return;
+
+ XCompositeRedirectWindow (w->screen->display->display, w->id,
+ CompositeRedirectManual);
+
+ w->redirected = TRUE;
+
+ if (w->overlayWindow)
+ {
+ w->screen->overlayWindowCount--;
+ w->overlayWindow = FALSE;
+ }
+
+ if (w->screen->overlayWindowCount < 1)
+ showOutputWindow (w->screen);
+ else
+ updateOutputWindow (w->screen);
+}
+
+void
+defaultViewportForWindow (CompWindow *w,
+ int *vx,
+ int *vy)
+{
+ CompScreen *s = w->screen;
+
+ /* return the current viewport if a part of the window is
+ visible on it */
+ if ((w->serverX < s->width && w->serverX + w->serverWidth > 0) &&
+ (w->serverY < s->height && w->serverY + w->serverHeight > 0))
+ {
+ if (vx)
+ *vx = s->x;
+
+ if (vy)
+ *vy = s->y;
+
+ return;
+ }
+
+ viewportForGeometry (s,
+ w->serverX, w->serverY,
+ w->serverWidth, w->serverHeight,
+ w->serverBorderWidth,
+ vx, vy);
+}
+
+static CARD32 *
+allocateWindowIcon (CompWindow *w,
+ unsigned int width,
+ unsigned int height)
+{
+ CompIcon *icon, **pIcon;
+
+ icon = malloc (sizeof (CompIcon) +
+ width * height * sizeof (CARD32));
+ if (!icon)
+ return NULL;
+
+ pIcon = realloc (w->icon, sizeof (CompIcon *) * (w->nIcon + 1));
+ if (!pIcon)
+ {
+ free (icon);
+ return NULL;
+ }
+
+ w->icon = pIcon;
+ w->icon[w->nIcon] = icon;
+ w->nIcon++;
+
+ icon->width = width;
+ icon->height = height;
+
+ initTexture (w->screen, &icon->texture);
+
+ return (CARD32 *) (icon + 1);
+}
+
+static void
+readWindowIconHint (CompWindow *w)
+{
+ XImage *image, *maskImage = NULL;
+ Display *dpy = w->screen->display->display;
+ unsigned int width, height, dummy;
+ int i, j, k, iDummy;
+ Window wDummy;
+ CARD32 *p;
+ XColor *colors;
+
+ if (!XGetGeometry (dpy, w->hints->icon_pixmap, &wDummy, &iDummy,
+ &iDummy, &width, &height, &dummy, &dummy))
+ return;
+
+ image = XGetImage (dpy, w->hints->icon_pixmap, 0, 0, width, height,
+ AllPlanes, ZPixmap);
+ if (!image)
+ return;
+
+ colors = malloc (width * height * sizeof (XColor));
+ if (!colors)
+ {
+ XDestroyImage (image);
+ return;
+ }
+
+ k = 0;
+ for (j = 0; j < height; j++)
+ for (i = 0; i < width; i++)
+ colors[k++].pixel = XGetPixel (image, i, j);
+
+ for (i = 0; i < k; i += 256)
+ XQueryColors (dpy, w->screen->colormap,
+ &colors[i], MIN (k - i, 256));
+
+ XDestroyImage (image);
+
+ p = allocateWindowIcon (w, width, height);
+ if (!p)
+ {
+ free (colors);
+ return;
+ }
+
+ if (w->hints->flags & IconMaskHint)
+ maskImage = XGetImage (dpy, w->hints->icon_mask, 0, 0,
+ width, height, AllPlanes, ZPixmap);
+
+ k = 0;
+ for (j = 0; j < height; j++)
+ {
+ for (i = 0; i < width; i++)
+ {
+ if (maskImage && !XGetPixel (maskImage, i, j))
+ *p++ = 0;
+ else
+ *p++ = 0xff000000 | /* alpha */
+ (((colors[k].red >> 8) & 0xff) << 16) | /* red */
+ (((colors[k].green >> 8) & 0xff) << 8) | /* green */
+ ((colors[k].blue >> 8) & 0xff); /* blue */
+
+ k++;
+ }
+ }
+
+ free (colors);
+ if (maskImage)
+ XDestroyImage (maskImage);
+}
+
+/* returns icon with dimensions as close as possible to width and height
+ but never greater. */
+CompIcon *
+getWindowIcon (CompWindow *w,
+ int width,
+ int height)
+{
+ CompIcon *icon;
+ int i, wh, diff, oldDiff;
+
+ /* need to fetch icon property */
+ if (w->nIcon == 0)
+ {
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->wmIconAtom,
+ 0L, 65536L,
+ FALSE, XA_CARDINAL,
+ &actual, &format, &n,
+ &left, &data);
+
+ if (result == Success && data)
+ {
+ CARD32 *p;
+ CARD32 alpha, red, green, blue;
+ int iw, ih, j;
+
+ for (i = 0; i + 2 < n; i += iw * ih + 2)
+ {
+ unsigned long *idata = (unsigned long *) data;
+
+ iw = idata[i];
+ ih = idata[i + 1];
+
+ if (iw * ih + 2 > n - i)
+ break;
+
+ if (iw && ih)
+ {
+ p = allocateWindowIcon (w, iw, ih);
+ if (!p)
+ continue;
+
+ /* EWMH doesn't say if icon data is premultiplied or
+ not but most applications seem to assume data should
+ be unpremultiplied. */
+ for (j = 0; j < iw * ih; j++)
+ {
+ alpha = (idata[i + j + 2] >> 24) & 0xff;
+ red = (idata[i + j + 2] >> 16) & 0xff;
+ green = (idata[i + j + 2] >> 8) & 0xff;
+ blue = (idata[i + j + 2] >> 0) & 0xff;
+
+ red = (red * alpha) >> 8;
+ green = (green * alpha) >> 8;
+ blue = (blue * alpha) >> 8;
+
+ p[j] =
+ (alpha << 24) |
+ (red << 16) |
+ (green << 8) |
+ (blue << 0);
+ }
+ }
+ }
+
+ XFree (data);
+ }
+ else if (w->hints && (w->hints->flags & IconPixmapHint))
+ readWindowIconHint (w);
+
+ /* don't fetch property again */
+ if (w->nIcon == 0)
+ w->nIcon = -1;
+ }
+
+ /* no icons available for this window */
+ if (w->nIcon == -1)
+ return NULL;
+
+ icon = NULL;
+ wh = width + height;
+
+ for (i = 0; i < w->nIcon; i++)
+ {
+ if (w->icon[i]->width > width || w->icon[i]->height > height)
+ continue;
+
+ if (icon)
+ {
+ diff = wh - (w->icon[i]->width + w->icon[i]->height);
+ oldDiff = wh - (icon->width + icon->height);
+
+ if (diff < oldDiff)
+ icon = w->icon[i];
+ }
+ else
+ icon = w->icon[i];
+ }
+
+ return icon;
+}
+
+void
+freeWindowIcons (CompWindow *w)
+{
+ int i;
+
+ for (i = 0; i < w->nIcon; i++)
+ {
+ finiTexture (w->screen, &w->icon[i]->texture);
+ free (w->icon[i]);
+ }
+
+ if (w->icon)
+ {
+ free (w->icon);
+ w->icon = NULL;
+ }
+
+ w->nIcon = 0;
+}
+
+int
+outputDeviceForWindow (CompWindow *w)
+{
+ return outputDeviceForGeometry (w->screen,
+ w->serverX, w->serverY,
+ w->serverWidth, w->serverHeight,
+ w->serverBorderWidth);
+}
+
+Bool
+onCurrentDesktop (CompWindow *w)
+{
+ if (w->desktop == 0xffffffff || w->desktop == w->screen->currentDesktop)
+ return TRUE;
+
+ return FALSE;
+}
+
+void
+setDesktopForWindow (CompWindow *w,
+ unsigned int desktop)
+{
+ if (desktop != 0xffffffff)
+ {
+ if (w->type & (CompWindowTypeDesktopMask | CompWindowTypeDockMask))
+ return;
+
+ if (desktop >= w->screen->nDesktop)
+ return;
+ }
+
+ if (desktop == w->desktop)
+ return;
+
+ w->desktop = desktop;
+
+ if (desktop == 0xffffffff || desktop == w->screen->currentDesktop)
+ showWindow (w);
+ else
+ hideWindow (w);
+
+ setWindowProp (w->screen->display, w->id,
+ w->screen->display->winDesktopAtom,
+ w->desktop);
+}
+
+/* The compareWindowActiveness function compares the two windows 'w1'
+ and 'w2'. It returns an integer less than, equal to, or greater
+ than zero if 'w1' is found, respectively, to activated longer time
+ ago than, to be activated at the same time, or be activated more
+ recently than 'w2'. */
+int
+compareWindowActiveness (CompWindow *w1,
+ CompWindow *w2)
+{
+ CompScreen *s = w1->screen;
+ CompActiveWindowHistory *history = &s->history[s->currentHistory];
+ int i;
+
+ /* check current window history first */
+ for (i = 0; i < ACTIVE_WINDOW_HISTORY_SIZE; i++)
+ {
+ if (history->id[i] == w1->id)
+ return 1;
+
+ if (history->id[i] == w2->id)
+ return -1;
+
+ if (!history->id[i])
+ break;
+ }
+
+ return w1->activeNum - w2->activeNum;
+}
+
+Bool
+windowOnAllViewports (CompWindow *w)
+{
+ if (w->attrib.override_redirect)
+ return TRUE;
+
+ if (!w->managed && w->attrib.map_state != IsViewable)
+ return TRUE;
+
+ if (w->type & (CompWindowTypeDesktopMask | CompWindowTypeDockMask))
+ return TRUE;
+
+ if (w->state & CompWindowStateStickyMask)
+ return TRUE;
+
+ return FALSE;
+}
+
+void
+getWindowMovementForOffset (CompWindow *w,
+ int offX,
+ int offY,
+ int *retX,
+ int *retY)
+{
+ CompScreen *s = w->screen;
+ int m, vWidth, vHeight;
+
+ vWidth = s->width * s->hsize;
+ vHeight = s->height * s->vsize;
+
+ offX %= s->width * s->hsize;
+ offY %= s->height * s->vsize;
+
+ /* x */
+ if (s->hsize == 1)
+ {
+ (*retX) = offX;
+ }
+ else
+ {
+ m = w->attrib.x + offX;
+ if (m - w->input.left < s->width - vWidth)
+ *retX = offX + vWidth;
+ else if (m + w->width + w->input.right > vWidth)
+ *retX = offX - vWidth;
+ else
+ *retX = offX;
+ }
+
+ if (s->vsize == 1)
+ {
+ *retY = offY;
+ }
+ else
+ {
+ m = w->attrib.y + offY;
+ if (m - w->input.top < s->height - vHeight)
+ *retY = offY + vHeight;
+ else if (m + w->height + w->input.bottom > vHeight)
+ *retY = offY - vHeight;
+ else
+ *retY = offY;
+ }
+
+}